Ensembl / ensembl-vep

The Ensembl Variant Effect Predictor predicts the functional effects of genomic variants
https://www.ensembl.org/vep
Apache License 2.0
444 stars 151 forks source link

How to run module tests? #513

Closed serge2016 closed 5 years ago

serge2016 commented 5 years ago

Hello!

Could you tell me, please, how to run VEP module tests? They do run during the installation, but how to run them only after VEP is installed?

ima23 commented 5 years ago

Dear @serge2016,

All tests are in t folder. You can run all the tests with the cmd prove t/*.t. The pre-requisite is to make sure you have the installed libraries in your PERL5LIB (folders Bio and modules).

Best regards, Irina

serge2016 commented 5 years ago

Dear @ima23, thank you!

Don't you know, how is it possible, that module tests do pass but library is not installed correctly:

t/AnnotationSource.t ............................... ok
t/AnnotationSourceAdaptor.t ........................ ok
t/AnnotationSource_Cache.t ......................... ok
t/AnnotationSource_Cache_RegFeat.t ................. ok
t/AnnotationSource_Cache_Transcript.t .............. ok
t/AnnotationSource_Cache_Variation.t ............... ok
t/AnnotationSource_Cache_VariationTabix.t .......... ok
t/AnnotationSource_Database_RegFeat.t .............. ok
t/AnnotationSource_Database_StructuralVariation.t .. ok
t/AnnotationSource_Database_Transcript.t ........... ok
t/AnnotationSource_Database_Variation.t ............ ok
t/AnnotationSource_File.t .......................... ok
t/AnnotationSource_File_BED.t ...................... ok
t/AnnotationSource_File_BigWig.t ................... ok
t/AnnotationSource_File_GFF.t ...................... ok
t/AnnotationSource_File_GTF.t ...................... ok
t/AnnotationSource_File_VCF.t ...................... ok
t/BaseVEP.t ........................................ ok
t/CacheDir.t ....................................... ok
t/Config.t ......................................... ok
t/FilterSet.t ...................................... ok
t/Haplo_AnnotationSource_Cache_Transcript.t ........ ok
t/Haplo_AnnotationSource_Database_Transcript.t ..... ok
t/Haplo_AnnotationSource_File_GFF.t ................ ok
t/Haplo_AnnotationSource_File_GTF.t ................ ok
t/Haplo_InputBuffer.t .............................. ok
t/Haplo_Parser_VCF.t ............................... ok
t/Haplo_Runner.t ................................... ok
t/InputBuffer.t .................................... ok
t/OutputFactory.t .................................. ok
t/OutputFactory_JSON.t ............................. ok
t/OutputFactory_Tab.t .............................. ok
t/OutputFactory_VCF.t .............................. ok
t/OutputFactory_VEP_output.t ....................... ok
t/Parser.t ......................................... ok
t/Parser_HGVS.t .................................... ok
t/Parser_ID.t ...................................... ok
t/Parser_Region.t .................................. ok
t/Parser_SPDI.t .................................... ok
t/Parser_VCF.t ..................................... ok
t/Parser_VEP_input.t ............................... ok
t/Runner.t ......................................... ok
t/Stats.t .......................................... ok
t/TranscriptTree.t ................................. ok
t/Utils.t .......................................... ok
t/VariantRecoder.t ................................. ok
t/bam_edit.t ....................................... ok
t/version.t ........................................ ok
All tests successful.
Files=48, Tests=1806, 104 wallclock secs ( 0.24 usr  0.09 sys + 98.90 cusr  4.66 csys = 103.89 CPU)
Result: PASS
root@ca26e0289c6f:/soft/ensembl-vep-96.3# perl -e "use Bio::DB::BigFile"
Can't load '/soft/Bio-BigFile-1.07/lib/perl/5.18.2/auto/Bio/DB/BigFile/BigFile.so' for module Bio::DB::BigFile: /soft/Bio-BigFile-1.07/lib/perl/5.18.2/auto/Bio/DB/BigFile/BigFile.so: undefined symbol: tbx_readrec at /usr/lib/perl/5.18/DynaLoader.pm line 184.
 at -e line 1.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
ima23 commented 5 years ago

Dear @serge2016,

Thanks for the command lines. This might be related to your other installation issue. We are looking into it and see if we can replicate it.

Thanks, Irina

serge2016 commented 5 years ago

https://github.com/GMOD/GBrowse-Adaptors/issues/17 Here is the main 'trick': kent version 335 is critical for installation... The new version doesn't contain necessary fixes.

Stikus commented 5 years ago

Hello, as @serge2016 said - we are using kent-335 workaround for now (it will be very good if something similar to this will be done in VEP installation for newer versions of kent), but there are minor problem with tests:

# prove /soft/ensembl-vep-96.3/t/*.t                                                                
/soft/ensembl-vep-96.3/t/AnnotationSource.t ............................... ok                      
/soft/ensembl-vep-96.3/t/AnnotationSourceAdaptor.t ........................ ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_Cache.t ......................... ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_Cache_RegFeat.t ................. ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_Cache_Transcript.t .............. ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_Cache_Variation.t ............... ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_Cache_VariationTabix.t .......... ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_Database_RegFeat.t .............. ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_Database_StructuralVariation.t .. ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_Database_Transcript.t ........... ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_Database_Variation.t ............ ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_File.t .......................... ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_File_BED.t ...................... ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_File_BigWig.t ................... 1/? Couldn't open foo   
/soft/ensembl-vep-96.3/t/AnnotationSource_File_BigWig.t ................... ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_File_GFF.t ...................... ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_File_GTF.t ...................... ok                      
/soft/ensembl-vep-96.3/t/AnnotationSource_File_VCF.t ...................... ok                      
/soft/ensembl-vep-96.3/t/BaseVEP.t ........................................ ok                      
/soft/ensembl-vep-96.3/t/CacheDir.t ....................................... ok                      
/soft/ensembl-vep-96.3/t/Config.t ......................................... ok                      
/soft/ensembl-vep-96.3/t/FilterSet.t ...................................... ok                      
/soft/ensembl-vep-96.3/t/Haplo_AnnotationSource_Cache_Transcript.t ........ ok                      
/soft/ensembl-vep-96.3/t/Haplo_AnnotationSource_Database_Transcript.t ..... ok                      
/soft/ensembl-vep-96.3/t/Haplo_AnnotationSource_File_GFF.t ................ ok                      
/soft/ensembl-vep-96.3/t/Haplo_AnnotationSource_File_GTF.t ................ ok                      
/soft/ensembl-vep-96.3/t/Haplo_InputBuffer.t .............................. ok                      
/soft/ensembl-vep-96.3/t/Haplo_Parser_VCF.t ............................... ok                      
/soft/ensembl-vep-96.3/t/Haplo_Runner.t ................................... ok                      
/soft/ensembl-vep-96.3/t/InputBuffer.t .................................... ok                      
/soft/ensembl-vep-96.3/t/OutputFactory.t .................................. ok                      
/soft/ensembl-vep-96.3/t/OutputFactory_JSON.t ............................. ok                      
/soft/ensembl-vep-96.3/t/OutputFactory_Tab.t .............................. ok                      
/soft/ensembl-vep-96.3/t/OutputFactory_VCF.t .............................. ok                      
/soft/ensembl-vep-96.3/t/OutputFactory_VEP_output.t ....................... ok                      
/soft/ensembl-vep-96.3/t/Parser.t ......................................... ok                      
/soft/ensembl-vep-96.3/t/Parser_HGVS.t .................................... ok                      
/soft/ensembl-vep-96.3/t/Parser_ID.t ...................................... ok                      
/soft/ensembl-vep-96.3/t/Parser_Region.t .................................. ok                      
/soft/ensembl-vep-96.3/t/Parser_SPDI.t .................................... ok                      
/soft/ensembl-vep-96.3/t/Parser_VCF.t ..................................... ok                      
/soft/ensembl-vep-96.3/t/Parser_VEP_input.t ............................... ok                      
/soft/ensembl-vep-96.3/t/Runner.t ......................................... ok                      
/soft/ensembl-vep-96.3/t/Stats.t .......................................... ok                      
/soft/ensembl-vep-96.3/t/TranscriptTree.t ................................. ok                      
/soft/ensembl-vep-96.3/t/Utils.t .......................................... ok                      
/soft/ensembl-vep-96.3/t/VariantRecoder.t ................................. ok                      
/soft/ensembl-vep-96.3/t/bam_edit.t ....................................... ok                      
/soft/ensembl-vep-96.3/t/version.t ........................................ ok                      
All tests successful.                                                                               
Files=48, Tests=1807, 103 wallclock secs ( 0.23 usr  0.07 sys + 98.37 cusr  4.06 csys = 102.73 CPU) 
Result: PASS                                                                             

And additional info:

# perl -Imodules /soft/ensembl-vep-96.3/t/AnnotationSource_File_BigWig.t
ok 1 - use Bio::EnsEMBL::VEP::AnnotationSource::File;                   
ok 2 - use Bio::EnsEMBL::VEP::AnnotationSource::File::BigWig;           
ok 3 - use Bio::EnsEMBL::VEP::Config;                                   
ok 4 - get new config object                                            
ok 5 - new is defined                                                   
Couldn't open foo                                                       
ok 6 - new with invalid file throws                                     
ok 7 - use Bio::EnsEMBL::VEP::Parser::VCF;                              
ok 8 - get parser object                                                
ok 9 - use Bio::EnsEMBL::VEP::InputBuffer;                              
ok 10 - check class                                                     
ok 11 - check buffer next                                               
ok 12 - annotate_InputBuffer - overlap                                  
ok 13 - annotate_InputBuffer - exact, additive                          
ok 14 - annotate_InputBuffer - out by 1 (5')                            
ok 15 - annotate_InputBuffer - out by 1 (3')                            
ok 16 - overlap fixedStep                                               
1..16                          

Looks like this line throwing error. Can you give any advice how to fix it and why test is still ok with this error?

ens-lgil commented 5 years ago

Dear @Stikus,

The test is expecting to throw an error (throws_ok) as the file foo doesn't exist. That's why the test 6 is ok.

About kent and Bio::DB::BigFile, we are not very keen on modifying a Build.PL from an external library. I would have expected the fix you mentioned to go into the Bio::DB::BigFile package as a version v1.08, for instance. In VEP, we don't really need a more recent version of kent. Do you use thekent library for others libraries/tools ?

Best regards, Laurent

serge2016 commented 5 years ago

@ens-lgil and @ima23, is there a way to run module tests with displaying all subtests in the way they are shown during perl -Imodules t/AnnotationSource_File_BigWig.texecution?

No, we do not use any version of kent, but I think, that a newer version is often a better version. https://github.com/Ensembl/ensembl-vep/issues/451#issuecomment-506374327 we provide fixes in kent and Bio::DB::BigFile files.

ima23 commented 5 years ago

Dear @serge2016,

to get each individual test printed out you can either run the command perl -Imodules t/AnnotationSource_File_BigWig.t for each test file, or use prove with -v option: prove -v t/*.t

Best regards, Irina

serge2016 commented 5 years ago

Dear @ima23, thank you! That is what I looked for!