From d455a0211ef43ae95f6d1e39949b7595d7583ed9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Fri, 2 Aug 2024 16:08:20 +0200 Subject: [PATCH 1/6] Create metaplasmidome query tutorial --- .../metaplasmidome_query/faqs/index.md | 3 + .../images/mapping_score_histogram.png | Bin 0 -> 80082 bytes ...ore_histogram_after_coverage_filtering.png | Bin 0 -> 67375 bytes .../images/plasmid_coverage_histogram.png | Bin 0 -> 110954 bytes .../metaplasmidome_query/tutorial.bib | 184 ++ .../metaplasmidome_query/tutorial.md | 759 +++++++ .../metaplasmidome_query/workflows/index.md | 3 + .../workflows/metaplasmidome.ga | 1913 +++++++++++++++++ 8 files changed, 2862 insertions(+) create mode 100644 topics/microbiome/tutorials/metaplasmidome_query/faqs/index.md create mode 100644 topics/microbiome/tutorials/metaplasmidome_query/images/mapping_score_histogram.png create mode 100644 topics/microbiome/tutorials/metaplasmidome_query/images/mapping_score_histogram_after_coverage_filtering.png create mode 100644 topics/microbiome/tutorials/metaplasmidome_query/images/plasmid_coverage_histogram.png create mode 100644 topics/microbiome/tutorials/metaplasmidome_query/tutorial.bib create mode 100644 topics/microbiome/tutorials/metaplasmidome_query/tutorial.md create mode 100644 topics/microbiome/tutorials/metaplasmidome_query/workflows/index.md create mode 100644 topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga diff --git a/topics/microbiome/tutorials/metaplasmidome_query/faqs/index.md b/topics/microbiome/tutorials/metaplasmidome_query/faqs/index.md new file mode 100644 index 00000000000000..9ce3fe4fce824b --- /dev/null +++ b/topics/microbiome/tutorials/metaplasmidome_query/faqs/index.md @@ -0,0 +1,3 @@ +--- +layout: faq-page +--- diff --git a/topics/microbiome/tutorials/metaplasmidome_query/images/mapping_score_histogram.png b/topics/microbiome/tutorials/metaplasmidome_query/images/mapping_score_histogram.png new file mode 100644 index 0000000000000000000000000000000000000000..0edd71108af86791c44304a07be45451b59753be GIT binary patch literal 80082 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�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 MR92)&SjXr80Hq0afB*mh literal 0 HcmV?d00001 diff --git a/topics/microbiome/tutorials/metaplasmidome_query/images/mapping_score_histogram_after_coverage_filtering.png b/topics/microbiome/tutorials/metaplasmidome_query/images/mapping_score_histogram_after_coverage_filtering.png new file mode 100644 index 0000000000000000000000000000000000000000..3281c6a56893f423257b65ee6f1e4f87a30734fa GIT binary patch literal 67375 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 literal 0 HcmV?d00001 diff --git a/topics/microbiome/tutorials/metaplasmidome_query/images/plasmid_coverage_histogram.png b/topics/microbiome/tutorials/metaplasmidome_query/images/plasmid_coverage_histogram.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ebfb4e701b0b0f5bd28a44ab200135402b7d9d GIT binary patch literal 110954 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�>~|)RVB#^m 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 literal 0 HcmV?d00001 diff --git a/topics/microbiome/tutorials/metaplasmidome_query/tutorial.bib b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.bib new file mode 100644 index 00000000000000..7e775baef5c775 --- /dev/null +++ b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.bib @@ -0,0 +1,184 @@ +@article{antipov2020metaviral, + title={Metaviral SPAdes: assembly of viruses from metagenomic data}, + author={Antipov, Dmitry and Raiko, Mikhail and Lapidus, Alla and Pevzner, Pavel A}, + journal={Bioinformatics}, + volume={36}, + number={14}, + pages={4126--4129}, + year={2020}, + publisher={Oxford University Press}, + doi={10.1093/bioinformatics/btaa490} +} + + +@article{danko2021global, + title={A global metagenomic map of urban microbiomes and antimicrobial resistance}, + author={Danko, David and Bezdan, Daniela and Afshin, Evan E and Ahsanuddin, Sofia and Bhattacharya, Chandrima and Butler, Daniel J and Chng, Kern Rei and Donnellan, Daisy and Hecht, Jochen and Jackson, Katelyn and others}, + journal={Cell}, + volume={184}, + number={13}, + pages={3376--3393}, + year={2021}, + publisher={Elsevier}, + doi={10.1016/j.cell.2021.05.002} +} + + +@dataset{debroas_2024_11124657, + author = {DEBROAS, Didier}, + title = {Plasmids Identified in Air Metagenomes}, + month = may, + year = 2024, + publisher = {Zenodo}, + doi = {10.5281/zenodo.11124657}, + url = {https://doi.org/10.5281/zenodo.11124657} +} + +@article{hennequin2022plasmidome, + title={Plasmidome analysis of a hospital effluent biofilm: Status of antibiotic resistance}, + author={Hennequin, Claire and Forestier, Christiane and Traore, Ousmane and Debroas, Didier and Bricheux, Genevi{\`e}ve}, + journal={Plasmid}, + volume={122}, + pages={102638}, + year={2022}, + publisher={Elsevier}, + doi={10.1016/j.plasmid.2022.102638} +} + + +@article{hilpert2021reconstruction, + title={Reconstruction of plasmids by shotgun sequencing from environmental DNA: which bioinformatic workflow?}, + author={Hilpert, C{\'e}cile and Bricheux, Genevi{\`e}ve and Debroas, Didier}, + journal={Briefings in bioinformatics}, + volume={22}, + number={3}, + pages={bbaa059}, + year={2021}, + publisher={Oxford University Press}, + doi={10.1093/bib/bbaa059} +} + +@article{kanehisa2016kegg, + title={KEGG as a reference resource for gene and protein annotation}, + author={Kanehisa, Minoru and Sato, Yoko and Kawashima, Masayuki and Furumichi, Miho and Tanabe, Mao}, + journal={Nucleic acids research}, + volume={44}, + number={D1}, + pages={D457--D462}, + year={2016}, + publisher={Oxford University Press} +} + +@article{krawczyk2018plasflow, + title={PlasFlow: predicting plasmid sequences in metagenomic data using genome signatures}, + author={Krawczyk, Pawel S and Lipinski, Leszek and Dziembowski, Andrzej}, + journal={Nucleic acids research}, + volume={46}, + number={6}, + pages={e35--e35}, + year={2018}, + publisher={Oxford University Press}, + doi={10.1093/nar/gkx1321} +} + + +@article{li2015, + title = {{MEGAHIT}: an ultra-fast single-node solution for large and complex metagenomics assembly via succinct de {Bruijn} graph}, + volume = {31}, + issn = {1367-4803}, + shorttitle = {{MEGAHIT}}, + doi = {10.1093/bioinformatics/btv033}, + abstract = {Summary: MEGAHIT is a NGS de novo assembler for assembling large and complex metagenomics data in a time- and cost-efficient manner. It finished assembling a soil metagenomics dataset with 252 Gbps in 44.1 and 99.6 h on a single computing node with and without a graphics processing unit, respectively. MEGAHIT assembles the data as a whole, i.e. no pre-processing like partitioning and normalization was needed. When compared with previous methods on assembling the soil data, MEGAHIT generated a three-time larger assembly, with longer contig N50 and average contig length; furthermore, 55.8\% of the reads were aligned to the assembly, giving a fourfold improvement.Availability and implementation: The source code of MEGAHIT is freely available at https://github.com/voutcn/megahit under GPLv3 license.Contact:rb@l3-bioinfo.com or twlam@cs.hku.hkSupplementary information: Supplementary data are available at Bioinformatics online.}, + number = {10}, + journal = {Bioinformatics}, + author = {Li, Dinghua and Liu, Chi-Man and Luo, Ruibang and Sadakane, Kunihiko and Lam, Tak-Wah}, + month = may, + year = {2015}, + pages = {1674--1676}, +} + +@article{li2018minimap2, + title={Minimap2: pairwise alignment for nucleotide sequences}, + author={Li, Heng}, + journal={Bioinformatics}, + volume={34}, + number={18}, + pages={3094--3100}, + year={2018}, + publisher={Oxford University Press}, + doi={10.1093/bioinformatics/bty191}, +} + +@article{mirdita2019mmseqs2, + title={MMseqs2 desktop and local web server app for fast, interactive sequence searches}, + author={Mirdita, Milot and Steinegger, Martin and S{\"o}ding, Johannes}, + journal={Bioinformatics}, + volume={35}, + number={16}, + pages={2856--2858}, + year={2019}, + publisher={Oxford University Press}, + doi={10.1093/bioinformatics/bty1057} +} + +@article{mistry2021pfam, + title={Pfam: The protein families database in 2021}, + author={Mistry, Jaina and Chuguransky, Sara and Williams, Lowri and Qureshi, Matloob and Salazar, Gustavo A and Sonnhammer, Erik LL and Tosatto, Silvio CE and Paladin, Lisanna and Raj, Shriya and Richardson, Lorna J and others}, + journal={Nucleic acids research}, + volume={49}, + number={D1}, + pages={D412--D419}, + year={2021}, + publisher={Oxford University Press} +} + + +@article{pellow2020plasclass, + title={PlasClass improves plasmid sequence classification}, + author={Pellow, David and Mizrahi, Itzik and Shamir, Ron}, + journal={PLoS computational biology}, + volume={16}, + number={4}, + pages={e1007781}, + year={2020}, + publisher={Public Library of Science San Francisco, CA USA}, + doi={10.1371/journal.pcbi.1007781} +} + + +@article{quast2012silva, + title={The SILVA ribosomal RNA gene database project: improved data processing and web-based tools}, + author={Quast, Christian and Pruesse, Elmar and Yilmaz, Pelin and Gerken, Jan and Schweer, Timmy and Yarza, Pablo and Peplies, J{\"o}rg and Gl{\"o}ckner, Frank Oliver}, + journal={Nucleic acids research}, + volume={41}, + number={D1}, + pages={D590--D596}, + year={2012}, + publisher={Oxford University Press}, + doi={10.1093/nar/gks1219} +} + + +@article{robertson2018mob, + title={MOB-suite: software tools for clustering, reconstruction and typing of plasmids from draft assemblies}, + author={Robertson, James and Nash, John HE}, + journal={Microbial genomics}, + volume={4}, + number={8}, + pages={e000206}, + year={2018}, + publisher={Microbiology Society}, + doi={10.1099/mgen.0.000206} +} + +@article{wu2013systematic, + title={Systematic identification of gene families for use as “markers” for phylogenetic and phylogeny-driven ecological studies of bacteria and archaea and their major subgroups}, + author={Wu, Dongying and Jospin, Guillaume and Eisen, Jonathan A}, + journal={PloS one}, + volume={8}, + number={10}, + pages={e77033}, + year={2013}, + publisher={Public Library of Science San Francisco, USA}, + doi={10.1371/journal.pone.0077033} +} diff --git a/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md new file mode 100644 index 00000000000000..831093e5c4ec89 --- /dev/null +++ b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md @@ -0,0 +1,759 @@ +--- +layout: tutorial_hands_on + +title: Query a metaplasmidome database to identify and annotate plasmids in metagenomes +zenodo_link: '' +questions: +- Which biological questions are addressed by the tutorial? +- Which bioinformatics techniques are important to know for this type of data? +objectives: +- The learning objectives are the goals of the tutorial +- They will be informed by your audience and will communicate to them and to yourself + what you should focus on during the course +- They are single sentences describing what a learner should be able to do once they + have completed the tutorial +- You can use Bloom's Taxonomy to write effective learning objectives +time_estimation: 1H +key_points: +- The take-home messages +- They will appear at the end of the tutorial +contributions: + authorship: + - bebatut + - nagoue +edam_ontology: +- topic_0622 # Genomics +- topic_3301 # Microbiology +- topic_0080 # Sequence analysis +- topic_0798 # Mobile genetic elements +level: Introductory + +--- + +The *metaplasmidome* refers to the collection of all plasmids present within a given environment, typically identified through metagenomic sequencing. Plasmids are extrachromosomal genetic elements that often carry genes associated with antibiotic resistance, virulence, or metabolic functions, making them crucial for microbial adaptability. In the context of metagenomics, plasmids are identified alongside chromosomal DNA. + +A common step in metaplasmidome analysis is searching sequencing reads against known plasmid databases to detect plasmid sequences within a metagenome, allowing researchers to map the diversity and abundance of plasmids in various environments. + +In this tutorial, we use a metaplasmidome database built from public air metagenomes and query it with other air metagenome data that has been assembled. + +> How was built the air metaplasmidome database? +> +> The air metaplasmidome is available from Zenodo ({% cite debroas_2024_11124657 %}) and was built from metagenomic data selected in Web of Science (Clarivate) on October 2022 using keywords: `txid655179[Organism:noexp] AND metagenome [Filter]; AIR Metagenome; Air microbiome; Troposphere; Aerosol; Atmosphere`. Data were manually curated to remove sequencing originated from metabarcoding data (i.e., 16S). The assembled data supplied by MetaSUB consortium ({% cite danko2021global %}) when available was used for air metagenome in the built environments. +> +> Plasmid contents were predicted using the assembled data. Metagenomes sequencing by Illumina (paired-illumina reads) were assembled by using MEGAHIT 1.2.9 with metalarge option ({% cite li2015 %}) after cleaning data with bbduk2 (qtrim=rl trimq=28 minlen=25 maq=20 ktrim=r k=25 mink=11 and a list of adaptators to remove) from [bbtools suite](https://jgi.doe.gov/data-and-tools/software-tools/bbtools/) +> +> Plasmids were predicted for each assembling by using PlasSuite scripts describing in-depth in Hilpert et al. {% cite hilpert2021reconstruction %} {% cite hennequin2022plasmidome %} and available on [GitHub](https://github.com/meb-team/PlasSuite/). Briefly, contigs were analyzed using both reference-based and reference-free approaches. The databases employed included those for chromosomes (archaea and bacteria) and plasmids from NCBI, as well as the MOB-suite tool ({% cite robertson2018mob %}), SILVA ({% cite quast2012silva %}) and phylogenetic markers harbored by chromosomes ({% cite wu2013systematic %}). Two reference-free methods were applied to contigs that were not affiliated with chromosomes (discarded) or plasmids (retained in the first step): PlasFlow ({% cite krawczyk2018plasflow%}) and PlasClass ({% cite pellow2020plasclass %}). Viruses were removed by using [viralVerify](https://github.com/ablab/viralVerify) ({% cite antipov2020metaviral %}) that provides in parallel provide plasmid/non-plasmid classification. +> +> Eukaryotes contaminants were removed by aligning the sequences against NT databases and human chromosomes (GRCh38) with minimap2 with -x asm5 option ({% cite li2018minimap2 %}). Contigs mapping with an identity of 95% and a coverage of 80% were removed. the final plasmidome set was clustered by mmseqs ({% cite mirdita2019mmseqs2 %}) with 80% of coverage and 90% of identity (--min-seq-id 0.90 -c 0.8 --cov-mode 1 --cluster-mode 2 --alignment-mode 3 --kmer-per-seq-scale 0.2). +{: .details} + + +> +> +> In this tutorial, we will cover: +> +> 1. TOC +> {:toc} +> +{: .agenda} + +# Galaxy and data preparation + +Any analysis should get its own Galaxy history. So let's start by creating a new one and get the data (plasmidome database and query metagenomes) into it. + +> Prepare Galaxy and data +> +> 1. Create a new history for this tutorial +> +> {% snippet faqs/galaxy/histories_create_new.md %} +> +> 2. Rename the history +> +> {% snippet faqs/galaxy/histories_rename.md %} +> +> 3. Import the metaplasmidome reference database from [Zenodo]({{ page.zenodo_link }}) or from +> the shared data library +> +> ``` +> +> ``` +> +> {% snippet faqs/galaxy/datasets_import_via_link.md %} +> +> {% snippet faqs/galaxy/datasets_import_from_data_library.md %} +> +> 4. Rename `Air plasmidome database` +> +> {% snippet faqs/galaxy/datasets_rename.md %} +> +> 5. Import the reads to query against reference database from [Zenodo]({{ page.zenodo_link }}) or from +> the shared data library +> +> ``` +> +> ``` +> +> 6. Rename `Air metagenomes` +{: .hands_on} + + +> +> +> 1. How many reads are in the query dataset? +> 2. How many plasmid sequences are in the metaplasmidome database? +> +> > +> > +> > 1. 16,637 sequences +> > 2. 674,495 sequences +> {: .solution} +{: .question} + + +# Read mapping against the metaplasmidome database + +> Map reads against metaplasmidome database +> +> 1. {% tool [Map with minimap2](toolshed.g2.bx.psu.edu/repos/iuc/minimap2/minimap2/2.28+galaxy0) %} with the following parameters: +> - *"Will you select a reference genome from your history or use a built-in index?"*: `Use a genome from history and build index` +> - {% icon param-file %} *"Use the following dataset as the reference sequence"*: `metaplasmidome database` +> - *"Single or Paired-end reads"*: `Single` +> - {% icon param-file %} *"Select fastq dataset"*: `query` +> - *"Select a profile of preset options"*: `Long assembly to reference mapping (-k19 -w19 -A1 -B19 -O39,81 -E3,1 -s200 -z200 --min-occ-floor=100). Typically, the alignment will not extend to regions with 5% or higher sequence divergence. Only use this preset if the average divergence is far below 5%. (asm5)` +> - In *"Set advanced output options"*: +> - *"Select an output format"*: `PAF` +> +{: .hands_on} + +PAF is the default output format of minimap2. It is TAB-delimited with each line consisting of the following predefined fields: +1. Query sequence name +2. Query sequence length +3. Query start coordinate (0-based) +4. Query end coordinate (0-based) +5. `+` if query/target on the same strand and `-` if opposite +6. Target sequence name +7. Target sequence length +8. Target start coordinate on the original strand +9. Target end coordinate on the original strand +10. Number of matching bases in the mapping +11. Number bases, including gaps, in the mapping +12. Mapping quality + +> +> +> 1. How many lines are in the file? +> 2. Can a query sequence be found several times in the target? +> 3. Are all alignments of good quality? +> +> > +> > +> > 1. 29,796 lines +> > 2. There are 16,637 query sequences. Several query sequences are found several times in the file: SRR17300492_75807 is found 16 times. It means they have been mapped to several location or sequences in the target. +> > 3. The first alignment (SRR17300492_75807 mapping on SRR17300667-707) has a score of 60, the highest Phred score. The third alignment has a score of 0, so not really good. +> > +> {: .solution} +> +{: .question} + +# Exploration of the mapping results + +Let's look at the distribution of the mapping score (column 12) + +> Plot score distribution +> +> 1. Change datatype to tabular +> +> {% snippet faqs/galaxy/datasets_change_datatype.md %} +> +> 2. {% tool [Cut columns from a table](Cut1) %} with: +> - *"Cut columns"*: `c12` +> - *"Delimited by"*: `tab` +> - {% icon param-file %} *"From"*: Output of **Map with minimap2** {% icon tool %} +> +> 2. {% tool [Histogram with ggplot2](toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram/ggplot2_histogram/3.4.0+galaxy0) %} with the following parameters: +> - *"Input should have column headers - these will be the columns that are plotted * "*: Output of **Cut** {% icon tool %} +> - *"Label for x axis"*: `Score` +> - *"Label for y axis"*: `Distribution` +> - In *"Advanced Options"*: +> - *"Legend options"*: `Hide legend` +> +{: .hands_on} + +![Distribution of mapping quality score (on x-axis, value between 0 and 60) with density (y-axis)](./images/mapping_score_histogram.png) + +> +> +> Are all alignments of good quality? +> +> > +> > +> > There is a pic at 60 but many alignments have a score below 40. +> > +> {: .solution} +> +{: .question} + +We should remove alignments with a score below. Before that, let's look at the plasmid coverage. We first need to compute it, i.e. the ratio between the number of matching bases in the mapping (Column 10) and plasmid length (target sequence length - Column 7). + +> Compute plasmid coverage +> 1. {% tool [Cut columns from a table](Cut1) %} with: +> - *"Cut columns"*: `c1-c12` +> - *"Delimited by"*: `tab` +> - {% icon param-file %} *"From"*: Output of **Map with minimap2** {% icon tool %} +> +> 2. {% tool [Compute on rows](toolshed.g2.bx.psu.edu/repos/devteam/column_maker/Add_a_column1/2.1) %} with the following parameters: +> - *"Input file"*: Output of **Cut** {% icon tool %} +> - In *"Expressions"*: +> - *"Add expression"*: `float(c10)/float(c7)` +> +> 3. Rename `Mapping stats + plasmid coverage` +{: .hands_on} + +A new column has been added (column 13) with the plasmid coverage. Let's now plot its distribution. + +> Plot plasmid coverage distribution +> 1. {% tool [Cut columns from a table](Cut1) %} with: +> - *"Cut columns"*: `c13` +> - *"Delimited by"*: `tab` +> - {% icon param-file %} *"From"*: `Mapping stats + plasmid coverage` +> +> 2. {% tool [ Histogram with ggplot2](toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram/ggplot2_histogram/3.4.0+galaxy0) %} with the following parameters: +> - *"Input should have column headers - these will be the columns that are plotted * "*: Output of **Cut** {% icon tool %} +> - *"Label for x axis"*: `Plasmid coverage` +> - *"Label for y axis"*: `Distribution` +> - *"Bin width for plotting"*: `0.1` +> - In *"Advanced Options"*: +> - *"Legend options"*: `Hide legend` +> +{: .hands_on} + +![Distribution of plasmid coverage (on x-axis, value between 0 and 1) with density (y-axis)](./images/plasmid_coverage_histogram.png) + +> +> +> 1. How is the distribution of the plasmid coverage? +> 2. What could be a good threshold to filter? +> +> > +> > +> > 1. There are 2 pics: one around 0 (i.e. no plasmid coverage) and that slowly decrease until 0.8 and a pic at 1 (full plasmid coverage) +> > 2. 0.8 seems to be a breaking point and could be a good value to filter. +> > +> {: .solution} +> +{: .question} + +# Filtering + +We will now filter the alignment to keep only the ones with a plasmid coverage (column 13) of at least 0.8, i.e. a read mapping to a plasmid cover at least 80% of the plasmid. + +> Filter alignments based on plasmid coverage +> +> 1. {% tool [Filter data on any column using simple expressions](Filter1) %} with the following parameters: +> - {% icon param-file %} *"Filter"*: `Mapping stats + plasmid coverage` +> - *"With following condition"*: `c13>=0.8` +> +> 2. Rename `Alignments with plasmid coverage >= 0.8` +{: .hands_on} + +> +> +> 1. How many lines have been kept? +> 2. Which percentage of lines does that correspond to? +> 3. How does the distribution of the mapping score looks like for these alignments? +> 4. Is there any extra filter we should do on the data? +> +> > +> > +> > 1. 5,577 (over the 29,796) +> > 2. 18.73% +> > 3. To plot the distribution of the mapping score for filtered alignments, we need to run the series of tools as done earlier: +> > +> > 1. {% tool [Cut columns from a table](Cut1) %} with: +> > - *"Cut columns"*: `c12` +> > - *"Delimited by"*: `tab` +> > - {% icon param-file %} *"From"*: `Alignments with plasmid coverage >= 0.8` +> > +> > 2. {% tool [Histogram with ggplot2](toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram/ggplot2_histogram/3.4.0+galaxy0) %} with the following parameters: +> > - *"Input should have column headers - these will be the columns that are plotted * "*: Output of **Cut** {% icon tool %} +> > - *"Label for x axis"*: `Score` +> > - *"Label for y axis"*: `Distribution` +> > - In *"Advanced Options"*: +> > - *"Legend options"*: `Hide legend` +> > +> > ![Distribution of mapping quality score (on x-axis, value between 0 and 60) with density (y-axis)](./images/mapping_score_histogram_after_coverage_filtering.png) +> > +> > Most of the alignments are of good quality (pic at 60). There is also a pic at 0, meaning that some alignments are of bad quality +> > +> > 4. It might be good to add a filter on the score. +> {: .solution} +> +{: .question} + +After filtering on the plasmid coverage, we also add a filter on the score to be sure that we keep only the best alignments (i.e. a score - column 12 - of at least 40). + +> Filter alignments based on score +> +> 1. {% tool [Filter data on any column using simple expressions](Filter1) %} with the following parameters: +> - {% icon param-file %} *"Filter"*: `Alignments with plasmid coverage >= 0.8` +> - *"With following condition"*: `c12>=40` +> +> 2. Rename `Alignments with plasmid coverage >= 0.8 and score >= 40` +{: .hands_on} + +> +> +> 1. How many lines have been kept? +> 2. Which percentage of lines does that correspond to? +> +> > +> > +> > 1. 5,249 (over the 5,577) +> > 2. 94.12% +> {: .solution} +> +{: .question} + +# Extract sequences mapping to plasmids + +Let's now extract the sequences mapping to plasmids (coverage higher than 80%). + +First, we need to extract the names of the reads (in `air metagenomes`) mapping to plasmids in the metaplasmidome database. For that we need to extract the columns 1 (query names, i.e. names of reads in `Air metagenomes`) and 6 (reference names, i.e. names of sequences in `Air plasmidome database`). + +> Get sequences matching to plasmids +> +> 1. {% tool [Cut](Cut1) %} with the following parameters: +> - *"Cut columns"*: `c1,c6` +> - {% icon param-file %} *"From"*: `Alignments with plasmid coverage >= 0.8 and score >= 40` +> +> 2. Rename to `Names for alignments with plasmid coverage >= 0.8 and score >= 40` +> +> 2. {% tool [Sort](sort1) %} with the following parameters: +> - {% icon param-file %} *"Sort Dataset"*: output of **Cut** {% icon tool %} +> - *"on column"*: `c2` +{: .hands_on} + +Second, we need to convert the `Air metagenomes` FASTA file to a tabular so we can join it with `Names for alignments with plasmid coverage >= 0.8 and score >= 40` + +> Get query sequence as a table +> +> 1. {% tool [Convert FASTA to Tabular](CONVERTER_fasta_to_tabular) %} with the following parameters: +> - {% icon param-file %} *"Fasta file"*: `Air metagenomes` +> +> 2. Rename to `Air metagenome as table` +{: .hands_on} + +Let's now join the 2 datasets on the names of the reads in `air metagenomes` so column 1 in `Names for alignments with plasmid coverage >= 0.8 and score >= 40` and column 1 in `Air metagenome as table`. + +> Get sequences matching to plasmids +> +> 1. {% tool [Join two Datasets](join1) %} with the following parameters: +> - {% icon param-file %} *"Join"*: output of **Sort** {% icon tool %} +> - *"using column"*: `Column: 1` +> - {% icon param-file %} *"with"*: output of **Convert FASTA to Tabular** {% icon tool %} +> - *"and column"*: `Column: 1` +> - *"Fill empty columns"*: `No` +> +{: .hands_on} + +We have now a table with 4 columns: names of the reads in `air metagenomes`, names of sequences in the reference database, names of the reads in `air metagenomes`, sequence of reads in `air metagenomes`. We will now create 2 outputs: +- A table with metaplasmidome database sequence name, metagenomic sequence names and the metagenomic sequences +- A FASTA file with metagenomic sequences + +## Create the table with air metagenomes identified as plasmids + +Let's remove the duplicated column (column 3) and reorganize the columns + +> Keep non duplicated columns +> +> 1. {% tool [Cut](Cut1) %} with the following parameters: +> - *"Cut columns"*: `c2,c1,c4` +> - {% icon param-file %} *"From"*: output of **Join two Datasets** {% icon tool %} +{: .hands_on} + +Let's now add column names to the generated table. + +> Add column names +> +> 1. {% tool [Add Header](toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3) %} with the following parameters: +> - *"List of Column headers"*: `Metaplasmidome database sequence name,Metagenomic sequence name,Metagenomic sequence` +> - {% icon param-file %} *"Data File (tab-delimted)"*: output of **Replace Text** {% icon tool %} +> +> +> 3. Rename the output to `Air metagenomes identified as plasmids` +{: .hands_on} + +## Create the FASTA file with air metagenomes identified as plasmids + +We can now generate a FASTA file with the identified sequences. + +From the output of **Join two Datasets** {% icon tool %}, let's keep only metagenomic sequence names and the metagenomic sequences and remove duplicated sequences + +> Keep unique metagenomic sequences +> +> 1. {% tool [Cut](Cut1) %} with the following parameters: +> - *"Cut columns"*: `c1,c4` +> - {% icon param-file %} *"From"*: output of **Join two Datasets** {% icon tool %} +> 2. {% tool [Sort](sort1) %} with the following parameters: +> - {% icon param-file %} *"Sort Dataset"*: output of **Cut** {% icon tool %} +> - *"on column"*: `Column: 1` +> - *"with flavor"*: `Alphabetical sort` +> 3. {% tool [Unique occurrences of each record](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sorted_uniq/9.3+galaxy1) %} with the following parameters: +> - {% icon param-file %} *"File to scan for unique values"*: output of **Sort** {% icon tool %} +{: .hands_on} + +> +> +> How many lines have been kept? +> +> > +> > +> > 4,055 (over 5,249) +> > +> {: .solution} +> +{: .question} + +We have now a table with unique metagenomic sequences. Let's transform it into a FASTA file. + +> Convert to a FASTA file +> +> 1. {% tool [Tabular-to-FASTA](toolshed.g2.bx.psu.edu/repos/devteam/tabular_to_fasta/tab2fasta/1.1.1) %} with the following parameters: +> - {% icon param-file %} *"Tab-delimited file"*: output of **Unique occurrences of each record** {% icon tool %} +> - *"Title column(s)"*: `Column: 1` +> - *"Sequence column"*: `Column: 2` +> +> 2. Rename the output to `Air metagenome sequences identified as plasmids` +{: .hands_on} + +# Annotate features on the identified plasmids + +Let's now annotate features on the identified plasmids. For that, we will use the annotation of the air metaplasmidome sequences that have been done with Prokka (citation) and assume that the annotations are similar for the identified plasmids. + +We will import the GFF generated by Prokka. + +> Import the GFF with metaplasmidome reference database annotation +> +> 1. Import the metaplasmidome reference database annotation from [Zenodo]({{ page.zenodo_link }}) or from the shared data library +> +> ``` +> +> ``` +> +> 2. Inspect it. +{: .hands_on} + +This file is a GFF: it describes genes and other features of DNA, RNA and protein sequences. It is a tab delimited file with 9 fields per line: + +1. **seqid**: The name of the sequence where the feature is located. +2. **source**: The algorithm or procedure that generated the feature. +3. **type**: The feature type name, like "gene" or "exon". +4. **start**: Genomic start of the feature, with a 1-base offset. +5. **end**: Genomic end of the feature, with a 1-base offset. +6. **score**: Numeric value that generally indicates the confidence of the source in the annotated feature. +7. **strand**: Single character that indicates the strand of the feature. +8. **phase**: Phase of CDS features. +9. **attributes**: A list of tag-value pairs separated by a semicolon with additional information about the feature. + +The **seqid** corresponds here to the ID of the sequences in the metaplasmidome reference database. So to filter, we need to compare `Metaplasmidome database sequence name` in `Air metagenomes identified as plasmids` to **seqid** by joining the 2 datasets on the column 1. + +The file has with ~85 Million lines but many are comments (lines starting with `##`). + +> +> +> How many features are in the GFF file? +> +> > +> > +> > 2,951,015 features +> > +> > To get this number, we run {% tool [Count GFF Features](toolshed.g2.bx.psu.edu/repos/devteam/count_gff_features/count_gff_features/0.2) %} with the following parameters: +> > - {% icon param-file %} *"GFF Dataset to Filter"*: imported GFF +> > +> {: .solution} +> +{: .question} + +Let's now filter the GFF to keep only information related to the sequences matching to plasmids. +For that, we join the GFF on the SeqID column (column 1) with the `Air metagenomes identified as plasmids` file on the ` Metaplasmidome database sequence name` (Column 1) + +> Extract information about the sequences matching to plasmids +> +> 1. {% tool [Join two Datasets](join1) %} with the following parameters: +> - {% icon param-file %} *"Join"*: imported GFF +> - *"using column"*: `Column: 1` +> - {% icon param-file %} *"with"*: `Air metagenomes identified as plasmids` +> - *"and column"*: `Column: 1` +> - *"Fill empty columns"*: `No` +> +> 2. Inspect the generated file +{: .hands_on} + +> +> +> 1. How many lines have been kept? +> 2. Why is there more lines than in the `Air metagenomes identified as plasmids` file? +> 2. What are the columns? +> 3. Which columns shoud we keep if we want to keep the Metagenomic sequence name, the feature and the attributes? +> +> > +> > +> > 1. 26k+ lines +> > 2. Some sequences (e.g. SRR17300493-2380) have several lines: several features (CDS, rRNA, etc) annotated on it +> > 3. The 9 columns of the GFF file + the 3 columns of the `Air metagenomes identified as plasmids` file +> > 4. Columns to keep: +> > 1. Metagenomic sequence name (Column 11) +> > 2. Feature (Column 3) +> > 3. Attributes (Column 9) +> {: .solution} +> +{: .question} + +Let's now cut the columns. + +> Cut and filter +> +> 1. {% tool [Cut](Cut1) %} with the following parameters: +> - *"Cut columns"*: `c11,c3,c9` +> - {% icon param-file %} *"From"*: output of **Join two Datasets** {% icon tool %} +> +> 2. Inspect the generated file +{: .hands_on} + +> +> +> What are the different identified features? +> +> > +> > +> > Using {% tool [Group data by a column](Grouping1) %} to group and count on 2nd column, we find 26,329 CDS and 307 tRNA. +> > +> {: .solution} +> +{: .question} + +## Extract the CDS + +Let's filter to keep only the CDS and extract the gene names. + +> Keep CDS +> +> 1. {% tool [Filter](Filter1) %} with the following parameters: +> - {% icon param-file %} *"Filter"*: output of **Cut** {% icon tool %} +> - *"With following condition"*: `c2=='CDS'` +> +> 2. Inspect the generated file +{: .hands_on} + +We have now a file with 26,329 lines. The 2nd column is not useful so we will remove it. The column 3 (**atributes** in GFF) lists tag-value pairs separated by a semicolon with additional information about the feature. The first lines seems to be hypothetical proteins. If we scroll down, we can find some annotated genes (with `gene` keyword). + +It would be good to create a tabular file with: +1. Metagenomic sequence name +2. Gene ID +3. Gene name +4. Gene product + +As not all genes are annotated (with `gene` keyword), we first need to split the file between hypothetical proteins and annotated genes and process the two generated files independently. + +> Keep CDS +> +> 1. {% tool [Cut](Cut1) %} with the following parameters: +> - *"Cut columns"*: `c1,c3` +> - {% icon param-file %} *"From"*: output of **Filter** {% icon tool %} +> +> 2. {% tool [Filter by keywords and/or numerical value](toolshed.g2.bx.psu.edu/repos/proteore/proteore_filter_keywords_values/MQoutputfilter/2021.04.19.1) %} with the following parameters: +> - {% icon param-file %} *"Input file"*: output of last **Cut** {% icon tool %} +> - *"Does file contain header? "*: `No` +> - In *Filter by keywords*: +> - *"Column number on which to apply the filter"*: `c2` +> - In `Enter keywords`: +> - `copy/paste` +> - *"Copy/paste keywords to find (keep or discard)"*: `gene=` +> +> 2. Inspect the generated files +{: .hands_on} + +> +> +> 1. How many lines have been kept (non hypothetical proteins) and how many have been discarded (hypothetical proteins)? +> 2. Which information do we have for the 2nd identified gene? +> +> > +> > +> > 1. There are: +> > - 25,001 hypothetical proteins CDS (lines in the discarded lines file) +> > - 1,329 annotated CDS (lines in the other file) +> > +> > 2. For the 2nd gene, the column 3 is `ID=BAFOEJEB_01977;eC_number=1.8.5.7;Name=yqjG_1;dbxref=COG:COG0435;gene=yqjG_1;inference=ab initio prediction:Prodigal:2.6,similar to AA sequence:UniProtKB:P42620;locus_tag=BAFOEJEB_01977;product=Glutathionyl-hydroquinone reductase YqjG`, which mean: +> > - Gene name is `yqjG_1` +> > - The product is `Glutathionyl-hydroquinone reductase YqjG` +> > +> {: .solution} +> +{: .question} + +Let's extract gene ID, gene name and the product in different columns from the annotated gene output and add a header to the file. + +> Prepare the annotated CDS file +> +> 1. Change annotated CDS output of **Filter by keywords** {% icon tool %} datatype to tabular +> +> {% snippet faqs/galaxy/datasets_change_datatype.md %} +> +> 2. {% tool [Replace Text in a specific column](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_column/9.3+galaxy1) %} with the following parameters: +> - {% icon param-file %} *"File to process"*: output of **Filter by keywords** {% icon tool %} +> - In *Replacement*: +> - *"in column"*: `Column: 2` +> - *"Find pattern"*: `ID=([^;]*);.*;gene=([^;]*).*;product=([^;]*).*` +> - *"Replace with"*: `\\1\t\\2\t\\3` +> +> 3. {% tool [Add Header](toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3) %} with the following parameters: +> - *"List of Column headers"*: `Metagenomic sequence name,Gene ID,Gene name,Gene product` +> - {% icon param-file %} *"Data File (tab-delimted)"*: output of **Replace Text** {% icon tool %} +> +{: .hands_on} + +Let's now prepare the hypothetical protein CDS file + +> Prepare the hypothetical CDS gene file +> +> 1. Change hypothetical CDS gene output of **Filter by keywords** {% icon tool %} datatype to tabular +> +> 2. {% tool [Replace Text in a specific column](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_column/9.3+galaxy1) %} with the following parameters: +> - {% icon param-file %} *"File to process"*: output of **Filter by keywords** {% icon tool %} +> - In *Replacement*: +> - *"in column"*: `Column: 2` +> - *"Find pattern"*: `ID=([^;]*);.*` +> - *"Replace with"*: `\\1\t\t` +> +{: .hands_on} + +We can now merge both files. + +> Concatenate the annotated and hypothetical protein gene files +> +> 1. {% tool [Concatenate datasets](cat1) %} with the following parameters: +> - {% icon param-file %} *"Concatenate Dataset"*: output of **Add Header** {% icon tool %} +> - In *Dataset*: +> - {% icon param-file %} *"Select"*: output of last **Replace Text** {% icon tool %} +> +> 2. Rename `CDS in metagenomes identified as plasmids` +{: .hands_on} + +## Add KO and PFAM annotation + +Let's expand annotation with **[KO](https://www.genome.jp/kegg/ko.html) (KEGG Orthology)** ({% cite kanehisa2016kegg%}), a database of molecular functions represented in terms of functional orthologs, and **[PFAM](http://pfam.xfam.org/)** ({% cite mistry2021pfam %}), a large collection of protein families. The files are + +> Import KO and PFAM annotations +> +> 1. Import the KO and PFAM annotations from [Zenodo]({{ page.zenodo_link }}) or from the shared data library +> +> ``` +> +> ``` +> +> 2. Inspect both files +{: .hands_on} + +Both are tabular files with several columns including the gene ID, KO/PFAM ID, and some extra annotation. +Let's now join the files with `Annotated genes in air metagenomes sequences identified as plasmids` to extend the annotations using gene ID. + +> Join with KO and PFAM annotation files +> +> 1. {% tool [Join two Datasets](join1) %} with the following parameters: +> - {% icon param-file %} *"Join"*: `Annotated genes in air metagenomes sequences identified as plasmids` +> - *"using column"*: `Column: 2` +> - {% icon param-file %} *"with"*: imported KO file +> - *"and column"*: `Column: 2` +> - *"Keep lines of first input that do not join with second input"*: `Yes` +> +> 2. Inspect the generated file +> +> 3. {% tool [Cut](Cut1) %} with the following parameters: +> - *"Cut columns"*: `c1-c4,c7,c11` +> - {% icon param-file %} *"From"*: output of **Join** {% icon tool %} +> +> 4. {% tool [Join two Datasets](join1) %} with the following parameters: +> - {% icon param-file %} *"Join"*: output of **Cut** {% icon tool %} +> - *"using column"*: `Column: 2` +> - {% icon param-file %} *"with"*: imported PFAM file +> - *"and column"*: `Column: 1` +> - *"Keep lines of first input that do not join with second input"*: `Yes` +> +> 5. Inspect the generated file +> +> 6. {% tool [Cut](Cut1) %} with the following parameters: +> - *"Cut columns"*: `c1-c6,c9,c10,c25` +> - {% icon param-file %} *"From"*: output of **Join** {% icon tool %} +> +> 7. {% tool [Select last lines from a dataset (tail)](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_tail_tool/9.3+galaxy1) %} with the following parameters: +> - {% icon param-file %} *"Text file"*: output of **Cut** {% icon tool %} +> - *"Operation"*: `Keep everything from lines on` +> - *"Number of lines"*: `2` +> +> 8. {% tool [Add Header](toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3) %} with the following parameters: +> - *"List of Column headers"*: `Metagenomic sequence name,Gene ID,Gene name,Gene product,KO ID,KO annotation,PFAM name,PFAM ID,PFAM annotation` +> - {% icon param-file %} *"Data File (tab-delimted)"*: output of **Cut** {% icon tool %} +> +> 9. Rename `CDS in metagenomes identified as plasmids + KO + PFAM` +{: .hands_on} + +Let's look at the KO and PFAM statistics. + +> +> +> 1. How many genes have been extended with KO information? +> 2. How many different KO are found? +> 5. Which KO is the most found? +> 3. How many genes have been extended with PFAM information? +> 4. How many different PFAM are found? +> 5. Which PFAM is the most found? +> +> > +> > +> > 1. Using {% tool [Filter](Filter1) %} with `c5!='.'`, we find that 426 CDS (1.62%) have been extended with KO information. +> > 2. 277 KO ({% tool [Group data by a column](Grouping1) %} to group and count on 5th column) +> > 3. K14572 (Ribosome biogenesis in eukaryotes) is found 9 times ({% tool [Sort](sort1) %} by descending order on the **Group data by a column** output on column 2) +> > 3. 4,817 CDS (18.29%) have been extended with PFAM information ({% tool [Filter](Filter1) %} with `c8!='.'` on `CDS + KO + PFAM`) +> > 4. 410 PFAM ({% tool [Group data by a column](Grouping1) %} to group and count on 8th column) +> > 5. PF00961.22 (Cytochrome c oxidase subunit 1) is found 89 times ({% tool [Sort](sort1) %} by descending order) +> > +> {: .solution} +> +{: .question} + +Let's extract an overview of the annotations per metagenomic sequence by grouping on the 1st column and counting the number of distinct value on gene ID, gene name, KO ID, PFAM ID. + +> Annotation per metagenomic sequences +> +> 1. {% tool [Group data by a column](Grouping1) %} with the following parameters: +> - {% icon param-file %} *"Select data"*: `CDS + KO + PFAM` +> - *"Group by column"*: `Column: 1` +> - In *"Operation"*: +> - In *"1: Operation"*: +> - *"Type"*: `Count distinct` +> - *"On column"*: `Column: 2` +> - In *"2: Operation"*: +> - *"Type"*: `Count distinct` +> - *"On column"*: `Column: 3` +> - In *"3: Operation"*: +> - *"Type"*: `Count distinct` +> - *"On column"*: `Column: 5` +> - In *"4: Operation"*: +> - *"Type"*: `Count distinct` +> - *"On column"*: `Column: 8` +> +> 2. {% tool [Select last lines from a dataset (tail)](toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_tail_tool/9.3+galaxy1) %} with the following parameters: +> - {% icon param-file %} *"Text file"*: output of **Cut** {% icon tool %} +> - *"Operation"*: `Keep everything from lines on` +> - *"Number of lines"*: `2` +> +> 3. {% tool [Add Header](toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3) %} with the following parameters: +> - *"List of Column headers"*: `Metagenomic sequence name,Number of CDS,Number of annotated CDS,Number of associated KO,Number of associated PFAM` +> - {% icon param-file %} *"Data File (tab-delimted)"*: output of **Select last** {% icon tool %} +> +> 4. Rename `CDS annotation overview per metagenomic sequences` +{: .hands_on} + +# Conclusion + diff --git a/topics/microbiome/tutorials/metaplasmidome_query/workflows/index.md b/topics/microbiome/tutorials/metaplasmidome_query/workflows/index.md new file mode 100644 index 00000000000000..e092e0ae66ddd4 --- /dev/null +++ b/topics/microbiome/tutorials/metaplasmidome_query/workflows/index.md @@ -0,0 +1,3 @@ +--- +layout: workflow-list +--- diff --git a/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga b/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga new file mode 100644 index 00000000000000..156256f05e9842 --- /dev/null +++ b/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga @@ -0,0 +1,1913 @@ +{ + "a_galaxy_workflow": "true", + "annotation": "This workflow query metagenomic raw data against a metaplasmidome database to identify plasmids and annotate them with genes, KO, PFAM", + "comments": [], + "creator": [ + { + "class": "Person", + "identifier": "0000-0001-9852-1987", + "name": "B\u00e9r\u00e9nice Batut" + }, + { + "class": "Person", + "identifier": "", + "name": "Nadia Gou\u00e9" + } + ], + "format-version": "0.1", + "license": "MIT", + "name": "Query a metaplasmidome database to identify and annotate plasmids in metagenomes", + "report": { + "markdown": "\n# Workflow Execution Report\n\n## Workflow Inputs\n```galaxy\ninvocation_inputs()\n```\n\n## Workflow Outputs\n```galaxy\ninvocation_outputs()\n```\n\n## Workflow\n```galaxy\nworkflow_display()\n```\n" + }, + "steps": { + "0": { + "annotation": "FASTA sequences of the metaplasmidome database", + "content_id": null, + "errors": null, + "id": 0, + "input_connections": {}, + "inputs": [ + { + "description": "FASTA sequences of the metaplasmidome database", + "name": "Metaplasmidome sequences" + } + ], + "label": "Metaplasmidome sequences", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 0, + "top": 223 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "36672496-e380-4208-9c5b-24de5376b583", + "when": null, + "workflow_outputs": [] + }, + "1": { + "annotation": "FASTA files of the raw metagenomics data", + "content_id": null, + "errors": null, + "id": 1, + "input_connections": {}, + "inputs": [ + { + "description": "FASTA files of the raw metagenomics data", + "name": "Raw metagenomics data" + } + ], + "label": "Raw metagenomics data", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 0, + "top": 346 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "d5c8b2ed-bba0-40b9-8951-89f4407a4aa6", + "when": null, + "workflow_outputs": [] + }, + "2": { + "annotation": "GFF file with predicted CDS", + "content_id": null, + "errors": null, + "id": 2, + "input_connections": {}, + "inputs": [ + { + "description": "GFF file with predicted CDS", + "name": "Metaplasmidome predicted CDS" + } + ], + "label": "Metaplasmidome predicted CDS", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 2520.084604995301, + "top": 430 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "8af11be5-af1a-455c-a40a-cb881cdcbccd", + "when": null, + "workflow_outputs": [] + }, + "3": { + "annotation": "Tabular file with non-redundant KEGG Orthologs and CDS IDs", + "content_id": null, + "errors": null, + "id": 3, + "input_connections": {}, + "inputs": [ + { + "description": "Tabular file with non-redundant KEGG Orthologs and CDS IDs", + "name": "KEGG Ortogolog" + } + ], + "label": "KEGG Ortogolog", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 4760.159856005782, + "top": 146 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "7b7694c5-3182-4387-8ad5-b799e414659b", + "when": null, + "workflow_outputs": [] + }, + "4": { + "annotation": "Tabular file with non-redundant PFAM and CDS IDs", + "content_id": null, + "errors": null, + "id": 4, + "input_connections": {}, + "inputs": [ + { + "description": "Tabular file with non-redundant PFAM and CDS IDs", + "name": "PFAM" + } + ], + "label": "PFAM", + "name": "Input dataset", + "outputs": [], + "position": { + "left": 5320.178657115849, + "top": 301 + }, + "tool_id": null, + "tool_state": "{\"optional\": false, \"tag\": null}", + "tool_version": null, + "type": "data_input", + "uuid": "795a188d-6bce-4d08-873e-7224a06fca74", + "when": null, + "workflow_outputs": [] + }, + "5": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/minimap2/minimap2/2.28+galaxy0", + "errors": null, + "id": 5, + "input_connections": { + "fastq_input|fastq_input1": { + "id": 1, + "output_name": "output" + }, + "reference_source|ref_file": { + "id": 0, + "output_name": "output" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Map with minimap2", + "name": "fastq_input" + }, + { + "description": "runtime parameter for tool Map with minimap2", + "name": "reference_source" + } + ], + "label": null, + "name": "Map with minimap2", + "outputs": [ + { + "name": "alignment_output", + "type": "bam" + } + ], + "position": { + "left": 280.00940055503344, + "top": 206 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/minimap2/minimap2/2.28+galaxy0", + "tool_shed_repository": { + "changeset_revision": "5cc34c3f440d", + "name": "minimap2", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"alignment_options\": {\"splicing\": {\"splice_mode\": \"preset\", \"__current_case__\": 0}, \"A\": null, \"B\": null, \"O\": null, \"O2\": null, \"E\": null, \"E2\": null, \"z\": null, \"z2\": null, \"s\": null, \"no_end_flt\": true}, \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"fastq_input\": {\"fastq_input_selector\": \"single\", \"__current_case__\": 0, \"fastq_input1\": {\"__class__\": \"ConnectedValue\"}, \"analysis_type_selector\": \"asm5\"}, \"indexing_options\": {\"H\": false, \"k\": null, \"w\": null, \"I\": null}, \"io_options\": {\"output_format\": \"paf\", \"Q\": false, \"L\": false, \"K\": null, \"cs\": null, \"c\": false, \"eqx\": false, \"Y\": false}, \"mapping_options\": {\"N\": null, \"F\": null, \"f\": null, \"kmer_ocurrence_interval\": {\"interval\": \"\", \"__current_case__\": 1}, \"min_occ_floor\": null, \"q_occ_frac\": \"0.01\", \"g\": null, \"r\": null, \"n\": null, \"m\": null, \"max_chain_skip\": null, \"max_chain_iter\": null, \"X\": false, \"p\": null, \"mask_len\": null}, \"reference_source\": {\"reference_source_selector\": \"history\", \"__current_case__\": 1, \"ref_file\": {\"__class__\": \"ConnectedValue\"}}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.28+galaxy0", + "type": "tool", + "uuid": "f5bfdf13-1595-4329-871e-e33296d5eaf8", + "when": null, + "workflow_outputs": [] + }, + "6": { + "annotation": "", + "content_id": "CONVERTER_fasta_to_tabular", + "errors": null, + "id": 6, + "input_connections": { + "input": { + "id": 1, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Convert FASTA to Tabular", + "outputs": [ + { + "name": "output", + "type": "tabular" + } + ], + "position": { + "left": 280.00940055503344, + "top": 521 + }, + "post_job_actions": {}, + "tool_id": "CONVERTER_fasta_to_tabular", + "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.1", + "type": "tool", + "uuid": "57338f7f-1f62-45e1-a325-fc6f5970c12a", + "when": null, + "workflow_outputs": [] + }, + "7": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/count_gff_features/count_gff_features/0.2", + "errors": null, + "id": 7, + "input_connections": { + "input": { + "id": 2, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Count GFF Features", + "outputs": [ + { + "name": "output", + "type": "txt" + } + ], + "position": { + "left": 2800.0940055503347, + "top": 446 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/count_gff_features/count_gff_features/0.2", + "tool_shed_repository": { + "changeset_revision": "188392a0d0a8", + "name": "count_gff_features", + "owner": "devteam", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"gff3\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "0.2", + "type": "tool", + "uuid": "e31fb584-bb1d-4be8-a62f-7e0e1dd4f99f", + "when": null, + "workflow_outputs": [] + }, + "8": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 8, + "input_connections": { + "input": { + "id": 5, + "output_name": "alignment_output" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 560.0188011100669, + "top": 116 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1-c12\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "f4c47e71-a7f5-48de-8621-be8e3e3a05b2", + "when": null, + "workflow_outputs": [] + }, + "9": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 9, + "input_connections": { + "input": { + "id": 5, + "output_name": "alignment_output" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 560.0188011100669, + "top": 251 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c12\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "1470405e-27e7-4328-a74a-7275d068d214", + "when": null, + "workflow_outputs": [] + }, + "10": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/column_maker/Add_a_column1/2.1", + "errors": null, + "id": 10, + "input_connections": { + "input": { + "id": 8, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Compute", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 840.0282016651004, + "top": 116 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/column_maker/Add_a_column1/2.1", + "tool_shed_repository": { + "changeset_revision": "aff5135563c6", + "name": "column_maker", + "owner": "devteam", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"avoid_scientific_notation\": false, \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"error_handling\": {\"auto_col_types\": true, \"fail_on_non_existent_columns\": true, \"non_computable\": {\"action\": \"--fail-on-non-computable\", \"__current_case__\": 0}}, \"input\": {\"__class__\": \"ConnectedValue\"}, \"ops\": {\"header_lines_select\": \"no\", \"__current_case__\": 0, \"expressions\": [{\"__index__\": 0, \"cond\": \"c10/c7\", \"add_column\": {\"mode\": \"\", \"__current_case__\": 0, \"pos\": \"\"}}]}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.1", + "type": "tool", + "uuid": "fb64d4fd-2bf9-4966-b131-77d30265b2f7", + "when": null, + "workflow_outputs": [] + }, + "11": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram/ggplot2_histogram/3.4.0+galaxy0", + "errors": null, + "id": 11, + "input_connections": { + "input1": { + "id": 9, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Histogram with ggplot2", + "outputs": [ + { + "name": "output1", + "type": "png" + } + ], + "position": { + "left": 840.0282016651004, + "top": 250 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram/ggplot2_histogram/3.4.0+galaxy0", + "tool_shed_repository": { + "changeset_revision": "b0d96516e6a5", + "name": "ggplot2_histogram", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"adv\": {\"density\": \"counts\", \"facet\": \"facet\", \"coloring\": {\"colorscheme\": \"Default\", \"__current_case__\": 0}, \"transform\": \"none\", \"scaling\": {\"plot_scaling\": \"Automatic\", \"__current_case__\": 0}, \"theme\": \"bw\", \"legend\": \"no\"}, \"binwidth\": \"0.5\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"out\": {\"unit_output_dim\": \"in\", \"width_output_dim\": \"7.0\", \"height_output_dim\": \"7.0\", \"dpi_output_dim\": \"300.0\", \"additional_output_format\": \"none\"}, \"size\": \"1.0\", \"title\": \"\", \"xlab\": \"Score\", \"ylab\": \"Distribution\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "3.4.0+galaxy0", + "type": "tool", + "uuid": "038166d9-27c3-4d1c-aac6-9d3996f6cf8f", + "when": null, + "workflow_outputs": [] + }, + "12": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 12, + "input_connections": { + "input": { + "id": 10, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 1120.0376022201337, + "top": 1 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c13\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "6b82f850-f67a-4bae-b12d-f455d342c295", + "when": null, + "workflow_outputs": [] + }, + "13": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/histogram/histogram_rpy/1.0.4", + "errors": null, + "id": 13, + "input_connections": { + "input": { + "id": 10, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Histogram", + "outputs": [ + { + "name": "out_file1", + "type": "pdf" + } + ], + "position": { + "left": 1120.0376022201337, + "top": 135 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/histogram/histogram_rpy/1.0.4", + "tool_shed_repository": { + "changeset_revision": "6f134426c2b0", + "name": "histogram", + "owner": "devteam", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"tabular\", \"breaks\": \"0\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"density\": true, \"frequency\": false, \"input\": {\"__class__\": \"ConnectedValue\"}, \"numerical_column\": \"13\", \"title\": \"Histogram\", \"xlab\": \"Plasmid coverage\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.4", + "type": "tool", + "uuid": "a6e67071-29e0-4fd0-927d-8f1a96c77cc0", + "when": null, + "workflow_outputs": [] + }, + "14": { + "annotation": "", + "content_id": "Filter1", + "errors": null, + "id": 14, + "input_connections": { + "input": { + "id": 10, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Filter", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 1120.0376022201337, + "top": 269 + }, + "post_job_actions": {}, + "tool_id": "Filter1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"cond\": \"c13>=0.8\", \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.1.1", + "type": "tool", + "uuid": "6007ea0f-97bb-4c1a-bf75-f1e295b52451", + "when": null, + "workflow_outputs": [] + }, + "15": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram/ggplot2_histogram/3.4.0+galaxy0", + "errors": null, + "id": 15, + "input_connections": { + "input1": { + "id": 12, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Histogram with ggplot2", + "outputs": [ + { + "name": "output1", + "type": "png" + } + ], + "position": { + "left": 1400.0470027751671, + "top": 0 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram/ggplot2_histogram/3.4.0+galaxy0", + "tool_shed_repository": { + "changeset_revision": "b0d96516e6a5", + "name": "ggplot2_histogram", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"adv\": {\"density\": \"counts\", \"facet\": \"facet\", \"coloring\": {\"colorscheme\": \"Default\", \"__current_case__\": 0}, \"transform\": \"none\", \"scaling\": {\"plot_scaling\": \"Automatic\", \"__current_case__\": 0}, \"theme\": \"bw\", \"legend\": \"no\"}, \"binwidth\": \"0.1\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"out\": {\"unit_output_dim\": \"in\", \"width_output_dim\": \"7.0\", \"height_output_dim\": \"7.0\", \"dpi_output_dim\": \"300.0\", \"additional_output_format\": \"none\"}, \"size\": \"1.0\", \"title\": \"\", \"xlab\": \"Plasmid coverage\", \"ylab\": \"Distribution\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "3.4.0+galaxy0", + "type": "tool", + "uuid": "5a96b6fc-c459-42bf-82c9-2ac5e5ce6fe9", + "when": null, + "workflow_outputs": [] + }, + "16": { + "annotation": "", + "content_id": "Filter1", + "errors": null, + "id": 16, + "input_connections": { + "input": { + "id": 14, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Filter", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 1400.0470027751671, + "top": 269 + }, + "post_job_actions": {}, + "tool_id": "Filter1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"cond\": \"c12>=40\", \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.1.1", + "type": "tool", + "uuid": "f20fcc2a-9666-45c4-bf3d-959c1835eeb5", + "when": null, + "workflow_outputs": [] + }, + "17": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 17, + "input_connections": { + "input": { + "id": 14, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 1400.0470027751671, + "top": 404 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c12\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "9762e6a6-d2e6-4f86-96f0-ffff9a92c7b9", + "when": null, + "workflow_outputs": [] + }, + "18": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 18, + "input_connections": { + "input": { + "id": 16, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 1680.0564033302005, + "top": 269 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1,c6\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "02b58e05-4e1a-40a1-99b6-f839d0155227", + "when": null, + "workflow_outputs": [] + }, + "19": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram/ggplot2_histogram/3.4.0+galaxy0", + "errors": null, + "id": 19, + "input_connections": { + "input1": { + "id": 17, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Histogram with ggplot2", + "outputs": [ + { + "name": "output1", + "type": "png" + } + ], + "position": { + "left": 1680.0564033302005, + "top": 403 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram/ggplot2_histogram/3.4.0+galaxy0", + "tool_shed_repository": { + "changeset_revision": "b0d96516e6a5", + "name": "ggplot2_histogram", + "owner": "iuc", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"adv\": {\"density\": \"counts\", \"facet\": \"none\", \"coloring\": {\"colorscheme\": \"Default\", \"__current_case__\": 0}, \"transform\": \"none\", \"scaling\": {\"plot_scaling\": \"Automatic\", \"__current_case__\": 0}, \"theme\": \"bw\", \"legend\": \"no\"}, \"binwidth\": \"0.5\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"out\": {\"unit_output_dim\": \"in\", \"width_output_dim\": \"7.0\", \"height_output_dim\": \"7.0\", \"dpi_output_dim\": \"300.0\", \"additional_output_format\": \"none\"}, \"size\": \"1.0\", \"title\": \"\", \"xlab\": \"Score\", \"ylab\": \"Distribution\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "3.4.0+galaxy0", + "type": "tool", + "uuid": "68ecb6fc-7850-41d7-9b03-9636e8a8cb44", + "when": null, + "workflow_outputs": [] + }, + "20": { + "annotation": "", + "content_id": "join1", + "errors": null, + "id": 20, + "input_connections": { + "input1": { + "id": 18, + "output_name": "out_file1" + }, + "input2": { + "id": 6, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Join two Datasets", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 1960.065803885234, + "top": 271 + }, + "post_job_actions": {}, + "tool_id": "join1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"field1\": \"1\", \"field2\": \"1\", \"fill_empty_columns\": {\"fill_empty_columns_switch\": \"no_fill\", \"__current_case__\": 0}, \"header\": \"\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"input2\": {\"__class__\": \"ConnectedValue\"}, \"partial\": \"\", \"unmatched\": \"\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.1.3", + "type": "tool", + "uuid": "33032111-1cbb-494b-8c47-b78c6fc97a26", + "when": null, + "workflow_outputs": [] + }, + "21": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 21, + "input_connections": { + "input": { + "id": 20, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 2240.0752044402675, + "top": 296 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c2,c1,c4\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "f8db4d39-1930-409e-9fca-695aa85ebe81", + "when": null, + "workflow_outputs": [] + }, + "22": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 22, + "input_connections": { + "input": { + "id": 20, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 2240.0752044402675, + "top": 610 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1,c4\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "0537bdb2-9e59-445f-819b-736158f3d944", + "when": null, + "workflow_outputs": [] + }, + "23": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", + "errors": null, + "id": 23, + "input_connections": { + "datatable": { + "id": 21, + "output_name": "out_file1" + } + }, + "inputs": [ + { + "description": "runtime parameter for tool Add Header", + "name": "datatable" + } + ], + "label": null, + "name": "Add Header", + "outputs": [ + { + "name": "Data Table", + "type": "tabular" + } + ], + "position": { + "left": 2553.666126225509, + "top": 163.23657970823393 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", + "tool_shed_repository": { + "changeset_revision": "ff2acdb98a74", + "name": "add_column_headers", + "owner": "estrain", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"datatable\": {\"__class__\": \"RuntimeValue\"}, \"header\": \"Metaplasmidome database sequence name,Metagenomic sequence name,Metagenomic sequence\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "0.1.3", + "type": "tool", + "uuid": "82d46177-4eab-4399-b328-baab91477429", + "when": null, + "workflow_outputs": [ + { + "label": "Metagenomes identified as plasmids", + "output_name": "Data Table", + "uuid": "a183cd1f-a2f6-459c-a1f7-49ac50ab0df3" + } + ] + }, + "24": { + "annotation": "", + "content_id": "sort1", + "errors": null, + "id": 24, + "input_connections": { + "input": { + "id": 22, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Sort", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 2520.084604995301, + "top": 610 + }, + "post_job_actions": {}, + "tool_id": "sort1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"column\": \"1\", \"column_set\": [], \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"order\": \"DESC\", \"style\": \"alpha\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.2.0", + "type": "tool", + "uuid": "315b7ab3-1226-488e-8a29-b46fab625995", + "when": null, + "workflow_outputs": [] + }, + "25": { + "annotation": "", + "content_id": "join1", + "errors": null, + "id": 25, + "input_connections": { + "input1": { + "id": 2, + "output_name": "output" + }, + "input2": { + "id": 23, + "output_name": "Data Table" + } + }, + "inputs": [], + "label": null, + "name": "Join two Datasets", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 2800.0940055503347, + "top": 261 + }, + "post_job_actions": {}, + "tool_id": "join1", + "tool_state": "{\"__input_ext\": \"gff3\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"field1\": \"1\", \"field2\": \"1\", \"fill_empty_columns\": {\"fill_empty_columns_switch\": \"no_fill\", \"__current_case__\": 0}, \"header\": \"\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"input2\": {\"__class__\": \"ConnectedValue\"}, \"partial\": \"\", \"unmatched\": \"\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.1.3", + "type": "tool", + "uuid": "3e313ef2-5928-4188-9738-53772566d835", + "when": null, + "workflow_outputs": [] + }, + "26": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sorted_uniq/9.3+galaxy1", + "errors": null, + "id": 26, + "input_connections": { + "infile": { + "id": 24, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Unique", + "outputs": [ + { + "name": "outfile", + "type": "input" + } + ], + "position": { + "left": 2800.0940055503347, + "top": 600 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sorted_uniq/9.3+galaxy1", + "tool_shed_repository": { + "changeset_revision": "86755160afbf", + "name": "text_processing", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"adv_opts\": {\"adv_opts_selector\": \"basic\", \"__current_case__\": 0}, \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"ignore_case\": false, \"infile\": {\"__class__\": \"ConnectedValue\"}, \"is_numeric\": false, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "9.3+galaxy1", + "type": "tool", + "uuid": "22ab4118-7d73-42e7-8b1e-ca93191a6d25", + "when": null, + "workflow_outputs": [] + }, + "27": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 27, + "input_connections": { + "input": { + "id": 25, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 3080.1034061053683, + "top": 286 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c11,c3,c9\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "3b79d13f-cd93-47a0-aba6-5d7954a19cdc", + "when": null, + "workflow_outputs": [] + }, + "28": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/tabular_to_fasta/tab2fasta/1.1.1", + "errors": null, + "id": 28, + "input_connections": { + "input": { + "id": 26, + "output_name": "outfile" + } + }, + "inputs": [], + "label": null, + "name": "Tabular-to-FASTA", + "outputs": [ + { + "name": "output", + "type": "fasta" + } + ], + "position": { + "left": 3080.089664180655, + "top": 622.006917580278 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/tabular_to_fasta/tab2fasta/1.1.1", + "tool_shed_repository": { + "changeset_revision": "0a7799698fe5", + "name": "tabular_to_fasta", + "owner": "devteam", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"seq_col\": \"2\", \"title_col\": [\"1\"], \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.1.1", + "type": "tool", + "uuid": "96f96ec6-ed14-4c3e-b529-d1d3e7112e4a", + "when": null, + "workflow_outputs": [ + { + "label": "Metagenome sequences identified as plasmids", + "output_name": "output", + "uuid": "7c9e9f30-c340-4738-9f3b-66cbe5bde2c3" + } + ] + }, + "29": { + "annotation": "", + "content_id": "Grouping1", + "errors": null, + "id": 29, + "input_connections": { + "input1": { + "id": 27, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Group", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 3360.112829945508, + "top": 152 + }, + "post_job_actions": {}, + "tool_id": "Grouping1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"groupcol\": \"2\", \"ignorecase\": false, \"ignorelines\": null, \"input1\": {\"__class__\": \"ConnectedValue\"}, \"operations\": [{\"__index__\": 0, \"optype\": \"length\", \"opcol\": \"3\", \"opround\": \"no\", \"opdefault\": null}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.1.4", + "type": "tool", + "uuid": "bbb86e7d-dae2-4e9a-bba4-014321316098", + "when": null, + "workflow_outputs": [] + }, + "30": { + "annotation": "", + "content_id": "Filter1", + "errors": null, + "id": 30, + "input_connections": { + "input": { + "id": 27, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Filter", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 3360.112829945508, + "top": 286 + }, + "post_job_actions": {}, + "tool_id": "Filter1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"cond\": \"c2=='CDS'\", \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.1.1", + "type": "tool", + "uuid": "77a50316-87e9-4e37-bec1-43001637161a", + "when": null, + "workflow_outputs": [] + }, + "31": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 31, + "input_connections": { + "input": { + "id": 30, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 3640.122253785648, + "top": 286 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1,c3\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "5c061df8-6f0b-4d5d-bb0c-951bfac6b225", + "when": null, + "workflow_outputs": [] + }, + "32": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/proteore/proteore_filter_keywords_values/MQoutputfilter/2021.04.19.1", + "errors": null, + "id": 32, + "input_connections": { + "input1": { + "id": 31, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Filter by keywords and/or numerical value", + "outputs": [ + { + "name": "discarded_lines", + "type": "tsv" + }, + { + "name": "kept_lines", + "type": "tsv" + } + ], + "position": { + "left": 3920.1316543406815, + "top": 241 + }, + "post_job_actions": { + "ChangeDatatypeActiondiscarded_lines": { + "action_arguments": { + "newtype": "tabular" + }, + "action_type": "ChangeDatatypeAction", + "output_name": "discarded_lines" + }, + "ChangeDatatypeActionkept_lines": { + "action_arguments": { + "newtype": "tabular" + }, + "action_type": "ChangeDatatypeAction", + "output_name": "kept_lines" + } + }, + "tool_id": "toolshed.g2.bx.psu.edu/repos/proteore/proteore_filter_keywords_values/MQoutputfilter/2021.04.19.1", + "tool_shed_repository": { + "changeset_revision": "98cb671a92eb", + "name": "proteore_filter_keywords_values", + "owner": "proteore", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"header\": false, \"input1\": {\"__class__\": \"ConnectedValue\"}, \"keyword\": [{\"__index__\": 0, \"ncol\": \"c2\", \"match\": false, \"k\": {\"kw\": \"text\", \"__current_case__\": 0, \"txt\": \"gene=\"}}], \"operation\": \"keep\", \"operator\": \"OR\", \"sort\": {\"sort_bool\": false, \"__current_case__\": 1}, \"value\": [], \"values_range\": [], \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2021.04.19.1", + "type": "tool", + "uuid": "05a159bb-75ef-41a1-9f80-346b76c56968", + "when": null, + "workflow_outputs": [] + }, + "33": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_column/9.3+galaxy1", + "errors": null, + "id": 33, + "input_connections": { + "infile": { + "id": 32, + "output_name": "kept_lines" + } + }, + "inputs": [], + "label": null, + "name": "Replace Text", + "outputs": [ + { + "name": "outfile", + "type": "input" + } + ], + "position": { + "left": 4200.141054895715, + "top": 321 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_column/9.3+galaxy1", + "tool_shed_repository": { + "changeset_revision": "86755160afbf", + "name": "text_processing", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"infile\": {\"__class__\": \"ConnectedValue\"}, \"replacements\": [{\"__index__\": 0, \"column\": \"2\", \"find_pattern\": \"ID=([^;]*);.*;gene=([^;]*).*;product=([^;]*).*\", \"replace_pattern\": \"\\\\\\\\1\\\\t\\\\\\\\2\\\\t\\\\\\\\3\"}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "9.3+galaxy1", + "type": "tool", + "uuid": "db145538-9dc2-4811-970e-0a414c8979e7", + "when": null, + "workflow_outputs": [] + }, + "34": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_column/9.3+galaxy1", + "errors": null, + "id": 34, + "input_connections": { + "infile": { + "id": 32, + "output_name": "discarded_lines" + } + }, + "inputs": [], + "label": null, + "name": "Replace Text", + "outputs": [ + { + "name": "outfile", + "type": "input" + } + ], + "position": { + "left": 4480.150455450748, + "top": 187 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_column/9.3+galaxy1", + "tool_shed_repository": { + "changeset_revision": "86755160afbf", + "name": "text_processing", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"infile\": {\"__class__\": \"ConnectedValue\"}, \"replacements\": [{\"__index__\": 0, \"column\": \"2\", \"find_pattern\": \"ID=([^;]*);.*\", \"replace_pattern\": \"\\\\\\\\1\\\\t\\\\t\"}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "9.3+galaxy1", + "type": "tool", + "uuid": "1f9ecccb-6f55-4835-b08e-9c644bc9f3d5", + "when": null, + "workflow_outputs": [] + }, + "35": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", + "errors": null, + "id": 35, + "input_connections": { + "datatable": { + "id": 33, + "output_name": "outfile" + } + }, + "inputs": [], + "label": null, + "name": "Add Header", + "outputs": [ + { + "name": "Data Table", + "type": "tabular" + } + ], + "position": { + "left": 4480.150455450748, + "top": 321 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", + "tool_shed_repository": { + "changeset_revision": "ff2acdb98a74", + "name": "add_column_headers", + "owner": "estrain", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"datatable\": {\"__class__\": \"ConnectedValue\"}, \"header\": \"Metagenomic sequence name,Gene ID,Gene name,Gene product\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "0.1.3", + "type": "tool", + "uuid": "5ed1ab17-1209-42a2-9488-04eb9c2060eb", + "when": null, + "workflow_outputs": [] + }, + "36": { + "annotation": "", + "content_id": "cat1", + "errors": null, + "id": 36, + "input_connections": { + "input1": { + "id": 35, + "output_name": "Data Table" + }, + "queries_0|input2": { + "id": 34, + "output_name": "outfile" + } + }, + "inputs": [], + "label": null, + "name": "Concatenate datasets", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 4760.159856005782, + "top": 269 + }, + "post_job_actions": {}, + "tool_id": "cat1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"queries\": [{\"__index__\": 0, \"input2\": {\"__class__\": \"ConnectedValue\"}}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.0", + "type": "tool", + "uuid": "4507b53a-2503-42a2-bb39-2bf800a22745", + "when": null, + "workflow_outputs": [ + { + "label": "CDS in metagenomes identified as plasmids", + "output_name": "out_file1", + "uuid": "dd7ee5f7-b8a4-45a7-9525-8ae626364e20" + } + ] + }, + "37": { + "annotation": "", + "content_id": "join1", + "errors": null, + "id": 37, + "input_connections": { + "input1": { + "id": 36, + "output_name": "out_file1" + }, + "input2": { + "id": 3, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Join two Datasets", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 5040.1692565608155, + "top": 142 + }, + "post_job_actions": {}, + "tool_id": "join1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"field1\": \"2\", \"field2\": \"2\", \"fill_empty_columns\": {\"fill_empty_columns_switch\": \"no_fill\", \"__current_case__\": 0}, \"header\": \"\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"input2\": {\"__class__\": \"ConnectedValue\"}, \"partial\": \"\", \"unmatched\": \"-u\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.1.3", + "type": "tool", + "uuid": "adb8b38c-3d54-40c7-9877-0f650bb22643", + "when": null, + "workflow_outputs": [] + }, + "38": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 38, + "input_connections": { + "input": { + "id": 37, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 5320.178657115849, + "top": 167 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1-c4,c7,c11\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "d300b735-1699-4f4c-be74-7dd143d91fad", + "when": null, + "workflow_outputs": [] + }, + "39": { + "annotation": "", + "content_id": "join1", + "errors": null, + "id": 39, + "input_connections": { + "input1": { + "id": 38, + "output_name": "out_file1" + }, + "input2": { + "id": 4, + "output_name": "output" + } + }, + "inputs": [], + "label": null, + "name": "Join two Datasets", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 5600.188057670883, + "top": 169 + }, + "post_job_actions": {}, + "tool_id": "join1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"field1\": \"2\", \"field2\": \"1\", \"fill_empty_columns\": {\"fill_empty_columns_switch\": \"no_fill\", \"__current_case__\": 0}, \"header\": \"\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"input2\": {\"__class__\": \"ConnectedValue\"}, \"partial\": \"\", \"unmatched\": \"-u\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.1.3", + "type": "tool", + "uuid": "65d5da91-f2de-4737-b176-6192b9ec03b1", + "when": null, + "workflow_outputs": [] + }, + "40": { + "annotation": "", + "content_id": "Cut1", + "errors": null, + "id": 40, + "input_connections": { + "input": { + "id": 39, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Cut", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 5880.197458225916, + "top": 194 + }, + "post_job_actions": {}, + "tool_id": "Cut1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1-c6,c9,c10,c25\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.0.2", + "type": "tool", + "uuid": "7623f3cc-ded7-4323-94f6-1a7ffbd56deb", + "when": null, + "workflow_outputs": [] + }, + "41": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_tail_tool/9.3+galaxy1", + "errors": null, + "id": 41, + "input_connections": { + "infile": { + "id": 40, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Select last", + "outputs": [ + { + "name": "outfile", + "type": "input" + } + ], + "position": { + "left": 6160.20685878095, + "top": 194 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_tail_tool/9.3+galaxy1", + "tool_shed_repository": { + "changeset_revision": "86755160afbf", + "name": "text_processing", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"complement\": \"+\", \"infile\": {\"__class__\": \"ConnectedValue\"}, \"num_lines\": \"2\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "9.3+galaxy1", + "type": "tool", + "uuid": "ca65183a-6acc-4619-81c2-a398c2ca8fa9", + "when": null, + "workflow_outputs": [] + }, + "42": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", + "errors": null, + "id": 42, + "input_connections": { + "datatable": { + "id": 41, + "output_name": "outfile" + } + }, + "inputs": [], + "label": null, + "name": "Add Header", + "outputs": [ + { + "name": "Data Table", + "type": "tabular" + } + ], + "position": { + "left": 6440.2171365860595, + "top": 194.01120085549044 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", + "tool_shed_repository": { + "changeset_revision": "ff2acdb98a74", + "name": "add_column_headers", + "owner": "estrain", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"datatable\": {\"__class__\": \"ConnectedValue\"}, \"header\": \"Metagenomic sequence name,Gene ID,Gene name,Gene product,KO ID,KO annotation,PFAM name,PFAM ID,PFAM annotation\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "0.1.3", + "type": "tool", + "uuid": "7cf75682-f7c3-4de9-a650-4c7fba5ac08e", + "when": null, + "workflow_outputs": [ + { + "label": "CDS in metagenomes identified as plasmids + KO + PFAM", + "output_name": "Data Table", + "uuid": "8d4adc03-cab4-444a-8122-b891f3eca2be" + } + ] + }, + "43": { + "annotation": "", + "content_id": "Filter1", + "errors": null, + "id": 43, + "input_connections": { + "input": { + "id": 42, + "output_name": "Data Table" + } + }, + "inputs": [], + "label": null, + "name": "Filter", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 6720.225659891017, + "top": 60 + }, + "post_job_actions": {}, + "tool_id": "Filter1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"cond\": \"c8!='.'\", \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.1.1", + "type": "tool", + "uuid": "d2119c3e-478e-4164-93c7-72daf3966b58", + "when": null, + "workflow_outputs": [] + }, + "44": { + "annotation": "", + "content_id": "Filter1", + "errors": null, + "id": 44, + "input_connections": { + "input": { + "id": 42, + "output_name": "Data Table" + } + }, + "inputs": [], + "label": null, + "name": "Filter", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 6720.225659891017, + "top": 194 + }, + "post_job_actions": {}, + "tool_id": "Filter1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"cond\": \"c5!='.'\", \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.1.1", + "type": "tool", + "uuid": "69cbd130-4f13-45dc-bfa6-4d4d59ea1420", + "when": null, + "workflow_outputs": [] + }, + "45": { + "annotation": "", + "content_id": "Grouping1", + "errors": null, + "id": 45, + "input_connections": { + "input1": { + "id": 42, + "output_name": "Data Table" + } + }, + "inputs": [], + "label": null, + "name": "Group", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 6720.225659891017, + "top": 328 + }, + "post_job_actions": {}, + "tool_id": "Grouping1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"groupcol\": \"1\", \"ignorecase\": false, \"ignorelines\": null, \"input1\": {\"__class__\": \"ConnectedValue\"}, \"operations\": [{\"__index__\": 0, \"optype\": \"unique\", \"opcol\": \"2\", \"opround\": \"no\", \"opdefault\": null}, {\"__index__\": 1, \"optype\": \"unique\", \"opcol\": \"3\", \"opround\": \"no\", \"opdefault\": null}, {\"__index__\": 2, \"optype\": \"unique\", \"opcol\": \"5\", \"opround\": \"no\", \"opdefault\": null}, {\"__index__\": 3, \"optype\": \"unique\", \"opcol\": \"8\", \"opround\": \"no\", \"opdefault\": null}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.1.4", + "type": "tool", + "uuid": "947912ee-f064-4963-a5f0-b0d8a2eceaca", + "when": null, + "workflow_outputs": [] + }, + "46": { + "annotation": "", + "content_id": "Grouping1", + "errors": null, + "id": 46, + "input_connections": { + "input1": { + "id": 43, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Group", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 7000.235060446051, + "top": 60 + }, + "post_job_actions": {}, + "tool_id": "Grouping1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"groupcol\": \"8\", \"ignorecase\": false, \"ignorelines\": null, \"input1\": {\"__class__\": \"ConnectedValue\"}, \"operations\": [{\"__index__\": 0, \"optype\": \"length\", \"opcol\": \"8\", \"opround\": \"no\", \"opdefault\": null}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.1.4", + "type": "tool", + "uuid": "e9e0be8b-b45c-4d4d-94c8-0349576fe8db", + "when": null, + "workflow_outputs": [] + }, + "47": { + "annotation": "", + "content_id": "Grouping1", + "errors": null, + "id": 47, + "input_connections": { + "input1": { + "id": 44, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Group", + "outputs": [ + { + "name": "out_file1", + "type": "tabular" + } + ], + "position": { + "left": 7000.235060446051, + "top": 194 + }, + "post_job_actions": {}, + "tool_id": "Grouping1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"groupcol\": \"5\", \"ignorecase\": false, \"ignorelines\": null, \"input1\": {\"__class__\": \"ConnectedValue\"}, \"operations\": [{\"__index__\": 0, \"optype\": \"length\", \"opcol\": \"5\", \"opround\": \"no\", \"opdefault\": null}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "2.1.4", + "type": "tool", + "uuid": "15ac58ba-0a36-4bc2-a428-2d414eb8b5b5", + "when": null, + "workflow_outputs": [] + }, + "48": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_tail_tool/9.3+galaxy1", + "errors": null, + "id": 48, + "input_connections": { + "infile": { + "id": 45, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Select last", + "outputs": [ + { + "name": "outfile", + "type": "input" + } + ], + "position": { + "left": 7000.235060446051, + "top": 328 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_tail_tool/9.3+galaxy1", + "tool_shed_repository": { + "changeset_revision": "86755160afbf", + "name": "text_processing", + "owner": "bgruening", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"complement\": \"+\", \"infile\": {\"__class__\": \"ConnectedValue\"}, \"num_lines\": \"2\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "9.3+galaxy1", + "type": "tool", + "uuid": "eccd8c32-1a57-451a-88b0-6aeccaddcb2a", + "when": null, + "workflow_outputs": [] + }, + "49": { + "annotation": "", + "content_id": "sort1", + "errors": null, + "id": 49, + "input_connections": { + "input": { + "id": 46, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Sort", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 7280.244461001084, + "top": 79 + }, + "post_job_actions": {}, + "tool_id": "sort1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"column\": \"2\", \"column_set\": [], \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"order\": \"DESC\", \"style\": \"num\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.2.0", + "type": "tool", + "uuid": "93cd4df6-8637-4584-a1d4-b81b594b7fa9", + "when": null, + "workflow_outputs": [] + }, + "50": { + "annotation": "", + "content_id": "sort1", + "errors": null, + "id": 50, + "input_connections": { + "input": { + "id": 47, + "output_name": "out_file1" + } + }, + "inputs": [], + "label": null, + "name": "Sort", + "outputs": [ + { + "name": "out_file1", + "type": "input" + } + ], + "position": { + "left": 7280.244461001084, + "top": 213 + }, + "post_job_actions": {}, + "tool_id": "sort1", + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"column\": \"2\", \"column_set\": [], \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"order\": \"DESC\", \"style\": \"num\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "1.2.0", + "type": "tool", + "uuid": "a2cf6302-6786-4301-be91-13ceaec27ac5", + "when": null, + "workflow_outputs": [] + }, + "51": { + "annotation": "", + "content_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", + "errors": null, + "id": 51, + "input_connections": { + "datatable": { + "id": 48, + "output_name": "outfile" + } + }, + "inputs": [], + "label": null, + "name": "Add Header", + "outputs": [ + { + "name": "Data Table", + "type": "tabular" + } + ], + "position": { + "left": 7280.244461001084, + "top": 347 + }, + "post_job_actions": {}, + "tool_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", + "tool_shed_repository": { + "changeset_revision": "ff2acdb98a74", + "name": "add_column_headers", + "owner": "estrain", + "tool_shed": "toolshed.g2.bx.psu.edu" + }, + "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"datatable\": {\"__class__\": \"ConnectedValue\"}, \"header\": \"Metagenomic sequence name,Number of CDS,Number of annotated CDS,Number of associated KO,Number of associated PFAM\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_version": "0.1.3", + "type": "tool", + "uuid": "04899a31-a9ab-4c55-a835-dd6160184b33", + "when": null, + "workflow_outputs": [ + { + "label": "CDS annotation overview per metagenomic sequences", + "output_name": "Data Table", + "uuid": "39e36bb3-4f8d-46e1-8d26-24619c7ad36d" + } + ] + } + }, + "tags": [ + "metagenomics", + "metaplasmidome", + "name:microGalaxy" + ], + "uuid": "bd8d874c-b94f-48d7-ba97-bba57c0f9a70", + "version": 11 +} \ No newline at end of file From a1f65030bf037b5a01a1ab8ff775cebd724e0a5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Mon, 16 Dec 2024 16:39:45 +0100 Subject: [PATCH 2/6] Add Zenodo data and missing metadata --- CONTRIBUTORS.yaml | 4 + .../metaplasmidome_query/tutorial.md | 42 +- .../workflows/metaplasmidome-tests.yml | 73 +++ .../workflows/metaplasmidome.ga | 495 ++++++++++++++---- 4 files changed, 483 insertions(+), 131 deletions(-) create mode 100644 topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome-tests.yml diff --git a/CONTRIBUTORS.yaml b/CONTRIBUTORS.yaml index 1abba40f5ba3f5..533f40686afcb9 100644 --- a/CONTRIBUTORS.yaml +++ b/CONTRIBUTORS.yaml @@ -581,6 +581,10 @@ dbrites: name: Daniela Brites joined: 2022-03 +debroas: + name: Didier Debroas + joined: 2024-12 + dechendb: name: Dechen Bhuming joined: 2023-06 diff --git a/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md index 831093e5c4ec89..405bf072970c27 100644 --- a/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md +++ b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md @@ -1,26 +1,31 @@ --- layout: tutorial_hands_on -title: Query a metaplasmidome database to identify and annotate plasmids in metagenomes -zenodo_link: '' +title: Query an annotated mobile genetic element database to identify and annotate genetic elements (e.g. plasmids) in metagenomics data +zenodo_link: 'https://zenodo.org/records/14501567' questions: -- Which biological questions are addressed by the tutorial? -- Which bioinformatics techniques are important to know for this type of data? +- How can we use an existing database annotated database to identify and annotate genetic elements in metagenomics data? objectives: -- The learning objectives are the goals of the tutorial -- They will be informed by your audience and will communicate to them and to yourself - what you should focus on during the course -- They are single sentences describing what a learner should be able to do once they - have completed the tutorial -- You can use Bloom's Taxonomy to write effective learning objectives +- Perform metagenomics read mapping against mobile genetic element database. +- Evaluate the distribution of mapping scores to identify high-quality alignments. +- Evaluate plasmid coverage to determine effective filtering thresholds. +- Filter alignments based on plasmid coverage and mapping quality. +- Justify the filtering thresholds chosen for identifying plasmid sequences. +- Generate a curated table of plasmid sequences and convert it into a FASTA file for further analysis. +- Use tools to process sequences, ensuring data is sorted, deduplicated, and formatted correctly. +- Annotate features on the identified plasmids using mobile genetic element database annotations. +- Construct a final annotated dataset integrating genetic element information for downstream applications. time_estimation: 1H key_points: -- The take-home messages -- They will appear at the end of the tutorial +- Leveraging annotated mobile genetic element databases, such as the metaplasmidome, is essential for identifying and characterizing plasmids and other genetic elements in metagenomic data. +- Effective filtering based on plasmid coverage and mapping quality is critical to ensure the reliability and accuracy of extracted sequences. +- Generating well-organized outputs, such as FASTA files and annotated tables, is vital for downstream analysis and collaborative research. +- Annotating genetic features on identified plasmids enhances understanding of their biological roles, such as antibiotic resistance or virulence. contributions: authorship: - bebatut - nagoue + - debroas edam_ontology: - topic_0622 # Genomics - topic_3301 # Microbiology @@ -30,11 +35,13 @@ level: Introductory --- +Identifying and annotating mobile genetic elements (MGE) in metagenomic data can be tricky. To facilitate the process, we can use existing and custom annotated mobile genetic element database. + The *metaplasmidome* refers to the collection of all plasmids present within a given environment, typically identified through metagenomic sequencing. Plasmids are extrachromosomal genetic elements that often carry genes associated with antibiotic resistance, virulence, or metabolic functions, making them crucial for microbial adaptability. In the context of metagenomics, plasmids are identified alongside chromosomal DNA. A common step in metaplasmidome analysis is searching sequencing reads against known plasmid databases to detect plasmid sequences within a metagenome, allowing researchers to map the diversity and abundance of plasmids in various environments. -In this tutorial, we use a metaplasmidome database built from public air metagenomes and query it with other air metagenome data that has been assembled. +In this tutorial, we use a metaplasmidome database built from public air metagenomes and query it with other air metagenome data that has been assembled. But a similar approach can be used for other mobile genetic elements. > How was built the air metaplasmidome database? > @@ -75,7 +82,7 @@ Any analysis should get its own Galaxy history. So let's start by creating a new > the shared data library > > ``` -> +> https://zenodo.org/records/14501567/files/air_metaplasmidome.fasta.gz > ``` > > {% snippet faqs/galaxy/datasets_import_via_link.md %} @@ -90,7 +97,7 @@ Any analysis should get its own Galaxy history. So let's start by creating a new > the shared data library > > ``` -> +> https://zenodo.org/records/14501567/files/air_metagenome_assemblies.fasta.gz > ``` > > 6. Rename `Air metagenomes` @@ -437,7 +444,7 @@ We will import the GFF generated by Prokka. > 1. Import the metaplasmidome reference database annotation from [Zenodo]({{ page.zenodo_link }}) or from the shared data library > > ``` -> +> https://zenodo.org/records/14501567/files/air_metaplasmidome_annotations.gff > ``` > > 2. Inspect it. @@ -649,7 +656,8 @@ Let's expand annotation with **[KO](https://www.genome.jp/kegg/ko.html) (KEGG Or > 1. Import the KO and PFAM annotations from [Zenodo]({{ page.zenodo_link }}) or from the shared data library > > ``` -> +> https://zenodo.org/records/14501567/files/KOsignificatifNR.tsv +> https://zenodo.org/records/14501567/files/pfamsignificatifNR.tsv > ``` > > 2. Inspect both files diff --git a/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome-tests.yml b/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome-tests.yml new file mode 100644 index 00000000000000..ad212c6129d280 --- /dev/null +++ b/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome-tests.yml @@ -0,0 +1,73 @@ +- doc: Test outline for Query-a-metaplasmidome-database-to-identify-and-annotate-plasmids-in-metagenomes + job: + Metaplasmidome sequences: + class: File + path: https://zenodo.org/records/14501567/files/air_metaplasmidome.fasta.gz + filetype: fasta.gz + Raw metagenomics data: + class: File + path: https://zenodo.org/records/14501567/files/air_metagenome_assemblies.fasta.gz + filetype: fasta.gz + Metaplasmidome predicted CDS: + class: File + path: https://zenodo.org/records/14501567/files/air_metaplasmidome_annotations.gff + filetype: gff3 + PFAM: + class: File + path: https://zenodo.org/records/14501567/files/KOsignificatifNR.tsv + filetype: tabular + KEGG Ortogolog: + class: File + path: https://zenodo.org/records/14501567/files/KOsignificatifNR.tsv + filetype: tabular + outputs: + Metagenome sequences identified as plasmids: + asserts: + has_text: + text: ">SRR17300466_100021" + Metagenomes identified as plasmids: + asserts: + has_text: + text: "SRR17300667-707" + has_text: + text: "SRR17300492_244288" + has_n_lines: + n: 5250 + has_n_columns: + n: 3 + CDS in metagenomes identified as plasmids: + asserts: + has_text: + text: "SRR17300466_10187" + has_text: + text: "BAFOEJEB_01977" + has_text: + text: "serS_2" + has_n_lines: + n: 26330 + has_n_columns: + n: 4 + CDS in metagenomes identified as plasmids + KO + PFAM: + asserts: + has_text: + text: "SRR17300466_10187" + has_text: + text: "BAFOEJEB_01977" + has_text: + text: "serS_2" + has_text: + text: "K07393" + has_text: + text: "PF00115.23" + has_n_lines: + n: 26330 + has_n_columns: + n: 9 + CDS annotation overview per metagenomic sequences: + asserts: + has_text: + text: "SRR17300466_100021" + has_n_lines: + n: 4034 + has_n_columns: + n: 5 diff --git a/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga b/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga index 156256f05e9842..bd60d046025c47 100644 --- a/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga +++ b/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga @@ -38,7 +38,7 @@ "outputs": [], "position": { "left": 0, - "top": 223 + "top": 296.94122404660857 }, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", @@ -65,7 +65,7 @@ "outputs": [], "position": { "left": 0, - "top": 346 + "top": 419.94122404660857 }, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", @@ -92,7 +92,7 @@ "outputs": [], "position": { "left": 2520.084604995301, - "top": 430 + "top": 503.94122404660857 }, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", @@ -119,7 +119,7 @@ "outputs": [], "position": { "left": 4760.159856005782, - "top": 146 + "top": 219.94122404660857 }, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", @@ -146,7 +146,7 @@ "outputs": [], "position": { "left": 5320.178657115849, - "top": 301 + "top": 374.94122404660857 }, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", @@ -191,9 +191,15 @@ ], "position": { "left": 280.00940055503344, - "top": 206 + "top": 279.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionalignment_output": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "alignment_output" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/minimap2/minimap2/2.28+galaxy0", "tool_shed_repository": { "changeset_revision": "5cc34c3f440d", @@ -230,9 +236,15 @@ ], "position": { "left": 280.00940055503344, - "top": 521 + "top": 594.9412240466086 + }, + "post_job_actions": { + "HideDatasetActionoutput": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "output" + } }, - "post_job_actions": {}, "tool_id": "CONVERTER_fasta_to_tabular", "tool_state": "{\"__input_ext\": \"input\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.1", @@ -263,9 +275,15 @@ ], "position": { "left": 2800.0940055503347, - "top": 446 + "top": 519.9412240466086 + }, + "post_job_actions": { + "HideDatasetActionoutput": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "output" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/count_gff_features/count_gff_features/0.2", "tool_shed_repository": { "changeset_revision": "188392a0d0a8", @@ -301,10 +319,16 @@ } ], "position": { - "left": 560.0188011100669, - "top": 116 + "left": 560.0166625976562, + "top": 189.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Cut1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1-c12\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.2", @@ -335,9 +359,15 @@ ], "position": { "left": 560.0188011100669, - "top": 251 + "top": 324.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Cut1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c12\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.2", @@ -368,9 +398,15 @@ ], "position": { "left": 840.0282016651004, - "top": 116 + "top": 189.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/column_maker/Add_a_column1/2.1", "tool_shed_repository": { "changeset_revision": "aff5135563c6", @@ -407,9 +443,15 @@ ], "position": { "left": 840.0282016651004, - "top": 250 + "top": 323.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionoutput1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "output1" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram/ggplot2_histogram/3.4.0+galaxy0", "tool_shed_repository": { "changeset_revision": "b0d96516e6a5", @@ -446,9 +488,15 @@ ], "position": { "left": 1120.0376022201337, - "top": 1 + "top": 74.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Cut1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c13\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.2", @@ -479,7 +527,7 @@ ], "position": { "left": 1120.0376022201337, - "top": 135 + "top": 208.94122404660857 }, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/histogram/histogram_rpy/1.0.4", @@ -518,9 +566,15 @@ ], "position": { "left": 1120.0376022201337, - "top": 269 + "top": 342.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Filter1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"cond\": \"c13>=0.8\", \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.1.1", @@ -550,7 +604,7 @@ } ], "position": { - "left": 1400.0470027751671, + "left": 1413.6394515545703, "top": 0 }, "post_job_actions": {}, @@ -590,9 +644,15 @@ ], "position": { "left": 1400.0470027751671, - "top": 269 + "top": 342.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Filter1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"cond\": \"c12>=40\", \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.1.1", @@ -623,9 +683,15 @@ ], "position": { "left": 1400.0470027751671, - "top": 404 + "top": 477.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Cut1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c12\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.2", @@ -656,9 +722,15 @@ ], "position": { "left": 1680.0564033302005, - "top": 269 + "top": 342.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Cut1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1,c6\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.2", @@ -688,10 +760,16 @@ } ], "position": { - "left": 1680.0564033302005, - "top": 403 + "left": 1680.047227633093, + "top": 476.9450002240956 + }, + "post_job_actions": { + "HideDatasetActionoutput1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "output1" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/ggplot2_histogram/ggplot2_histogram/3.4.0+galaxy0", "tool_shed_repository": { "changeset_revision": "b0d96516e6a5", @@ -732,9 +810,15 @@ ], "position": { "left": 1960.065803885234, - "top": 271 + "top": 344.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "join1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"field1\": \"1\", \"field2\": \"1\", \"fill_empty_columns\": {\"fill_empty_columns_switch\": \"no_fill\", \"__current_case__\": 0}, \"header\": \"\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"input2\": {\"__class__\": \"ConnectedValue\"}, \"partial\": \"\", \"unmatched\": \"\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.1.3", @@ -765,9 +849,15 @@ ], "position": { "left": 2240.0752044402675, - "top": 296 + "top": 369.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Cut1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c2,c1,c4\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.2", @@ -798,9 +888,15 @@ ], "position": { "left": 2240.0752044402675, - "top": 610 + "top": 683.9412240466086 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Cut1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1,c4\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.2", @@ -820,12 +916,7 @@ "output_name": "out_file1" } }, - "inputs": [ - { - "description": "runtime parameter for tool Add Header", - "name": "datatable" - } - ], + "inputs": [], "label": null, "name": "Add Header", "outputs": [ @@ -835,10 +926,18 @@ } ], "position": { - "left": 2553.666126225509, - "top": 163.23657970823393 + "left": 2553.662374965172, + "top": 237.18001003407176 + }, + "post_job_actions": { + "RenameDatasetActionData Table": { + "action_arguments": { + "newname": "Metagenomes identified as plasmids" + }, + "action_type": "RenameDatasetAction", + "output_name": "Data Table" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", "tool_shed_repository": { "changeset_revision": "ff2acdb98a74", @@ -846,7 +945,7 @@ "owner": "estrain", "tool_shed": "toolshed.g2.bx.psu.edu" }, - "tool_state": "{\"datatable\": {\"__class__\": \"RuntimeValue\"}, \"header\": \"Metaplasmidome database sequence name,Metagenomic sequence name,Metagenomic sequence\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", + "tool_state": "{\"datatable\": {\"__class__\": \"ConnectedValue\"}, \"header\": \"Metaplasmidome database sequence name,Metagenomic sequence name,Metagenomic sequence\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.1.3", "type": "tool", "uuid": "82d46177-4eab-4399-b328-baab91477429", @@ -881,9 +980,15 @@ ], "position": { "left": 2520.084604995301, - "top": 610 + "top": 683.9412240466086 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "sort1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"column\": \"1\", \"column_set\": [], \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"order\": \"DESC\", \"style\": \"alpha\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.2.0", @@ -918,9 +1023,15 @@ ], "position": { "left": 2800.0940055503347, - "top": 261 + "top": 334.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "join1", "tool_state": "{\"__input_ext\": \"gff3\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"field1\": \"1\", \"field2\": \"1\", \"fill_empty_columns\": {\"fill_empty_columns_switch\": \"no_fill\", \"__current_case__\": 0}, \"header\": \"\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"input2\": {\"__class__\": \"ConnectedValue\"}, \"partial\": \"\", \"unmatched\": \"\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.1.3", @@ -951,9 +1062,15 @@ ], "position": { "left": 2800.0940055503347, - "top": 600 + "top": 673.9412240466086 + }, + "post_job_actions": { + "HideDatasetActionoutfile": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "outfile" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_sorted_uniq/9.3+galaxy1", "tool_shed_repository": { "changeset_revision": "86755160afbf", @@ -989,10 +1106,16 @@ } ], "position": { - "left": 3080.1034061053683, - "top": 286 + "left": 3078.6761300637186, + "top": 355.6441194223201 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Cut1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c11,c3,c9\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.2", @@ -1022,10 +1145,18 @@ } ], "position": { - "left": 3080.089664180655, - "top": 622.006917580278 + "left": 3080.086245631013, + "top": 695.9318338936986 + }, + "post_job_actions": { + "RenameDatasetActionoutput": { + "action_arguments": { + "newname": "Metagenome sequences identified as plasmids" + }, + "action_type": "RenameDatasetAction", + "output_name": "output" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/tabular_to_fasta/tab2fasta/1.1.1", "tool_shed_repository": { "changeset_revision": "0a7799698fe5", @@ -1067,10 +1198,16 @@ } ], "position": { - "left": 3360.112829945508, - "top": 152 + "left": 3360.1180413272446, + "top": 225.9298554256009 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Grouping1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"groupcol\": \"2\", \"ignorecase\": false, \"ignorelines\": null, \"input1\": {\"__class__\": \"ConnectedValue\"}, \"operations\": [{\"__index__\": 0, \"optype\": \"length\", \"opcol\": \"3\", \"opround\": \"no\", \"opdefault\": null}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.1.4", @@ -1100,10 +1237,16 @@ } ], "position": { - "left": 3360.112829945508, - "top": 286 + "left": 3360.1180413272446, + "top": 359.9464161550109 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Filter1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"cond\": \"c2=='CDS'\", \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.1.1", @@ -1134,9 +1277,15 @@ ], "position": { "left": 3640.122253785648, - "top": 286 + "top": 359.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Cut1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1,c3\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.2", @@ -1171,7 +1320,7 @@ ], "position": { "left": 3920.1316543406815, - "top": 241 + "top": 314.94122404660857 }, "post_job_actions": { "ChangeDatatypeActiondiscarded_lines": { @@ -1187,6 +1336,16 @@ }, "action_type": "ChangeDatatypeAction", "output_name": "kept_lines" + }, + "HideDatasetActiondiscarded_lines": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "discarded_lines" + }, + "HideDatasetActionkept_lines": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "kept_lines" } }, "tool_id": "toolshed.g2.bx.psu.edu/repos/proteore/proteore_filter_keywords_values/MQoutputfilter/2021.04.19.1", @@ -1224,10 +1383,16 @@ } ], "position": { - "left": 4200.141054895715, - "top": 321 + "left": 4200.141478385132, + "top": 394.9384208278514 + }, + "post_job_actions": { + "HideDatasetActionoutfile": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "outfile" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_column/9.3+galaxy1", "tool_shed_repository": { "changeset_revision": "86755160afbf", @@ -1264,9 +1429,15 @@ ], "position": { "left": 4480.150455450748, - "top": 187 + "top": 260.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionoutfile": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "outfile" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_replace_in_column/9.3+galaxy1", "tool_shed_repository": { "changeset_revision": "86755160afbf", @@ -1302,10 +1473,16 @@ } ], "position": { - "left": 4480.150455450748, - "top": 321 + "left": 4480.149290737761, + "top": 394.9384208278514 + }, + "post_job_actions": { + "HideDatasetActionData Table": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "Data Table" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", "tool_shed_repository": { "changeset_revision": "ff2acdb98a74", @@ -1346,9 +1523,17 @@ ], "position": { "left": 4760.159856005782, - "top": 269 + "top": 342.94122404660857 + }, + "post_job_actions": { + "RenameDatasetActionout_file1": { + "action_arguments": { + "newname": "CDS in metagenomes identified as plasmids" + }, + "action_type": "RenameDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "cat1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"queries\": [{\"__index__\": 0, \"input2\": {\"__class__\": \"ConnectedValue\"}}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.0", @@ -1389,9 +1574,15 @@ ], "position": { "left": 5040.1692565608155, - "top": 142 + "top": 215.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "join1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"field1\": \"2\", \"field2\": \"2\", \"fill_empty_columns\": {\"fill_empty_columns_switch\": \"no_fill\", \"__current_case__\": 0}, \"header\": \"\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"input2\": {\"__class__\": \"ConnectedValue\"}, \"partial\": \"\", \"unmatched\": \"-u\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.1.3", @@ -1422,9 +1613,15 @@ ], "position": { "left": 5320.178657115849, - "top": 167 + "top": 240.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Cut1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1-c4,c7,c11\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.2", @@ -1459,9 +1656,15 @@ ], "position": { "left": 5600.188057670883, - "top": 169 + "top": 242.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "join1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"field1\": \"2\", \"field2\": \"1\", \"fill_empty_columns\": {\"fill_empty_columns_switch\": \"no_fill\", \"__current_case__\": 0}, \"header\": \"\", \"input1\": {\"__class__\": \"ConnectedValue\"}, \"input2\": {\"__class__\": \"ConnectedValue\"}, \"partial\": \"\", \"unmatched\": \"-u\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.1.3", @@ -1492,9 +1695,15 @@ ], "position": { "left": 5880.197458225916, - "top": 194 + "top": 267.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Cut1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"columnList\": \"c1-c6,c9,c10,c25\", \"delimiter\": \"T\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.2", @@ -1525,9 +1734,15 @@ ], "position": { "left": 6160.20685878095, - "top": 194 + "top": 267.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionoutfile": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "outfile" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_tail_tool/9.3+galaxy1", "tool_shed_repository": { "changeset_revision": "86755160afbf", @@ -1564,9 +1779,17 @@ ], "position": { "left": 6440.2171365860595, - "top": 194.01120085549044 + "top": 267.952424902099 + }, + "post_job_actions": { + "RenameDatasetActionData Table": { + "action_arguments": { + "newname": "CDS in metagenomes identified as plasmids + KO + PFAM" + }, + "action_type": "RenameDatasetAction", + "output_name": "Data Table" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", "tool_shed_repository": { "changeset_revision": "ff2acdb98a74", @@ -1608,10 +1831,16 @@ } ], "position": { - "left": 6720.225659891017, - "top": 60 + "left": 6720.23564160672, + "top": 133.9324190446071 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Filter1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"cond\": \"c8!='.'\", \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.1.1", @@ -1642,9 +1871,15 @@ ], "position": { "left": 6720.225659891017, - "top": 194 + "top": 267.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Filter1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"cond\": \"c5!='.'\", \"header_lines\": \"0\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.1.1", @@ -1675,9 +1910,15 @@ ], "position": { "left": 6720.225659891017, - "top": 328 + "top": 401.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Grouping1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"groupcol\": \"1\", \"ignorecase\": false, \"ignorelines\": null, \"input1\": {\"__class__\": \"ConnectedValue\"}, \"operations\": [{\"__index__\": 0, \"optype\": \"unique\", \"opcol\": \"2\", \"opround\": \"no\", \"opdefault\": null}, {\"__index__\": 1, \"optype\": \"unique\", \"opcol\": \"3\", \"opround\": \"no\", \"opdefault\": null}, {\"__index__\": 2, \"optype\": \"unique\", \"opcol\": \"5\", \"opround\": \"no\", \"opdefault\": null}, {\"__index__\": 3, \"optype\": \"unique\", \"opcol\": \"8\", \"opround\": \"no\", \"opdefault\": null}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.1.4", @@ -1708,9 +1949,15 @@ ], "position": { "left": 7000.235060446051, - "top": 60 + "top": 133.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Grouping1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"groupcol\": \"8\", \"ignorecase\": false, \"ignorelines\": null, \"input1\": {\"__class__\": \"ConnectedValue\"}, \"operations\": [{\"__index__\": 0, \"optype\": \"length\", \"opcol\": \"8\", \"opround\": \"no\", \"opdefault\": null}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.1.4", @@ -1740,10 +1987,16 @@ } ], "position": { - "left": 7000.235060446051, - "top": 194 + "left": 7000.243410194123, + "top": 267.94897977401706 + }, + "post_job_actions": { + "HideDatasetActionout_file1": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "out_file1" + } }, - "post_job_actions": {}, "tool_id": "Grouping1", "tool_state": "{\"__input_ext\": \"tabular\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"groupcol\": \"5\", \"ignorecase\": false, \"ignorelines\": null, \"input1\": {\"__class__\": \"ConnectedValue\"}, \"operations\": [{\"__index__\": 0, \"optype\": \"length\", \"opcol\": \"5\", \"opround\": \"no\", \"opdefault\": null}], \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.1.4", @@ -1774,9 +2027,15 @@ ], "position": { "left": 7000.235060446051, - "top": 328 + "top": 401.94122404660857 + }, + "post_job_actions": { + "HideDatasetActionoutfile": { + "action_arguments": {}, + "action_type": "HideDatasetAction", + "output_name": "outfile" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/text_processing/tp_tail_tool/9.3+galaxy1", "tool_shed_repository": { "changeset_revision": "86755160afbf", @@ -1813,7 +2072,7 @@ ], "position": { "left": 7280.244461001084, - "top": 79 + "top": 152.94122404660857 }, "post_job_actions": {}, "tool_id": "sort1", @@ -1846,7 +2105,7 @@ ], "position": { "left": 7280.244461001084, - "top": 213 + "top": 286.94122404660857 }, "post_job_actions": {}, "tool_id": "sort1", @@ -1879,9 +2138,17 @@ ], "position": { "left": 7280.244461001084, - "top": 347 + "top": 420.94122404660857 + }, + "post_job_actions": { + "RenameDatasetActionData Table": { + "action_arguments": { + "newname": "CDS annotation overview per metagenomic sequences" + }, + "action_type": "RenameDatasetAction", + "output_name": "Data Table" + } }, - "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3", "tool_shed_repository": { "changeset_revision": "ff2acdb98a74", @@ -1908,6 +2175,6 @@ "metaplasmidome", "name:microGalaxy" ], - "uuid": "bd8d874c-b94f-48d7-ba97-bba57c0f9a70", - "version": 11 + "uuid": "8fc35d7e-0cf4-4365-b57a-75d247588f7e", + "version": 13 } \ No newline at end of file From 3e78203bc0b00138baf99aa53cde652cfee93462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Tue, 17 Dec 2024 11:01:38 +0100 Subject: [PATCH 3/6] Add DOIs to bib --- .../microbiome/tutorials/metaplasmidome_query/tutorial.bib | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/topics/microbiome/tutorials/metaplasmidome_query/tutorial.bib b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.bib index 7e775baef5c775..3dd7ec036dd139 100644 --- a/topics/microbiome/tutorials/metaplasmidome_query/tutorial.bib +++ b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.bib @@ -66,7 +66,8 @@ @article{kanehisa2016kegg number={D1}, pages={D457--D462}, year={2016}, - publisher={Oxford University Press} + publisher={Oxford University Press}, + doi={10.1093/nar/gkv1070} } @article{krawczyk2018plasflow, @@ -129,7 +130,8 @@ @article{mistry2021pfam number={D1}, pages={D412--D419}, year={2021}, - publisher={Oxford University Press} + publisher={Oxford University Press}, + doi={10.1093/nar/gkaa913} } From 4829220a9803c566aa0d8603a255e46e0a95dc28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Tue, 17 Dec 2024 11:04:34 +0100 Subject: [PATCH 4/6] Add missing creator id --- .../tutorials/metaplasmidome_query/workflows/metaplasmidome.ga | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga b/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga index bd60d046025c47..00d49d0395aabf 100644 --- a/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga +++ b/topics/microbiome/tutorials/metaplasmidome_query/workflows/metaplasmidome.ga @@ -10,7 +10,7 @@ }, { "class": "Person", - "identifier": "", + "identifier": "0000-0003-2750-1473", "name": "Nadia Gou\u00e9" } ], From 2cedfc13bbfbc03bc0a015ac9f98b27f7f84cfcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gr=C3=BCning?= Date: Tue, 17 Dec 2024 20:26:26 +0100 Subject: [PATCH 5/6] add small changes --- .../metaplasmidome_query/tutorial.md | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md index 405bf072970c27..338ed8f2ee0bf0 100644 --- a/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md +++ b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md @@ -41,7 +41,7 @@ The *metaplasmidome* refers to the collection of all plasmids present within a g A common step in metaplasmidome analysis is searching sequencing reads against known plasmid databases to detect plasmid sequences within a metagenome, allowing researchers to map the diversity and abundance of plasmids in various environments. -In this tutorial, we use a metaplasmidome database built from public air metagenomes and query it with other air metagenome data that has been assembled. But a similar approach can be used for other mobile genetic elements. +In this tutorial, we use a metaplasmidome database built from public air metagenomes and query it with assembled air metagenome data. A similar approach can be used for other mobile genetic elements. > How was built the air metaplasmidome database? > @@ -66,7 +66,7 @@ In this tutorial, we use a metaplasmidome database built from public air metagen # Galaxy and data preparation -Any analysis should get its own Galaxy history. So let's start by creating a new one and get the data (plasmidome database and query metagenomes) into it. +Any analysis should get its own Galaxy history. So let's start by creating a new history and import the data (plasmidome database and query metagenomes) into it. > Prepare Galaxy and data > @@ -93,7 +93,7 @@ Any analysis should get its own Galaxy history. So let's start by creating a new > > {% snippet faqs/galaxy/datasets_rename.md %} > -> 5. Import the reads to query against reference database from [Zenodo]({{ page.zenodo_link }}) or from +> 5. Import the reads to query against the reference database from [Zenodo]({{ page.zenodo_link }}) or from > the shared data library > > ``` @@ -155,8 +155,8 @@ PAF is the default output format of minimap2. It is TAB-delimited with each line > > > > > > 1. 29,796 lines -> > 2. There are 16,637 query sequences. Several query sequences are found several times in the file: SRR17300492_75807 is found 16 times. It means they have been mapped to several location or sequences in the target. -> > 3. The first alignment (SRR17300492_75807 mapping on SRR17300667-707) has a score of 60, the highest Phred score. The third alignment has a score of 0, so not really good. +> > 2. There are 16,637 query sequences. Several query sequences are found several times in the file: SRR17300492_75807 is found 16 times. It means they have been mapped to several locations or sequences in the target. +> > 3. The first alignment (SRR17300492_75807 mapping on SRR17300667-707) has a score of 60, the highest Phred score. The third alignment has a score of 0, so not good. > > > {: .solution} > @@ -238,12 +238,12 @@ A new column has been added (column 13) with the plasmid coverage. Let's now plo > > -> 1. How is the distribution of the plasmid coverage? +> 1. What is the distribution of the plasmid coverage? > 2. What could be a good threshold to filter? > > > > > -> > 1. There are 2 pics: one around 0 (i.e. no plasmid coverage) and that slowly decrease until 0.8 and a pic at 1 (full plasmid coverage) +> > 1. There are 2 pics: one around 0 (i.e. no plasmid coverage) that slowly decreases until 0.8 and a pic at 1 (full plasmid coverage) > > 2. 0.8 seems to be a breaking point and could be a good value to filter. > > > {: .solution} @@ -252,7 +252,7 @@ A new column has been added (column 13) with the plasmid coverage. Let's now plo # Filtering -We will now filter the alignment to keep only the ones with a plasmid coverage (column 13) of at least 0.8, i.e. a read mapping to a plasmid cover at least 80% of the plasmid. +We will now filter the alignment to keep only the ones with a plasmid coverage (column 13) of at least 0.8, i.e. a read mapping to a plasmid covering at least 80% of the plasmid. > Filter alignments based on plasmid coverage > @@ -267,7 +267,7 @@ We will now filter the alignment to keep only the ones with a plasmid coverage ( > > 1. How many lines have been kept? > 2. Which percentage of lines does that correspond to? -> 3. How does the distribution of the mapping score looks like for these alignments? +> 3. What does the distribution of the mapping score look like for these alignments? > 4. Is there any extra filter we should do on the data? > > > @@ -325,7 +325,7 @@ After filtering on the plasmid coverage, we also add a filter on the score to be Let's now extract the sequences mapping to plasmids (coverage higher than 80%). -First, we need to extract the names of the reads (in `air metagenomes`) mapping to plasmids in the metaplasmidome database. For that we need to extract the columns 1 (query names, i.e. names of reads in `Air metagenomes`) and 6 (reference names, i.e. names of sequences in `Air plasmidome database`). +First, we need to extract the names of the reads (in `air metagenomes`) mapping to plasmids in the metaplasmidome database. For that, we need to extract column 1 (query names, i.e. names of reads in `Air metagenomes`) and 6 (reference names, i.e. names of sequences in `Air plasmidome database`). > Get sequences matching to plasmids > @@ -450,7 +450,7 @@ We will import the GFF generated by Prokka. > 2. Inspect it. {: .hands_on} -This file is a GFF: it describes genes and other features of DNA, RNA and protein sequences. It is a tab delimited file with 9 fields per line: +This file is a GFF: it describes genes and other features of DNA, RNA and protein sequences. It is a tab-delimited file with 9 fields per line: 1. **seqid**: The name of the sequence where the feature is located. 2. **source**: The algorithm or procedure that generated the feature. @@ -462,7 +462,8 @@ This file is a GFF: it describes genes and other features of DNA, RNA and protei 8. **phase**: Phase of CDS features. 9. **attributes**: A list of tag-value pairs separated by a semicolon with additional information about the feature. -The **seqid** corresponds here to the ID of the sequences in the metaplasmidome reference database. So to filter, we need to compare `Metaplasmidome database sequence name` in `Air metagenomes identified as plasmids` to **seqid** by joining the 2 datasets on the column 1. +The **seqid** corresponds here to the ID of the sequences in the metaplasmidome reference database. So to filter, we need to compare `Metaplasmidome database sequence name` in `Air metagenomes identified as plasmids` +to **seqid** by joining the 2 datasets on column 1. The file has with ~85 Million lines but many are comments (lines starting with `##`). @@ -501,7 +502,7 @@ For that, we join the GFF on the SeqID column (column 1) with the `Air metagenom > 1. How many lines have been kept? > 2. Why is there more lines than in the `Air metagenomes identified as plasmids` file? > 2. What are the columns? -> 3. Which columns shoud we keep if we want to keep the Metagenomic sequence name, the feature and the attributes? +> 3. Which columns should we keep if we want to keep the Metagenomic sequence name, the feature and the attributes? > > > > > @@ -552,7 +553,8 @@ Let's filter to keep only the CDS and extract the gene names. > 2. Inspect the generated file {: .hands_on} -We have now a file with 26,329 lines. The 2nd column is not useful so we will remove it. The column 3 (**atributes** in GFF) lists tag-value pairs separated by a semicolon with additional information about the feature. The first lines seems to be hypothetical proteins. If we scroll down, we can find some annotated genes (with `gene` keyword). +We have now a file with 26,329 lines. The 2nd column is not useful so we will remove it. Column 3 (**atributes** in GFF) lists tag-value pairs separated by a semicolon with additional information about the feature. +The first lines seems to be hypothetical proteins. If we scroll down, we can find some annotated genes (with `gene` keyword). It would be good to create a tabular file with: 1. Metagenomic sequence name @@ -582,7 +584,7 @@ As not all genes are annotated (with `gene` keyword), we first need to split the > > -> 1. How many lines have been kept (non hypothetical proteins) and how many have been discarded (hypothetical proteins)? +> 1. How many lines have been kept (non-hypothetical proteins) and how many have been discarded (hypothetical proteins)? > 2. Which information do we have for the 2nd identified gene? > > > @@ -616,7 +618,7 @@ Let's extract gene ID, gene name and the product in different columns from the a > > 3. {% tool [Add Header](toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3) %} with the following parameters: > - *"List of Column headers"*: `Metagenomic sequence name,Gene ID,Gene name,Gene product` -> - {% icon param-file %} *"Data File (tab-delimted)"*: output of **Replace Text** {% icon tool %} +> - {% icon param-file %} *"Data File (tab-delimited)"*: output of **Replace Text** {% icon tool %} > {: .hands_on} @@ -649,7 +651,8 @@ We can now merge both files. ## Add KO and PFAM annotation -Let's expand annotation with **[KO](https://www.genome.jp/kegg/ko.html) (KEGG Orthology)** ({% cite kanehisa2016kegg%}), a database of molecular functions represented in terms of functional orthologs, and **[PFAM](http://pfam.xfam.org/)** ({% cite mistry2021pfam %}), a large collection of protein families. The files are +Let's expand annotation with **[KO](https://www.genome.jp/kegg/ko.html) (KEGG Orthology)** ({% cite kanehisa2016kegg%}), a database of molecular functions +represented in terms of functional orthologs, and **[PFAM](http://pfam.xfam.org/)** ({% cite mistry2021pfam %}), a large collection of protein families. The files are > Import KO and PFAM annotations > @@ -701,7 +704,7 @@ Let's now join the files with `Annotated genes in air metagenomes sequences iden > > 8. {% tool [Add Header](toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3) %} with the following parameters: > - *"List of Column headers"*: `Metagenomic sequence name,Gene ID,Gene name,Gene product,KO ID,KO annotation,PFAM name,PFAM ID,PFAM annotation` -> - {% icon param-file %} *"Data File (tab-delimted)"*: output of **Cut** {% icon tool %} +> - {% icon param-file %} *"Data File (tab-delimited)"*: output of **Cut** {% icon tool %} > > 9. Rename `CDS in metagenomes identified as plasmids + KO + PFAM` {: .hands_on} @@ -730,7 +733,7 @@ Let's look at the KO and PFAM statistics. > {: .question} -Let's extract an overview of the annotations per metagenomic sequence by grouping on the 1st column and counting the number of distinct value on gene ID, gene name, KO ID, PFAM ID. +Let's extract an overview of the annotations per metagenomic sequence by grouping on the 1st column and counting the number of distinct values on gene ID, gene name, KO ID, PFAM ID. > Annotation per metagenomic sequences > @@ -758,7 +761,7 @@ Let's extract an overview of the annotations per metagenomic sequence by groupin > > 3. {% tool [Add Header](toolshed.g2.bx.psu.edu/repos/estrain/add_column_headers/add_column_headers/0.1.3) %} with the following parameters: > - *"List of Column headers"*: `Metagenomic sequence name,Number of CDS,Number of annotated CDS,Number of associated KO,Number of associated PFAM` -> - {% icon param-file %} *"Data File (tab-delimted)"*: output of **Select last** {% icon tool %} +> - {% icon param-file %} *"Data File (tab-delimited)"*: output of **Select last** {% icon tool %} > > 4. Rename `CDS annotation overview per metagenomic sequences` {: .hands_on} From 31a1462c930eabd1c410d5de8a2dbbd736105bd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9r=C3=A9nice=20Batut?= Date: Wed, 18 Dec 2024 09:00:08 +0100 Subject: [PATCH 6/6] Fix Bjoern's comments --- topics/microbiome/tutorials/metaplasmidome_query/tutorial.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md index 338ed8f2ee0bf0..386928eb639880 100644 --- a/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md +++ b/topics/microbiome/tutorials/metaplasmidome_query/tutorial.md @@ -200,7 +200,7 @@ Let's look at the distribution of the mapping score (column 12) > {: .question} -We should remove alignments with a score below. Before that, let's look at the plasmid coverage. We first need to compute it, i.e. the ratio between the number of matching bases in the mapping (Column 10) and plasmid length (target sequence length - Column 7). +We should remove alignments with a score below 40. Before that, let's look at the plasmid coverage. We first need to compute it, i.e. the ratio between the number of matching bases in the mapping (Column 10) and plasmid length (target sequence length - Column 7). > Compute plasmid coverage > 1. {% tool [Cut columns from a table](Cut1) %} with: @@ -243,7 +243,7 @@ A new column has been added (column 13) with the plasmid coverage. Let's now plo > > > > > -> > 1. There are 2 pics: one around 0 (i.e. no plasmid coverage) that slowly decreases until 0.8 and a pic at 1 (full plasmid coverage) +> > 1. There are 2 peaks: one around 0 (i.e. no plasmid coverage) that slowly decreases until 0.8 and a pic at 1 (full plasmid coverage) > > 2. 0.8 seems to be a breaking point and could be a good value to filter. > > > {: .solution}