miga-base 0.7.26.0 → 1.0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/miga/_data/aai-intax.blast.tsv.gz +0 -0
- data/lib/miga/_data/aai-intax.diamond.tsv.gz +0 -0
- data/lib/miga/_data/aai-novel.blast.tsv.gz +0 -0
- data/lib/miga/_data/aai-novel.diamond.tsv.gz +0 -0
- data/lib/miga/cli/action/classify_wf.rb +2 -2
- data/lib/miga/cli/action/derep_wf.rb +1 -1
- data/lib/miga/cli/action/doctor.rb +57 -14
- data/lib/miga/cli/action/doctor/base.rb +47 -23
- data/lib/miga/cli/action/init.rb +11 -7
- data/lib/miga/cli/action/init/files_helper.rb +1 -0
- data/lib/miga/cli/action/ncbi_get.rb +3 -3
- data/lib/miga/cli/action/tax_dist.rb +2 -2
- data/lib/miga/cli/action/wf.rb +5 -4
- data/lib/miga/common.rb +1 -0
- data/lib/miga/daemon.rb +11 -4
- data/lib/miga/dataset/result.rb +10 -6
- data/lib/miga/json.rb +5 -4
- data/lib/miga/metadata.rb +5 -1
- data/lib/miga/parallel.rb +36 -0
- data/lib/miga/project.rb +8 -8
- data/lib/miga/project/base.rb +4 -4
- data/lib/miga/project/result.rb +2 -2
- data/lib/miga/sqlite.rb +10 -2
- data/lib/miga/version.rb +23 -9
- data/scripts/aai_distances.bash +16 -18
- data/scripts/ani_distances.bash +16 -17
- data/scripts/assembly.bash +31 -16
- data/scripts/haai_distances.bash +3 -27
- data/scripts/miga.bash +6 -4
- data/scripts/p.bash +1 -1
- data/scripts/read_quality.bash +9 -18
- data/scripts/trimmed_fasta.bash +14 -30
- data/scripts/trimmed_reads.bash +36 -36
- data/test/parallel_test.rb +31 -0
- data/test/project_test.rb +2 -1
- data/test/remote_dataset_test.rb +1 -1
- data/utils/FastAAI/00.Libraries/01.SCG_HMMs/Archaea_SCG.hmm +41964 -0
- data/utils/FastAAI/00.Libraries/01.SCG_HMMs/Bacteria_SCG.hmm +32439 -0
- data/utils/FastAAI/00.Libraries/01.SCG_HMMs/Complete_SCG_DB.hmm +62056 -0
- data/utils/FastAAI/FastAAI/FastAAI +1336 -0
- data/utils/FastAAI/README.md +84 -0
- data/utils/FastAAI/kAAI_v1.0_virus.py +1296 -0
- data/utils/distance/commands.rb +1 -0
- data/utils/distance/database.rb +0 -1
- data/utils/distance/runner.rb +2 -4
- data/utils/enveomics/Docs/recplot2.md +244 -0
- data/utils/enveomics/Examples/aai-matrix.bash +66 -0
- data/utils/enveomics/Examples/ani-matrix.bash +66 -0
- data/utils/enveomics/Examples/essential-phylogeny.bash +105 -0
- data/utils/enveomics/Examples/unus-genome-phylogeny.bash +100 -0
- data/utils/enveomics/LICENSE.txt +73 -0
- data/utils/enveomics/Makefile +52 -0
- data/utils/enveomics/Manifest/Tasks/aasubs.json +103 -0
- data/utils/enveomics/Manifest/Tasks/blasttab.json +786 -0
- data/utils/enveomics/Manifest/Tasks/distances.json +161 -0
- data/utils/enveomics/Manifest/Tasks/fasta.json +802 -0
- data/utils/enveomics/Manifest/Tasks/fastq.json +291 -0
- data/utils/enveomics/Manifest/Tasks/graphics.json +126 -0
- data/utils/enveomics/Manifest/Tasks/mapping.json +137 -0
- data/utils/enveomics/Manifest/Tasks/ogs.json +382 -0
- data/utils/enveomics/Manifest/Tasks/other.json +906 -0
- data/utils/enveomics/Manifest/Tasks/remote.json +355 -0
- data/utils/enveomics/Manifest/Tasks/sequence-identity.json +638 -0
- data/utils/enveomics/Manifest/Tasks/tables.json +308 -0
- data/utils/enveomics/Manifest/Tasks/trees.json +68 -0
- data/utils/enveomics/Manifest/Tasks/variants.json +111 -0
- data/utils/enveomics/Manifest/categories.json +165 -0
- data/utils/enveomics/Manifest/examples.json +154 -0
- data/utils/enveomics/Manifest/tasks.json +4 -0
- data/utils/enveomics/Pipelines/assembly.pbs/CONFIG.mock.bash +69 -0
- data/utils/enveomics/Pipelines/assembly.pbs/FastA.N50.pl +1 -0
- data/utils/enveomics/Pipelines/assembly.pbs/FastA.filterN.pl +1 -0
- data/utils/enveomics/Pipelines/assembly.pbs/FastA.length.pl +1 -0
- data/utils/enveomics/Pipelines/assembly.pbs/README.md +189 -0
- data/utils/enveomics/Pipelines/assembly.pbs/RUNME-2.bash +112 -0
- data/utils/enveomics/Pipelines/assembly.pbs/RUNME-3.bash +23 -0
- data/utils/enveomics/Pipelines/assembly.pbs/RUNME-4.bash +44 -0
- data/utils/enveomics/Pipelines/assembly.pbs/RUNME.bash +50 -0
- data/utils/enveomics/Pipelines/assembly.pbs/kSelector.R +37 -0
- data/utils/enveomics/Pipelines/assembly.pbs/newbler.pbs +68 -0
- data/utils/enveomics/Pipelines/assembly.pbs/newbler_preparator.pl +49 -0
- data/utils/enveomics/Pipelines/assembly.pbs/soap.pbs +80 -0
- data/utils/enveomics/Pipelines/assembly.pbs/stats.pbs +57 -0
- data/utils/enveomics/Pipelines/assembly.pbs/velvet.pbs +63 -0
- data/utils/enveomics/Pipelines/blast.pbs/01.pbs.bash +38 -0
- data/utils/enveomics/Pipelines/blast.pbs/02.pbs.bash +73 -0
- data/utils/enveomics/Pipelines/blast.pbs/03.pbs.bash +21 -0
- data/utils/enveomics/Pipelines/blast.pbs/BlastTab.recover_job.pl +72 -0
- data/utils/enveomics/Pipelines/blast.pbs/CONFIG.mock.bash +98 -0
- data/utils/enveomics/Pipelines/blast.pbs/FastA.split.pl +1 -0
- data/utils/enveomics/Pipelines/blast.pbs/README.md +127 -0
- data/utils/enveomics/Pipelines/blast.pbs/RUNME.bash +109 -0
- data/utils/enveomics/Pipelines/blast.pbs/TASK.check.bash +128 -0
- data/utils/enveomics/Pipelines/blast.pbs/TASK.dry.bash +16 -0
- data/utils/enveomics/Pipelines/blast.pbs/TASK.eo.bash +22 -0
- data/utils/enveomics/Pipelines/blast.pbs/TASK.pause.bash +26 -0
- data/utils/enveomics/Pipelines/blast.pbs/TASK.run.bash +89 -0
- data/utils/enveomics/Pipelines/blast.pbs/sentinel.pbs.bash +29 -0
- data/utils/enveomics/Pipelines/idba.pbs/README.md +49 -0
- data/utils/enveomics/Pipelines/idba.pbs/RUNME.bash +95 -0
- data/utils/enveomics/Pipelines/idba.pbs/run.pbs +56 -0
- data/utils/enveomics/Pipelines/trim.pbs/README.md +54 -0
- data/utils/enveomics/Pipelines/trim.pbs/RUNME.bash +70 -0
- data/utils/enveomics/Pipelines/trim.pbs/run.pbs +130 -0
- data/utils/enveomics/README.md +42 -0
- data/utils/enveomics/Scripts/AAsubs.log2ratio.rb +171 -0
- data/utils/enveomics/Scripts/Aln.cat.rb +221 -0
- data/utils/enveomics/Scripts/Aln.convert.pl +35 -0
- data/utils/enveomics/Scripts/AlphaDiversity.pl +152 -0
- data/utils/enveomics/Scripts/BedGraph.tad.rb +93 -0
- data/utils/enveomics/Scripts/BedGraph.window.rb +71 -0
- data/utils/enveomics/Scripts/BlastPairwise.AAsubs.pl +102 -0
- data/utils/enveomics/Scripts/BlastTab.addlen.rb +63 -0
- data/utils/enveomics/Scripts/BlastTab.advance.bash +48 -0
- data/utils/enveomics/Scripts/BlastTab.best_hit_sorted.pl +55 -0
- data/utils/enveomics/Scripts/BlastTab.catsbj.pl +104 -0
- data/utils/enveomics/Scripts/BlastTab.cogCat.rb +76 -0
- data/utils/enveomics/Scripts/BlastTab.filter.pl +47 -0
- data/utils/enveomics/Scripts/BlastTab.kegg_pep2path_rest.pl +194 -0
- data/utils/enveomics/Scripts/BlastTab.metaxaPrep.pl +104 -0
- data/utils/enveomics/Scripts/BlastTab.pairedHits.rb +157 -0
- data/utils/enveomics/Scripts/BlastTab.recplot2.R +48 -0
- data/utils/enveomics/Scripts/BlastTab.seqdepth.pl +86 -0
- data/utils/enveomics/Scripts/BlastTab.seqdepth_ZIP.pl +119 -0
- data/utils/enveomics/Scripts/BlastTab.seqdepth_nomedian.pl +86 -0
- data/utils/enveomics/Scripts/BlastTab.subsample.pl +47 -0
- data/utils/enveomics/Scripts/BlastTab.sumPerHit.pl +114 -0
- data/utils/enveomics/Scripts/BlastTab.taxid2taxrank.pl +90 -0
- data/utils/enveomics/Scripts/BlastTab.topHits_sorted.rb +101 -0
- data/utils/enveomics/Scripts/Chao1.pl +97 -0
- data/utils/enveomics/Scripts/CharTable.classify.rb +234 -0
- data/utils/enveomics/Scripts/EBIseq2tax.rb +83 -0
- data/utils/enveomics/Scripts/FastA.N50.pl +60 -0
- data/utils/enveomics/Scripts/FastA.extract.rb +152 -0
- data/utils/enveomics/Scripts/FastA.filter.pl +52 -0
- data/utils/enveomics/Scripts/FastA.filterLen.pl +28 -0
- data/utils/enveomics/Scripts/FastA.filterN.pl +60 -0
- data/utils/enveomics/Scripts/FastA.fragment.rb +100 -0
- data/utils/enveomics/Scripts/FastA.gc.pl +42 -0
- data/utils/enveomics/Scripts/FastA.interpose.pl +93 -0
- data/utils/enveomics/Scripts/FastA.length.pl +38 -0
- data/utils/enveomics/Scripts/FastA.mask.rb +89 -0
- data/utils/enveomics/Scripts/FastA.per_file.pl +36 -0
- data/utils/enveomics/Scripts/FastA.qlen.pl +57 -0
- data/utils/enveomics/Scripts/FastA.rename.pl +65 -0
- data/utils/enveomics/Scripts/FastA.revcom.pl +23 -0
- data/utils/enveomics/Scripts/FastA.sample.rb +98 -0
- data/utils/enveomics/Scripts/FastA.slider.pl +85 -0
- data/utils/enveomics/Scripts/FastA.split.pl +55 -0
- data/utils/enveomics/Scripts/FastA.split.rb +79 -0
- data/utils/enveomics/Scripts/FastA.subsample.pl +131 -0
- data/utils/enveomics/Scripts/FastA.tag.rb +65 -0
- data/utils/enveomics/Scripts/FastA.toFastQ.rb +69 -0
- data/utils/enveomics/Scripts/FastA.wrap.rb +48 -0
- data/utils/enveomics/Scripts/FastQ.filter.pl +54 -0
- data/utils/enveomics/Scripts/FastQ.interpose.pl +90 -0
- data/utils/enveomics/Scripts/FastQ.maskQual.rb +89 -0
- data/utils/enveomics/Scripts/FastQ.offset.pl +90 -0
- data/utils/enveomics/Scripts/FastQ.split.pl +53 -0
- data/utils/enveomics/Scripts/FastQ.tag.rb +70 -0
- data/utils/enveomics/Scripts/FastQ.test-error.rb +81 -0
- data/utils/enveomics/Scripts/FastQ.toFastA.awk +24 -0
- data/utils/enveomics/Scripts/GFF.catsbj.pl +127 -0
- data/utils/enveomics/Scripts/GenBank.add_fields.rb +84 -0
- data/utils/enveomics/Scripts/HMM.essential.rb +351 -0
- data/utils/enveomics/Scripts/HMM.haai.rb +168 -0
- data/utils/enveomics/Scripts/HMMsearch.extractIds.rb +83 -0
- data/utils/enveomics/Scripts/JPlace.distances.rb +88 -0
- data/utils/enveomics/Scripts/JPlace.to_iToL.rb +320 -0
- data/utils/enveomics/Scripts/M5nr.getSequences.rb +81 -0
- data/utils/enveomics/Scripts/MeTaxa.distribution.pl +198 -0
- data/utils/enveomics/Scripts/MyTaxa.fragsByTax.pl +35 -0
- data/utils/enveomics/Scripts/MyTaxa.seq-taxrank.rb +49 -0
- data/utils/enveomics/Scripts/NCBIacc2tax.rb +92 -0
- data/utils/enveomics/Scripts/Newick.autoprune.R +27 -0
- data/utils/enveomics/Scripts/RAxML-EPA.to_iToL.pl +228 -0
- data/utils/enveomics/Scripts/RecPlot2.compareIdentities.R +32 -0
- data/utils/enveomics/Scripts/RefSeq.download.bash +48 -0
- data/utils/enveomics/Scripts/SRA.download.bash +55 -0
- data/utils/enveomics/Scripts/TRIBS.plot-test.R +36 -0
- data/utils/enveomics/Scripts/TRIBS.test.R +39 -0
- data/utils/enveomics/Scripts/Table.barplot.R +31 -0
- data/utils/enveomics/Scripts/Table.df2dist.R +30 -0
- data/utils/enveomics/Scripts/Table.filter.pl +61 -0
- data/utils/enveomics/Scripts/Table.merge.pl +77 -0
- data/utils/enveomics/Scripts/Table.prefScore.R +60 -0
- data/utils/enveomics/Scripts/Table.replace.rb +69 -0
- data/utils/enveomics/Scripts/Table.round.rb +63 -0
- data/utils/enveomics/Scripts/Table.split.pl +57 -0
- data/utils/enveomics/Scripts/Taxonomy.silva2ncbi.rb +227 -0
- data/utils/enveomics/Scripts/VCF.KaKs.rb +147 -0
- data/utils/enveomics/Scripts/VCF.SNPs.rb +88 -0
- data/utils/enveomics/Scripts/aai.rb +419 -0
- data/utils/enveomics/Scripts/ani.rb +362 -0
- data/utils/enveomics/Scripts/anir.rb +137 -0
- data/utils/enveomics/Scripts/clust.rand.rb +102 -0
- data/utils/enveomics/Scripts/gi2tax.rb +103 -0
- data/utils/enveomics/Scripts/in_silico_GA_GI.pl +96 -0
- data/utils/enveomics/Scripts/lib/data/dupont_2012_essential.hmm.gz +0 -0
- data/utils/enveomics/Scripts/lib/data/lee_2019_essential.hmm.gz +0 -0
- data/utils/enveomics/Scripts/lib/enveomics.R +1 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/anir.rb +293 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/bm_set.rb +175 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/enveomics.rb +24 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/errors.rb +17 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/gmm_em.rb +30 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/jplace.rb +253 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/match.rb +63 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/og.rb +182 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/rbm.rb +49 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/remote_data.rb +74 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/seq_range.rb +237 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/stats.rb +3 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/stats/rand.rb +31 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/stats/sample.rb +152 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/utils.rb +73 -0
- data/utils/enveomics/Scripts/lib/enveomics_rb/vcf.rb +135 -0
- data/utils/enveomics/Scripts/ogs.annotate.rb +88 -0
- data/utils/enveomics/Scripts/ogs.core-pan.rb +160 -0
- data/utils/enveomics/Scripts/ogs.extract.rb +125 -0
- data/utils/enveomics/Scripts/ogs.mcl.rb +186 -0
- data/utils/enveomics/Scripts/ogs.rb +104 -0
- data/utils/enveomics/Scripts/ogs.stats.rb +131 -0
- data/utils/enveomics/Scripts/rbm-legacy.rb +172 -0
- data/utils/enveomics/Scripts/rbm.rb +100 -0
- data/utils/enveomics/Scripts/sam.filter.rb +148 -0
- data/utils/enveomics/Tests/Makefile +10 -0
- data/utils/enveomics/Tests/Mgen_M2288.faa +3189 -0
- data/utils/enveomics/Tests/Mgen_M2288.fna +8282 -0
- data/utils/enveomics/Tests/Mgen_M2321.fna +8288 -0
- data/utils/enveomics/Tests/Nequ_Kin4M.faa +2970 -0
- data/utils/enveomics/Tests/Xanthomonas_oryzae-PilA.tribs.Rdata +0 -0
- data/utils/enveomics/Tests/Xanthomonas_oryzae-PilA.txt +7 -0
- data/utils/enveomics/Tests/Xanthomonas_oryzae.aai-mat.tsv +17 -0
- data/utils/enveomics/Tests/Xanthomonas_oryzae.aai.tsv +137 -0
- data/utils/enveomics/Tests/a_mg.cds-go.blast.tsv +123 -0
- data/utils/enveomics/Tests/a_mg.reads-cds.blast.tsv +200 -0
- data/utils/enveomics/Tests/a_mg.reads-cds.counts.tsv +55 -0
- data/utils/enveomics/Tests/alkB.nwk +1 -0
- data/utils/enveomics/Tests/anthrax-cansnp-data.tsv +13 -0
- data/utils/enveomics/Tests/anthrax-cansnp-key.tsv +17 -0
- data/utils/enveomics/Tests/hiv1.faa +59 -0
- data/utils/enveomics/Tests/hiv1.fna +134 -0
- data/utils/enveomics/Tests/hiv2.faa +70 -0
- data/utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv +233 -0
- data/utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv.lim +1 -0
- data/utils/enveomics/Tests/hiv_mix-hiv1.blast.tsv.rec +233 -0
- data/utils/enveomics/Tests/phyla_counts.tsv +10 -0
- data/utils/enveomics/Tests/primate_lentivirus.ogs +11 -0
- data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv1-hiv1.rbm +9 -0
- data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv1-hiv2.rbm +8 -0
- data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv1-siv.rbm +6 -0
- data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv2-hiv2.rbm +9 -0
- data/utils/enveomics/Tests/primate_lentivirus.rbm/hiv2-siv.rbm +6 -0
- data/utils/enveomics/Tests/primate_lentivirus.rbm/siv-siv.rbm +6 -0
- data/utils/enveomics/build_enveomics_r.bash +45 -0
- data/utils/enveomics/enveomics.R/DESCRIPTION +31 -0
- data/utils/enveomics/enveomics.R/NAMESPACE +39 -0
- data/utils/enveomics/enveomics.R/R/autoprune.R +155 -0
- data/utils/enveomics/enveomics.R/R/barplot.R +184 -0
- data/utils/enveomics/enveomics.R/R/cliopts.R +135 -0
- data/utils/enveomics/enveomics.R/R/df2dist.R +154 -0
- data/utils/enveomics/enveomics.R/R/growthcurve.R +331 -0
- data/utils/enveomics/enveomics.R/R/prefscore.R +79 -0
- data/utils/enveomics/enveomics.R/R/recplot.R +354 -0
- data/utils/enveomics/enveomics.R/R/recplot2.R +1631 -0
- data/utils/enveomics/enveomics.R/R/tribs.R +583 -0
- data/utils/enveomics/enveomics.R/R/utils.R +80 -0
- data/utils/enveomics/enveomics.R/README.md +81 -0
- data/utils/enveomics/enveomics.R/data/growth.curves.rda +0 -0
- data/utils/enveomics/enveomics.R/data/phyla.counts.rda +0 -0
- data/utils/enveomics/enveomics.R/man/cash-enve.GrowthCurve-method.Rd +16 -0
- data/utils/enveomics/enveomics.R/man/cash-enve.RecPlot2-method.Rd +16 -0
- data/utils/enveomics/enveomics.R/man/cash-enve.RecPlot2.Peak-method.Rd +16 -0
- data/utils/enveomics/enveomics.R/man/enve.GrowthCurve-class.Rd +25 -0
- data/utils/enveomics/enveomics.R/man/enve.TRIBS-class.Rd +46 -0
- data/utils/enveomics/enveomics.R/man/enve.TRIBS.merge.Rd +23 -0
- data/utils/enveomics/enveomics.R/man/enve.TRIBStest-class.Rd +47 -0
- data/utils/enveomics/enveomics.R/man/enve.__prune.iter.Rd +23 -0
- data/utils/enveomics/enveomics.R/man/enve.__prune.reduce.Rd +23 -0
- data/utils/enveomics/enveomics.R/man/enve.__tribs.Rd +40 -0
- data/utils/enveomics/enveomics.R/man/enve.barplot.Rd +103 -0
- data/utils/enveomics/enveomics.R/man/enve.cliopts.Rd +67 -0
- data/utils/enveomics/enveomics.R/man/enve.col.alpha.Rd +24 -0
- data/utils/enveomics/enveomics.R/man/enve.col2alpha.Rd +19 -0
- data/utils/enveomics/enveomics.R/man/enve.df2dist.Rd +45 -0
- data/utils/enveomics/enveomics.R/man/enve.df2dist.group.Rd +44 -0
- data/utils/enveomics/enveomics.R/man/enve.df2dist.list.Rd +47 -0
- data/utils/enveomics/enveomics.R/man/enve.growthcurve.Rd +75 -0
- data/utils/enveomics/enveomics.R/man/enve.prefscore.Rd +50 -0
- data/utils/enveomics/enveomics.R/man/enve.prune.dist.Rd +44 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot.Rd +139 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2-class.Rd +45 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.ANIr.Rd +24 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.Rd +77 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.__counts.Rd +25 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.__peakHist.Rd +21 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.__whichClosestPeak.Rd +19 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.changeCutoff.Rd +19 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.compareIdentities.Rd +47 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.coordinates.Rd +29 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.corePeak.Rd +18 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.extractWindows.Rd +45 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.Rd +36 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_e.Rd +19 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__em_m.Rd +19 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__emauto_one.Rd +27 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mow_one.Rd +52 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.__mower.Rd +17 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.em.Rd +51 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.emauto.Rd +43 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.findPeaks.mower.Rd +82 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.peak-class.Rd +59 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.seqdepth.Rd +27 -0
- data/utils/enveomics/enveomics.R/man/enve.recplot2.windowDepthThreshold.Rd +36 -0
- data/utils/enveomics/enveomics.R/man/enve.selvector.Rd +23 -0
- data/utils/enveomics/enveomics.R/man/enve.tribs.Rd +68 -0
- data/utils/enveomics/enveomics.R/man/enve.tribs.test.Rd +28 -0
- data/utils/enveomics/enveomics.R/man/enve.truncate.Rd +27 -0
- data/utils/enveomics/enveomics.R/man/growth.curves.Rd +14 -0
- data/utils/enveomics/enveomics.R/man/phyla.counts.Rd +13 -0
- data/utils/enveomics/enveomics.R/man/plot.enve.GrowthCurve.Rd +78 -0
- data/utils/enveomics/enveomics.R/man/plot.enve.TRIBS.Rd +46 -0
- data/utils/enveomics/enveomics.R/man/plot.enve.TRIBStest.Rd +45 -0
- data/utils/enveomics/enveomics.R/man/plot.enve.recplot2.Rd +125 -0
- data/utils/enveomics/enveomics.R/man/summary.enve.GrowthCurve.Rd +19 -0
- data/utils/enveomics/enveomics.R/man/summary.enve.TRIBS.Rd +19 -0
- data/utils/enveomics/enveomics.R/man/summary.enve.TRIBStest.Rd +19 -0
- data/utils/enveomics/globals.mk +8 -0
- data/utils/enveomics/manifest.json +9 -0
- data/utils/multitrim/Multitrim How-To.pdf +0 -0
- data/utils/multitrim/README.md +67 -0
- data/utils/multitrim/multitrim.py +1555 -0
- data/utils/multitrim/multitrim.yml +13 -0
- data/utils/requirements.txt +4 -3
- metadata +304 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b4d9aad1ec5368e6cce82c4385a1d40839e948115e7749709a51e9c517d762f0
|
4
|
+
data.tar.gz: dc7b6500cbd85a1c50ef92fd41c0436dbbc16273ad245f730f8c2beb684db587
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5973a0b393ff61b1065b74ae36f580be0e80467c8c5b281e82541539b9a97d37b553d82d4d284ec041be72937f7de1274cfa94f2f1c8593a3dcb4c97d3820eff
|
7
|
+
data.tar.gz: 60388895b6d864154ff94cd70ae7959f2ac80688a6f46c1d092fc8b08c7597ef3814bdf947bcc05a9832a9a54136c61a4a1970c4aefa3b05d57ad9c6bb670c1d
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -50,7 +50,7 @@ class MiGA::Cli::Action::ClassifyWf < MiGA::Cli::Action
|
|
50
50
|
# Input data
|
51
51
|
ref_db = reference_db
|
52
52
|
norun = %w[
|
53
|
-
|
53
|
+
haai_distances aai_distances ani_distances clade_finding
|
54
54
|
]
|
55
55
|
p_metadata = Hash[norun.map { |i| ["run_#{i}", false] }]
|
56
56
|
p = create_project(
|
@@ -59,7 +59,7 @@ class MiGA::Cli::Action::ClassifyWf < MiGA::Cli::Action
|
|
59
59
|
run_ssu: false, run_mytaxa_scan: false, run_distances: false
|
60
60
|
)
|
61
61
|
p.set_option(:ref_project, ref_db.path)
|
62
|
-
p.set_option(:tax_pvalue, cli[:pvalue]
|
62
|
+
p.set_option(:tax_pvalue, cli[:pvalue])
|
63
63
|
# Run
|
64
64
|
run_daemon
|
65
65
|
summarize(%w[cds assembly essential_genes]) if cli[:summaries]
|
@@ -52,7 +52,7 @@ class MiGA::Cli::Action::DerepWf < MiGA::Cli::Action
|
|
52
52
|
# Input data
|
53
53
|
p = create_project(
|
54
54
|
:assembly,
|
55
|
-
{
|
55
|
+
{ run_clades: false },
|
56
56
|
{ run_mytaxa_scan: false, run_ssu: false }
|
57
57
|
)
|
58
58
|
p.set_option(:gsp_metric, cli[:metric].to_s)
|
@@ -93,7 +93,7 @@ class MiGA::Cli::Action::Doctor < MiGA::Cli::Action
|
|
93
93
|
k += 1
|
94
94
|
cli.advance('Datasets:', k, n, false) if i == 0
|
95
95
|
next unless k % cli[:threads] == i
|
96
|
-
each_database_file(d) do |db_file, metric, result|
|
96
|
+
each_database_file(d) do |db_file, metric, result, _rank|
|
97
97
|
check_sqlite3_database(db_file, metric) do
|
98
98
|
cli.say(
|
99
99
|
" > Removing malformed database from #{d.name}:#{result} "
|
@@ -116,27 +116,70 @@ class MiGA::Cli::Action::Doctor < MiGA::Cli::Action
|
|
116
116
|
# Perform bidirectional operation with MiGA::Cli +cli+
|
117
117
|
def check_bidir(cli)
|
118
118
|
cli.say 'Checking if reference distances are bidirectional'
|
119
|
-
|
119
|
+
project = cli.load_project
|
120
|
+
ref_ds = project.each_dataset.select(&:ref?)
|
120
121
|
ref_names = ref_ds.map(&:name)
|
121
122
|
n = ref_ds.size
|
122
|
-
(0 .. cli[:threads] - 1).map do |i|
|
123
|
-
Process.fork do
|
124
|
-
k = 0
|
125
|
-
ref_ds.each do |d|
|
126
|
-
k += 1
|
127
|
-
cli.advance('Datasets:', k, n, false) if i == 0
|
128
|
-
next unless k % cli[:threads] == i
|
129
123
|
|
130
|
-
|
131
|
-
|
124
|
+
# Read data first (threaded)
|
125
|
+
tmp = File.join(project.path, 'doctor-bidirectional.tmp')
|
126
|
+
FileUtils.mkdir_p(tmp)
|
127
|
+
MiGA::Parallel.process(cli[:threads]) do |thr|
|
128
|
+
file = File.join(tmp, "#{thr}.json")
|
129
|
+
fh = File.open(file, 'w')
|
130
|
+
[:aai, :ani].each do |metric|
|
131
|
+
fh.puts "# #{metric}"
|
132
|
+
ref_ds.each_with_index do |ds, idx|
|
133
|
+
if idx % cli[:threads] == thr
|
134
|
+
cli.advance('Reading:', idx + 1, n, false) if thr == 0
|
135
|
+
row = read_bidirectional(ds, metric)
|
136
|
+
fh.puts "#{ds.name} #{JSON.fast_generate(row)}" unless row.empty?
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
fh.puts '# end'
|
141
|
+
fh.flush # necessary for large threaded runs
|
142
|
+
fh.close
|
143
|
+
if thr == 0
|
144
|
+
cli.advance('Reading:', n, n, false)
|
145
|
+
cli.say
|
146
|
+
end
|
147
|
+
end
|
132
148
|
|
133
|
-
|
134
|
-
|
149
|
+
# Merge pieces per thread
|
150
|
+
dist = { aai: {}, ani: {} }
|
151
|
+
cli[:threads].times do |i|
|
152
|
+
cli.advance('Merging:', i + 1, cli[:threads], false)
|
153
|
+
file = File.join(tmp, "#{i}.json")
|
154
|
+
File.open(file, 'r') do |fh|
|
155
|
+
metric = nil
|
156
|
+
fh.each do |ln|
|
157
|
+
qry, row = ln.chomp.split(' ', 2)
|
158
|
+
if qry == '#'
|
159
|
+
metric = row.to_sym
|
160
|
+
else
|
161
|
+
raise "Unrecognized metric: #{metric}" unless dist[metric]
|
162
|
+
JSON.parse(row).each do |sbj, val|
|
163
|
+
dist[metric][qry] ||= {}
|
164
|
+
if dist[metric][sbj]&.include?(qry)
|
165
|
+
dist[metric][sbj].delete(qry) # Already bidirectional
|
166
|
+
else
|
167
|
+
dist[metric][qry][sbj] = val
|
168
|
+
end
|
169
|
+
end
|
135
170
|
end
|
136
171
|
end
|
172
|
+
raise "Incomplete thread dump: #{file}" unless metric == :end
|
137
173
|
end
|
138
174
|
end
|
139
|
-
|
175
|
+
cli.say
|
176
|
+
FileUtils.rm_rf(tmp)
|
177
|
+
|
178
|
+
# Write missing values (threaded)
|
179
|
+
MiGA::Parallel.distribute(ref_ds, cli[:threads]) do |ds, idx, thr|
|
180
|
+
cli.advance('Datasets:', idx + 1, n, false) if thr == 0
|
181
|
+
save_bidirectional(ds, dist)
|
182
|
+
end
|
140
183
|
cli.say
|
141
184
|
end
|
142
185
|
|
@@ -16,22 +16,28 @@ module MiGA::Cli::Action::Doctor::Base
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def each_database_file(dataset, &blk)
|
19
|
-
ref_db = {
|
20
|
-
|
19
|
+
ref_db = {
|
20
|
+
haai: ['01.haai', :aai], aai: ['02.aai', :aai], ani: ['03.ani', :ani]
|
21
|
+
}
|
22
|
+
qry_db = {
|
23
|
+
haai: ['.haai.db', :aai], aai: ['.aai.db', :aai], ani: ['.ani.db', :ani]
|
24
|
+
}
|
21
25
|
base = File.join(dataset.project.path, 'data', '09.distances')
|
22
26
|
result = :distances
|
23
27
|
if dataset.ref?
|
24
28
|
file_db = "#{dataset.name}.db"
|
25
|
-
ref_db.each do |
|
29
|
+
ref_db.each do |rank, v|
|
30
|
+
dir, metric = *v
|
26
31
|
file = File.join(base, dir, file_db)
|
27
|
-
blk[file, metric, result] if File.exist? file
|
32
|
+
blk[file, metric, result, rank] if File.exist? file
|
28
33
|
end
|
29
34
|
base = File.join(base, '05.taxonomy')
|
30
35
|
result = :taxonomy
|
31
36
|
end
|
32
|
-
qry_db.each do |
|
37
|
+
qry_db.each do |rank, v|
|
38
|
+
ext, metric = *v
|
33
39
|
file = File.join(base, "#{dataset.name}#{ext}")
|
34
|
-
blk[file, metric, result] if File.exist? file
|
40
|
+
blk[file, metric, result, rank] if File.exist? file
|
35
41
|
end
|
36
42
|
end
|
37
43
|
|
@@ -109,25 +115,43 @@ module MiGA::Cli::Action::Doctor::Base
|
|
109
115
|
end
|
110
116
|
|
111
117
|
##
|
112
|
-
#
|
113
|
-
#
|
114
|
-
def
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
118
|
+
# Reads all the distance estimates in +a+ -> * for +metric+ and
|
119
|
+
# returns them as a hash +{"b_name" => [val, sd, ...], ...}+
|
120
|
+
def read_bidirectional(a, metric)
|
121
|
+
db_file = a.result(:distances)&.file_path("#{metric}_db") or return {}
|
122
|
+
sql = "select seq2, #{metric}, sd, n, omega from #{metric}"
|
123
|
+
data = MiGA::SQLite.new(db_file).run(sql) || []
|
124
|
+
Hash[
|
125
|
+
data.map do |row|
|
126
|
+
k, v = row.shift(2)
|
127
|
+
[k, row.all?(&:zero?) ? v : [v] + row]
|
128
|
+
end
|
129
|
+
]
|
130
|
+
end
|
122
131
|
|
123
|
-
|
124
|
-
|
132
|
+
##
|
133
|
+
# Saves all the distance estimates in * -> +a+ into the +a+ databases
|
134
|
+
# (as +a+ -> *), where +a+ is a MiGA::Dataset object, with currently
|
135
|
+
# saved values read from the hash +dist+
|
136
|
+
def save_bidirectional(a, dist)
|
137
|
+
each_database_file(a) do |db_file, metric, result, rank|
|
138
|
+
next if rank == :haai # No need for hAAI to be bidirectional
|
125
139
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
140
|
+
b2a = dist[rank].map { |b_name, v| b_name if v[a.name] }.compact
|
141
|
+
a2b = dist[rank][a.name]&.keys || []
|
142
|
+
SQLite3::Database.new(db_file) do |db|
|
143
|
+
sql = <<~SQL
|
144
|
+
insert into #{metric}(seq1, seq2, #{metric}, sd, n, omega) \
|
145
|
+
values(?, ?, ?, ?, ?, ?);
|
146
|
+
SQL
|
147
|
+
db.execute('BEGIN TRANSACTION;')
|
148
|
+
(b2a - a2b).each do |b_name|
|
149
|
+
val = dist[rank][b_name][a.name]
|
150
|
+
val = [val, 0, 0, 0] unless val.is_a?(Array)
|
151
|
+
db.execute(sql, [a.name, b_name] + val)
|
152
|
+
end
|
153
|
+
db.execute('COMMIT;')
|
154
|
+
end
|
131
155
|
end
|
132
156
|
end
|
133
157
|
end
|
data/lib/miga/cli/action/init.rb
CHANGED
@@ -112,12 +112,15 @@ class MiGA::Cli::Action::Init < MiGA::Cli::Action
|
|
112
112
|
|
113
113
|
def check_software_requirements(rc_fh)
|
114
114
|
cli.puts 'Looking for requirements:'
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
115
|
+
opt_groups = {
|
116
|
+
mytaxa: 'MyTaxa',
|
117
|
+
rdp: 'RDP classifier',
|
118
|
+
reads: 'read processing'
|
119
|
+
}
|
120
|
+
opt_groups.each do |k, v|
|
121
|
+
ask_for_optional(k, v)
|
122
|
+
rc_fh.puts "export MIGA_#{k.to_s.upcase}='#{cli[k] ? 'yes' : 'no'}'"
|
123
|
+
end
|
121
124
|
paths = {}
|
122
125
|
rc_fh.puts 'MIGA_PATH=""'
|
123
126
|
req_path = File.expand_path('utils/requirements.txt', MiGA.root_path)
|
@@ -196,8 +199,9 @@ class MiGA::Cli::Action::Init < MiGA::Cli::Action
|
|
196
199
|
cli.puts 'yes'
|
197
200
|
else
|
198
201
|
cli.puts 'no, installing'
|
199
|
-
|
202
|
+
out = install_library(cli, paths, language, library)
|
200
203
|
unless test_library(cli, paths, language, library)
|
204
|
+
cli.puts out
|
201
205
|
raise "Cannot install #{language.to_s.capitalize} library: #{library}"
|
202
206
|
end
|
203
207
|
end
|
@@ -18,7 +18,7 @@ class MiGA::Cli::Action::NcbiGet < MiGA::Cli::Action
|
|
18
18
|
cli.opt_object(opt, [:project])
|
19
19
|
opt.on(
|
20
20
|
'-T', '--taxon STRING',
|
21
|
-
'(Mandatory
|
21
|
+
'(Mandatory) Taxon name (e.g., a species binomial)'
|
22
22
|
) { |v| cli[:taxon] = v }
|
23
23
|
opt.on(
|
24
24
|
'-m', '--metadata STRING',
|
@@ -137,7 +137,7 @@ class MiGA::Cli::Action::NcbiGet < MiGA::Cli::Action
|
|
137
137
|
end
|
138
138
|
|
139
139
|
def sanitize_cli
|
140
|
-
cli.ensure_par(taxon: '-T')
|
140
|
+
cli.ensure_par(taxon: '-T')
|
141
141
|
tasks = %w[reference complete chromosome scaffold contig]
|
142
142
|
unless tasks.any? { |i| cli[i.to_sym] }
|
143
143
|
raise 'No action requested: pick at least one type of genome'
|
@@ -204,7 +204,7 @@ class MiGA::Cli::Action::NcbiGet < MiGA::Cli::Action
|
|
204
204
|
'from(GenomeAssemblies).' \
|
205
205
|
'usingschema(/schema/GenomeAssemblies).' \
|
206
206
|
'matching(tab==["Prokaryotes"] and q=="' \
|
207
|
-
"#{cli[:taxon]
|
207
|
+
"#{cli[:taxon]&.tr('"', "'")}\"",
|
208
208
|
fields: 'organism|organism,assembly|assembly,replicons|replicons,' \
|
209
209
|
'level|level,ftp_path_genbank|ftp_path_genbank,' \
|
210
210
|
'release_date|release_date,strain|strain',
|
@@ -99,13 +99,13 @@ class MiGA::Cli::Action::TaxDist < MiGA::Cli::Action
|
|
99
99
|
ds_name = []
|
100
100
|
File.open(tab, 'r') do |fh|
|
101
101
|
fh.each_line do |ln|
|
102
|
-
if ln =~ /^ {
|
102
|
+
if ln =~ /^ {0,#{(rank_i - 1) * 2}}\S+:\S+:/
|
103
103
|
in_rank = nil
|
104
104
|
ds_name = []
|
105
105
|
elsif ln =~ /^ {#{rank_i * 2}}(#{rank}:(\S+)):/
|
106
106
|
in_rank = $2 == '?' ? nil : $1
|
107
107
|
ds_name = []
|
108
|
-
elsif ln =~ /^ *# (\S+)/
|
108
|
+
elsif ln =~ /^ *# (\S+)/ && !in_rank.nil?
|
109
109
|
ds_i = $1
|
110
110
|
ds_name << ds_i
|
111
111
|
ds_name.each do |ds_j|
|
data/lib/miga/cli/action/wf.rb
CHANGED
@@ -81,21 +81,22 @@ module MiGA::Cli::Action::Wf
|
|
81
81
|
cli[:aai_p] = 'blast+'
|
82
82
|
cli[:ani_p] = 'blast+'
|
83
83
|
end
|
84
|
-
opt.on('--fast', 'Alias to: --aai-p diamond --ani-p fastani') do
|
84
|
+
opt.on('--fast', 'Alias to: --aai-p diamond --ani-p fastani (default)') do
|
85
85
|
cli[:aai_p] = 'diamond'
|
86
86
|
cli[:ani_p] = 'fastani'
|
87
87
|
end
|
88
88
|
opt.on(
|
89
89
|
'--haai-p STRING',
|
90
|
-
'hAAI search engine. One of: blast
|
90
|
+
'hAAI search engine. One of: blast+, fastaai, blat, diamond, fastaai, no',
|
91
|
+
'The default is "no" for clade projects and "fastaai" otherwise'
|
91
92
|
) { |v| cli[:haai_p] = v }
|
92
93
|
opt.on(
|
93
94
|
'--aai-p STRING',
|
94
|
-
'AAI search engine. One of: blast
|
95
|
+
'AAI search engine. One of: blast+, blat, diamond (default)'
|
95
96
|
) { |v| cli[:aai_p] = v }
|
96
97
|
opt.on(
|
97
98
|
'--ani-p STRING',
|
98
|
-
'ANI search engine. One of: blast
|
99
|
+
'ANI search engine. One of: blast+, blat, fastani (default)'
|
99
100
|
) { |v| cli[:ani_p] = v }
|
100
101
|
end
|
101
102
|
|
data/lib/miga/common.rb
CHANGED
data/lib/miga/daemon.rb
CHANGED
@@ -73,10 +73,10 @@ class MiGA::Daemon < MiGA::MiGA
|
|
73
73
|
say 'MiGA:%s launched' % project.name
|
74
74
|
say '-----------------------------------'
|
75
75
|
miga_say "Saving log to: #{output_file}" unless show_log?
|
76
|
-
queue_maintenance
|
77
|
-
load_status
|
78
76
|
say 'Configuration options:'
|
79
77
|
say @runopts.to_s
|
78
|
+
load_status
|
79
|
+
queue_maintenance(true)
|
80
80
|
end
|
81
81
|
|
82
82
|
##
|
@@ -87,6 +87,7 @@ class MiGA::Daemon < MiGA::MiGA
|
|
87
87
|
check_datasets or check_project
|
88
88
|
if shutdown_when_done? && (jobs_running.size + jobs_to_run.size).zero?
|
89
89
|
say 'Nothing else to do, shutting down'
|
90
|
+
exit_cleanup
|
90
91
|
return false
|
91
92
|
end
|
92
93
|
flush!
|
@@ -102,13 +103,19 @@ class MiGA::Daemon < MiGA::MiGA
|
|
102
103
|
|
103
104
|
##
|
104
105
|
# Queue maintenance tasks as an analysis job
|
105
|
-
def queue_maintenance
|
106
|
-
return if bypass_maintenance? || shutdown_when_done?
|
106
|
+
def queue_maintenance(force = false)
|
107
|
+
return if bypass_maintenance? || (!force && shutdown_when_done?)
|
107
108
|
|
108
109
|
say 'Queueing maintenance tasks'
|
109
110
|
queue_job(:maintenance)
|
110
111
|
end
|
111
112
|
|
113
|
+
##
|
114
|
+
# Remove temporary files on completion
|
115
|
+
def exit_cleanup
|
116
|
+
FileUtils.rm_f(File.join(daemon_home, 'status.json'))
|
117
|
+
end
|
118
|
+
|
112
119
|
##
|
113
120
|
# Send +msg+ to +say+ as long as +level+ is at most +verbosity+
|
114
121
|
def l_say(level, *msg)
|
data/lib/miga/dataset/result.rb
CHANGED
@@ -181,26 +181,30 @@ module MiGA::Dataset::Result
|
|
181
181
|
add_files_to_ds_result(
|
182
182
|
MiGA::Result.new("#{base}.json"), name,
|
183
183
|
if result_files_exist?(base, '.2.clipped.fastq')
|
184
|
-
{
|
185
|
-
pair1: '.1.clipped.fastq',
|
186
|
-
pair2: '.2.clipped.fastq',
|
187
|
-
single: '.1.clipped.single.fastq'
|
188
|
-
}
|
184
|
+
{ pair1: '.1.clipped.fastq', pair2: '.2.clipped.fastq' }
|
189
185
|
else
|
190
186
|
{ single: '.1.clipped.fastq' }
|
191
187
|
end
|
192
188
|
).tap do |r|
|
189
|
+
# Legacy files
|
193
190
|
r.add_file(:trimming_sumary, "#{name}.1.fastq.trimmed.summary.txt")
|
191
|
+
r.add_file(:single, "#{name}.1.clipped.single.fastq")
|
194
192
|
end
|
195
193
|
end
|
196
194
|
|
197
195
|
##
|
198
196
|
# Add result type +:read_quality+ at +base+ (no +_opts+ supported)
|
199
197
|
def add_result_read_quality(base, _opts)
|
200
|
-
return nil unless
|
198
|
+
return nil unless
|
199
|
+
result_files_exist?(base, %w[.post.1.html]) ||
|
200
|
+
result_files_exist?(base, %w[.solexaqa .fastqc])
|
201
201
|
|
202
202
|
add_files_to_ds_result(
|
203
203
|
MiGA::Result.new("#{base}.json"), name,
|
204
|
+
pre_qc_1: '.pre.1.html', pre_qc_2: '.pre.2.html',
|
205
|
+
post_qc_1: '.post.1.html', post_qc_2: '.post.2.html',
|
206
|
+
adapter_detection: '.adapters.txt',
|
207
|
+
# Legacy files
|
204
208
|
solexaqa: '.solexaqa', fastqc: '.fastqc'
|
205
209
|
)
|
206
210
|
end
|
data/lib/miga/json.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
#
|
2
|
-
# @license Artistic-2.0
|
1
|
+
# frozen_string_literal: true
|
3
2
|
|
4
3
|
require 'json'
|
5
4
|
|
@@ -45,8 +44,10 @@ class MiGA::Json < MiGA::MiGA
|
|
45
44
|
raise "Empty descriptor: #{opts[:contents] ? "''" : path}" if cont.empty?
|
46
45
|
|
47
46
|
# Parse JSON
|
48
|
-
params = {
|
49
|
-
|
47
|
+
params = {
|
48
|
+
symbolize_names: opts[:symbolize],
|
49
|
+
create_additions: opts[:additions]
|
50
|
+
}
|
50
51
|
y = JSON.parse(cont, params)
|
51
52
|
|
52
53
|
# Add defaults
|