Hello IUC,
Tl;DR:
Help us fix tool tests!
we would like to make sure that our tools are well tested and working in the widest range of deployment scenarios possible. And as you may have noticed, tool dependency installation from Conda may break (or be fixed!) as time passes due to dependency-of-a-dependency upgrades, newer/older Conda versions etc.
To make sure that our tool wrappers will work on a wide range of deployments it is important that we include all dependencies that a tool has (i.e include coreutils if a wrapper uses paste, include sed if a wrapper uses sed, include python if a wrapper calls a python script). One way to make sure this is the case is to run tool tests in a minimal container that does not contain any software except the one listed in our tool wrappers <requirements/> tag set.
We also currently build containers for all IUC tools as well as other tool repositories listed in https://github.com/galaxyproject/planemo-monitor , but so far we are not testing that tool runs actually succeed in these containers. For dependencies (and dependency combinations) that are not available as a downloadable container Galaxy can build containers when needed. This functionality is also available via planemo test --biocontainers.
We have set up a github workflow that tests all IUC tools using planemo test and the --biocontainers flag. The test run can be seen here: https://github.com/mvdbeek/tools-iuc/commit/529a26943046ca80b18bccae31021db5c317eb7e/checks?check_suite_id=331921644
And a html report of only the failing tests is here: https://mvdbeek.github.io/iuc-tool-test-results/
Note also that the tool tests run against python 3.7, so this could be another class of errors we may need to fix (should concern only the cheetah templating).
The list of tools with failing tests is the following:
multigps @gregvonkuster - Fix MultiGPS tool #2754
ucsc-twobittofa @mvdbeek Extract_genomic_dna: use newer ucsc-fatotwobit version #2731
umi_tools (pysam ImportError: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory) @mvdbeek Add sed requirement, bump samtools requirement for umi_tools #2729 and container rebuild
scanpy: @mvdbeek Fix scanpy by using profile #2704
ncbi_eutils_epost
quast (UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 14588: ordinal not in range(128)) Use extended base for quast bioconda/bioconda-recipes#19062
anndata_inspect @mvdbeek needs extended-base container
snpEff_get_chr_names
art: @mvdbeek Update art version #2732
ebi_search_rest_results (HTTP Error 400: )
ebi_metagenomics_run_downloader (ModuleNotFoundError: No module named 'xmltramp2')
scpipe
EMBOSS:_wobble108 (missing perl) @bernt-matthias emboss: fix perl usage and add requirement #2725
mykrobe_predict
raceid_filtnormconf @mvdbeek
repeatmasker_wrapper (most likely sed not working on header)
heinz_visualization Add xorg-libxrender and fonts to Bandage bioconda/bioconda-recipes#19070
dropletutils
CoverageReport2 (perl: unable to load shared object '/usr/local/lib/R/library/grDevices/libs//cairo.so': libXrender.so.1: cannot open shared object file: No such file or directory)
busco (tar + maybe [makeblastdb] /usr/local/bin/makeblastdb: error while loading shared libraries: libbz2.so.1) busco: add tar requirement #2715 blast 2.2.21 -> 2.2.31: and backport changes from latest bioconda/bioconda-recipes#19016
simple_weather
ncbi_eutils_efetch
onto_tk_get_relationship_id_vs_relationship_def
migmap (blast: error while loading shared libraries: libbz2.so.1) Bump migmap build, get bzip2 dependency in container bioconda/bioconda-recipes#19084 Use migmap 1.0.3, fixes missing bzip2.so #2738
glimmer_acgt_content
cshl_fastx_nucleotides_distribution
snippy_core (tar unrecognized option '--strip-components=1') snippy: add tar requirement and use -x #2716
raceid_inspectclusters @mvdbeek
mothur_chimera_slayer @nsoranzo / Fix link to remove.otu #2702
glimmer_extract
scikit_bio_diversity_beta_diversity
breseq (tar -z) breseq: add tar requirement #2713
bwa_mem_index_builder_data_manager @mvdbeek Add python 3.7 dependency to bwa_mem index builder #2724
cshl_fastq_quality_boxplot
onto_tk_get_terms_by_relationship_type
hicexplorer_hicplottads
enasearch_retrieve_analysis_report
codeml (mv: can't remove '/tmp/tmpx34zwk08/job_working_directory/000/3/tmp5l4xkv9b': Read-only file system)
ncbi_eutils_einfo
query_tabular (diff probably caused somewhere due to floating point precision)
fasttree (docker: invalid reference format: repository name must be lowercase.) @mvdbeek
gemini_burden
poretools_squiggle
pipelign
stacks2 @bernt-matthias (diff with test data .. don't understand yet)
stacks @bernt-matthias (all seem to be installation problems: command not found)
samtools @bernt-matthias (does not find test data for cached case because test-data/cached_locally is a symlink) samtools: remove unnecessary symlink in global test-data #2712
dada2 @bernt-matthias (all but fetcher are due to diff in produced Rdata files, fetcher real bug) dada2 fixes #2705
maxbin2 @bernt-matthias (tar wo -z option) maxbin2: add idba out/err only if present (and update bioconda recipe) #2706
mummer_mummerplot
Extract_genomic_DNA_1 (faToTwoBit: error while loading shared libraries: libstdc++.so.6:) @mvdbeek Extract_genomic_dna: use newer ucsc-fatotwobit version #2731
transtermhp (env variable from /etc/conda/activate.d/ not set) transtermhp: add fix for env variable not set in containers #2726
snap_training
raceid_clustering @mvdbeek
glimmer_build_icm
raxml (python: command not found) raxml: add python requirement #2707
gemini_annotate
ruvseq (symlinked R script not found)
sina
meme_fimo - @gregvonkuster Update meme and fix tests #2744
fermi2
raceid_inspecttrajectory @mvdbeek
enasearch_retrieve_taxons
miniasm (error while loading shared libraries: libz.so.1)
star_fusion
hicexplorer_hicpca
glimmer_not_knowledge_based
resize_coordinate_window @gregvonkuster Fix resize_coordinate_window for python 3 #2745
newick_display (convert: command not found) newick display: add imagemagick dependency #2710
poretools_events
poretools_yield_plot
trinotate
taxonomy_krona_chart (/usr/bin/perl: bad interpreter: No such file or directory) update krona to 2.7.1 #2709
pathview (png output size diff)
bcftools
bctools
graphlan (conda conflict)
graphlan_annotate
cshl_fastx_barcode_splitter
poretools_occupancy
phyml
enasearch_search_data
bowtie2_index_builder_data_manager @mvdbeek Add python 3.7 to bowtie2, fix test data order #2723
varscan_somatic
bracken_build_database
variant_analyzer @bernt-matthias
jbrowse @abretaud
abyss-pe @mvdbeek abyss: Add util-linux for column command bioconda/bioconda-recipes#19060
prinseq (/usr/local/bin/perl shebang + recipe bump was forgotten) prinseq: bump build bioconda/bioconda-recipes#19014
kraken kraken: test fixes #2721
kraken2_build_database (the kraken perl script uses @ in path Possible unintended interpolation of @2 in string at /home/berntm/miniconda3/envs/__kraken2@2.0.8_beta /bin/kraken2, needs conda fix)
valet
meme_meme - @gregvonkuster - Update meme and fix tests #2744
pe_histogram (fonts: libfreetype.so.6: cannot open shared object file, JAVA) pe_histogram: add freetype requirement #2728
raceid_trajectory @mvdbeek
vcffilter2
column_order_header_sort
Bandage: @mvdbeek Fix containerized Bandage #2733
structure
glimmer_long_orfs
humann2
rcorrector
onto_tk_get_relationship_id_vs_relationship_name
enasearch_retrieve_run_report
feelnc @abretaud Fix feelnc and orthofinder with singularity #2757
prokka (version mismatch in test data and maybe tbl2asn to old?) prokka: more flexible testing #2717 still needs docker image rebuild
snpEff_build_gb
slamdunk
hicexplorer_hicplotmatrix
kraken-filter
orthofinder_onlygroups @abretaud Fix feelnc and orthofinder with singularity #2757
prestor_abseq3
augustus_training @abretaud Augustus 3.3.3 #2759
kissplice (error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory)
onto_tk_get_relationship_types
poretools_qualpos
goenrichment (fonts, Java) goenrichment: add fonts requirement bioconda/bioconda-recipes#19043
tb_profiler_profile
kobas_annotate
circos (tar -z AND mv: can't remove '/tmp/tmpzvg40cuz/job_working_directory/000/7/tmparfo8udy': Read-only file system) circos: add tar requirement #2714
bax2bam (mv: can't remove '/tmp/tmpzvg40cuz/job_working_directory/000/2/tmpnuxq8_9j': Read-only file system)
htseq_count
gfa_to_fa
hmmer3 hmmer3: update and nhmmer test fixes #2720
mykrobe_genotype
idr
masigpro masigpro: add coreutils requirement (for paste) #2722
poretools_hist
cshl_fastx_trimmer
qualimap (Java + fonts) qualimap add fonts requirement bioconda/bioconda-recipes#19041
snpEff_download
glimmer_knowledge_based
tag_pileup_frequency - tag_pileup_frequency test fixes #2727 - current failure: Applying linter tool_xsd... FAIL, The attribute 'designation' is not allowed
qiime (uses python2.7 but errors on 'getpwuid(): uid not found: 1001') @mvdbeek needs writable home dir, done. Also needs extended base image, need to rewrite mulled-build
fsd (ModuleNotFoundError: No module named 'matplotlib') fsd+repmatch_gff3: use recent matplotlib #2718
repmatch_gff3 (ModuleNotFoundError: No module named 'matplotlib') fsd+repmatch_gff3: use recent matplotlib #2718
If you're currently working on one of these tools write your name under the tool, so that we avoid duplicating our work
Hello IUC,
Tl;DR:
Help us fix tool tests!
we would like to make sure that our tools are well tested and working in the widest range of deployment scenarios possible. And as you may have noticed, tool dependency installation from Conda may break (or be fixed!) as time passes due to dependency-of-a-dependency upgrades, newer/older Conda versions etc.
To make sure that our tool wrappers will work on a wide range of deployments it is important that we include all dependencies that a tool has (i.e include coreutils if a wrapper uses
paste, include sed if a wrapper usessed, include python if a wrapper calls a python script). One way to make sure this is the case is to run tool tests in a minimal container that does not contain any software except the one listed in our tool wrappers<requirements/>tag set.We also currently build containers for all IUC tools as well as other tool repositories listed in https://github.com/galaxyproject/planemo-monitor, but so far we are not testing that tool runs actually succeed in these containers. For dependencies (and dependency combinations) that are not available as a downloadable container Galaxy can build containers when needed. This functionality is also available via
planemo test --biocontainers.We have set up a github workflow that tests all IUC tools using
planemo testand the--biocontainersflag. The test run can be seen here: https://github.com/mvdbeek/tools-iuc/commit/529a26943046ca80b18bccae31021db5c317eb7e/checks?check_suite_id=331921644And a html report of only the failing tests is here: https://mvdbeek.github.io/iuc-tool-test-results/
Note also that the tool tests run against python 3.7, so this could be another class of errors we may need to fix (should concern only the cheetah templating).
The list of tools with failing tests is the following:
If you're currently working on one of these tools write your name under the tool, so that we avoid duplicating our work