diff --git a/topics/ecology/tutorials/Manage_AB1_Sanger/data-library.yaml b/topics/ecology/tutorials/Manage_AB1_Sanger/data-library.yaml new file mode 100644 index 00000000000000..fbfe4c53bf87d6 --- /dev/null +++ b/topics/ecology/tutorials/Manage_AB1_Sanger/data-library.yaml @@ -0,0 +1,12 @@ +--- +destination: + type: library + name: GTN - Material + description: Galaxy Training Network Material + synopsis: Galaxy Training Network Material. See https://training.galaxyproject.org +items: +- name: New topic + description: Topic summary + items: + - name: 'Clean and manage Sanger sequences from raw files to aligned consensus ' + items: [] diff --git a/topics/ecology/tutorials/Manage_AB1_Sanger/faqs/index.md b/topics/ecology/tutorials/Manage_AB1_Sanger/faqs/index.md new file mode 100644 index 00000000000000..9ce3fe4fce824b --- /dev/null +++ b/topics/ecology/tutorials/Manage_AB1_Sanger/faqs/index.md @@ -0,0 +1,3 @@ +--- +layout: faq-page +--- diff --git a/topics/ecology/tutorials/Manage_AB1_Sanger/tutorial.bib b/topics/ecology/tutorials/Manage_AB1_Sanger/tutorial.bib new file mode 100644 index 00000000000000..c31856c6b087dc --- /dev/null +++ b/topics/ecology/tutorials/Manage_AB1_Sanger/tutorial.bib @@ -0,0 +1,27 @@ + +# This is the bibliography file for your tutorial. +# +# To add bibliography (bibtex) entries here, follow these steps: +# 1) Find the DOI for the article you want to cite +# 2) Go to https://doi2bib.org and fill in the DOI +# 3) Copy the resulting bibtex entry into this file +# +# To cite the example below, in your tutorial.md file +# use {% cite Batut2018 %} +# +# If you want to cite an online resourse (website etc) +# you can use the 'online' format (see below) +# +# You can remove the examples below + +@article{Garavaglia2022, + doi = {10.1016/j.parkreldis.2022.03.007}, + url = {https://doi.org/10.1016/j.parkreldis.2022.03.007}, + year = {2022}, + volume = {97}, + pages = {52-56}, + author = {Garavaglia B, Vallian S, Romito LM, Straccia G, Capecci M, Invernizzi F, Andrenelli E, Kazemi A, Boesch S, Kopajtich R, Olfati N, Shariati M, Shoeibi A, Sadr-Nabavi A, Prokisch H, Winkelmann J, Zech M.}, + title = {AOPEP variants as a novel cause of recessive dystonia: Generalized dystonia and dystonia-parkinsonism}, + journal = {Parkinsonism and related disorders} +} + diff --git a/topics/ecology/tutorials/Manage_AB1_Sanger/tutorial.md b/topics/ecology/tutorials/Manage_AB1_Sanger/tutorial.md new file mode 100644 index 00000000000000..608112a7bcbbda --- /dev/null +++ b/topics/ecology/tutorials/Manage_AB1_Sanger/tutorial.md @@ -0,0 +1,530 @@ +--- +layout: tutorial_hands_on + +title: 'Clean and manage Sanger sequences from raw files to aligned consensus' +zenodo_link: https://zenodo.org/records/7104640/files/AOPEP_and_CHD8_sequences_20220907.zip?download=1 +questions: +- How to clean Sanger sequencing files? +objectives: +- Learn how to manage sequencing files (AB1, FASTQ, FASTA) +- Learn how to clean your Sanger sequences in an automated and reproducible way +time_estimation: 1H +key_points: +- Check your data and results for mistakes afterward !!!! This procedure is useful but not perfect +contributors: +- ColineRoyaux + +--- + + +# Introduction + +The objective of this tutorial is to learn how to clean and manage AB1 data files freshly obtained from Sanger sequencing. +This kind of sequencing is targeting a specific sequence with short single DNA strands called primers. These primers are delimiting ends of the targeted marker. +Usually, one gets two .ab1 files for each sample, representing the sense (forward) and the antisense (reverse) strands of DNA. + +Here, we'll be using raw data from {% cite Garavaglia2022 %}. +In this article, two DNA markers are investiguated CHD8 (Chromodomain-helicase-DNA-binding protein 8) and AOPEP (Aminopeptidase O Putative). +We'll focus on CHD8 sequences but you can try to apply the same steps on the AOPEP sequences to practice after the tutorial ! + +In the first section of the tutorial, we'll be preparing primer's data by: +- selecting the right primer sequences with the identifier; +- removing eventual gaps included in the sequences; +- and compute the reverse-complement sequence for the antisense primer only. + +In the second section of the tutorial, we'll be preparing the Sanger sequences data by: +- extracting ab1 files of the interest sequence (CHD8) and separating sense and antisense sequences in two distinct data collections; +- converting ab1 files to FASTQ to permit its use in the following tools; +- trimming low quality ends of the sequences; +- compute the reverse-complement for the antisense sequence only; +- align sense and antisense sequences; +- obtain a consensus sequence (which results the correspondance between nucleotides of the sense and the antisense sequences) for each three samples. + +In the third section of the tutorial, primers and all consensus sequences are finally merged into a single file to be aligned and verified. + +> What is the reverse-complement sequence and why computing it for the antisense sequence? +> +> Consider a double-strand DNA molecule with the following sequences: +> ![Double-strand DNA](../../images/Sanger_tuto/Double-strand_DNA.png "Double-strand DNA") +> +> When sequencing, each strand of DNA are read separately in the 5'-3' orientation. Hence, in the sequence files each strand are provided as: +> ![Single-strand DNA sequences in output file](../../images/Sanger_tuto/two_single-strand_sequences.png "Single-strand DNA sequences in output file") +> +> To get the antisense sequence in its original orientation, the reverse sequence is computed: +> ![Reversed antisense sequence](../../images/Sanger_tuto/Reversed-antisense-sequence.png "Reversed antisense sequence") +> +> To align sense and antisense sequence, the complement sequence of the reversed antisense sequence is computed: +> ![Reverse-complement antisense sequence](../../images/Sanger_tuto/Reversed-antisense-sequence.png "Reversed antisense sequence") +> +> The two sequences can be aligned now: +> ![Aligned sense and antisense sequences](../../images/Sanger_tuto/Aligned_sense_antisense.png "Aligned sense and antisense sequences") +> +{: .details} + +> +> +> In this tutorial, we will cover: +> +> 1. TOC +> {:toc} +> +{: .agenda} + + +# Get data + +Authors of {% cite Garavaglia2022 %} have shared openly their raw AB1 files on Zenodo. + +> Data Upload +> +> 1. Create a new history for this tutorial +> 2. Import the files from [Zenodo]({{ page.zenodo_link }}) : +> +> ``` +> https://zenodo.org/records/7104640/files/AOPEP_and_CHD8_sequences_20220907.zip?download=1 +> ``` +> +> Change **Type (set all):** from "Auto-detect" to `zip` and click **Start** +> +> {% snippet faqs/galaxy/datasets_import_via_link.md %} +> +> {% snippet faqs/galaxy/datasets_import_from_data_library.md %} +> +> 4. Create primer FASTA file, copy: +> ``` +> >Forward_CHD8 +> GAGGTGAAAGAATCATAAATTGG +> >Reverse_CHD8 +> CCCTGTGTACAAATAGCTTTTGT +> >Forward_AOPEP +> TCATGGTTCCAGGCAGAGTTATT +> >Reverse_AOPEP +> TGCTGTGACAAGCCAACCAATGG +> ``` +> - Open the Galaxy Upload Manager ({% icon galaxy-upload %} on the top-right of the tool panel) +> - Select **Paste/Fetch Data** +> - Paste into the text field +> - Change **Type (set all):** from "Auto-detect" to `fasta` +> - Change the name from "New File" to "Primer file" +> - Click **Start** +> +> +> Note these primer sequences were invented for the purpose of the tutorial, it is not the sequences used in the publication. +> +{: .hands_on} + +# Prepare primer data + +## Separate and format primers files + +Primers must be separated in distinct files because sense (forward) and antisense (reverse) primers won't be subjected to the same formating. + +> Create separate files for each primer +> +> 1. {% tool [Filter FASTA](toolshed.g2.bx.psu.edu/repos/galaxyp/filter_by_fasta_ids/filter_by_fasta_ids/2.3) %} with the following parameters: +> - {% icon param-file %} *"FASTA sequences"*: `Primer file` +> - *"Criteria for filtering on the headers"*: `Regular expression on the headers` +> - *"Regular expression pattern the header should match"*: `Reverse_CHD8` +> - Add tags "#Primer" and "#Reverse" +> +> {% snippet faqs/galaxy/datasets_add_tag.md %} +> +> {% snippet faqs/galaxy/tools_rerun.md %} +> +> 2. {% tool [Filter FASTA](toolshed.g2.bx.psu.edu/repos/galaxyp/filter_by_fasta_ids/filter_by_fasta_ids/2.3) %} with the following parameters: +> - {% icon param-file %} *"FASTA sequences"*: `Primer file` +> - *"Criteria for filtering on the headers"*: `Regular expression on the headers` +> - *"Regular expression pattern the header should match"*: `Forward_CHD8` +> - Add tags "#Primer" and "#Forward" +> +> {% snippet faqs/galaxy/datasets_add_tag.md %} +> +> 3. Remove eventual gaps from primers {% tool [Degap.seqs](toolshed.g2.bx.psu.edu/repos/iuc/mothur_degap_seqs/mothur_degap_seqs/1.39.5.0) %} with the following parameters: +> +> {% snippet faqs/galaxy/tools_select_multiple_datasets.md %} +> +> - {% icon param-files %} *"fasta - Dataset"*: `Two Filter FASTA outputs` (outputs of **Filter FASTA** {% icon tool %}) +> +{: .hands_on} + +In this previous hands-on, the step of removing eventual gaps (`-` in the FASTA files) is a precaution, there are no gaps in our primers file. However, it is important to remove gaps at this point in case you are using different data, otherwise some steps of the tutorial could fail (e.g. alignment). + +This following hands-on is to be applied only on the sequence of the antisense (reverse) primer. + +> Compute Reverse-Complement of the antisense (reverse) primer +> +> 1. {% tool [Reverse-Complement](toolshed.g2.bx.psu.edu/repos/devteam/fastx_reverse_complement/cshl_fastx_reverse_complement/1.0.2+galaxy0) %} the sequence antisense (reverse) primer with the following parameters: +> - {% icon param-file %} *"Input file in FASTA or FASTQ format"*: `Degap.seqs #Reverse FASTA output` (output of **Degap.seqs** {% icon tool %}) +> +> See in the introduction for explanations on the Reverse-Complement. +> +{: .hands_on} + +# Prepare sequence data + +## Unzip data files + +> Unzip +> +> 1. {% tool [Unzip](toolshed.g2.bx.psu.edu/repos/imgteam/unzip/unzip/6.0+galaxy0) %} with the following parameters: +> - {% icon param-file %} *"input_file"*: `AOPEP_and_CHD8_sequences_20220907.zip?download=1` +> - *"Extract single file"*: `All files` +> +> > ### {% icon question %} Question +> > How many files is there in the ZIP archive ? +> > +> > > ### {% icon solution %} Solution +> > > 12 (if you have a different number of files something likely went srong) +> > > +> > {: .solution} +> > +> {: .question} +> +{: .hands_on} + +From now on, we'll be working a lot on data collections: + +{% snippet faqs/galaxy/tools_select_collection.md %} + +## Filter collection to separate sense and antisense sequence files + +As for primers, sense and antisense sequences will be subjected to slightly different procedures so they must be separated in distinct data collections. + +> Filter +> +> 1. {% tool [Extract element identifiers](toolshed.g2.bx.psu.edu/repos/iuc/collection_element_identifiers/collection_element_identifiers/0.0.2) %} with the following parameters: +> - {% icon param-collection %} *"Dataset collection*: `output collection` (output of **Unzip** {% icon tool %}) +> +> 2. {% tool [Regex Find And Replace](toolshed.g2.bx.psu.edu/repos/galaxyp/regex_find_replace/regex1/1.0.3) %} with the following parameters: +> - {% icon param-file %} *"Select lines from"*: `output` (output of **Extract element identifiers** {% icon tool %}) +> - In *"Check"*: +> - {% icon param-repeat %} *"Insert Check"* +> - *"Find Regex"*: `^[A-Za-z0-9_-]+F$` +> - *"Replacement"*: `` +> - {% icon param-repeat %} *"Insert Check"* +> - *"Find Regex"*: `^[A-Za-z0-9_-]+AOPEP[A-Za-z0-9_-]+$` +> - *"Replacement"*: `` +> - Tag output with "#Reverse" +> +> {% snippet faqs/galaxy/datasets_add_tag.md %} +> +> {% snippet faqs/galaxy/tools_rerun.md %} +> +> 4. {% tool [Regex Find And Replace](toolshed.g2.bx.psu.edu/repos/galaxyp/regex_find_replace/regex1/1.0.3) %} with the following parameters: +> - {% icon param-file %} *"Select lines from"*: `output` (output of **Extract element identifiers** {% icon tool %}) +> - In *"Check"*: +> - {% icon param-repeat %} *"Insert Check"* +> - *"Find Regex"*: `^[A-Za-z0-9_-]+R$` +> - *"Replacement"*: `` +> - {% icon param-repeat %} *"Insert Check"* +> - *"Find Regex"*: `^[A-Za-z0-9_-]+AOPEP[A-Za-z0-9_-]+$` +> - *"Replacement"*: `` +> - Tag output with "#Forward" +> +> {% snippet faqs/galaxy/datasets_add_tag.md %} +> +> 5. {% tool [Filter collection](__FILTER_FROM_FILE__) %} with the following parameters: +> - {% icon param-collection %} *"Input Collection*: `output collection` (output of **Unzip** {% icon tool %}) +> - *"How should the elements to remove be determined?"*: `Remove if identifiers are ABSENT from file` +> - {% icon param-files %} *"Filter out identifiers absent from"*: `#Forward files list` & `#Reverse files list` (output of **Regex Find And Replace** {% icon tool %}) +> - Tag `(filtered)` outputs with "#Forward" and "#Reverse" +> +> {% snippet faqs/galaxy/datasets_add_tag.md %} +> +> > What's happening in this section? +> > +> > First step: Extracting the list of file names in the data collection +> > Second step: Removing file names containing a "F" and "AOPEP" -> creating a list of antisense (reverse) sequence files of the marker CHD8 +> > Third step: Removing file names containing a "R" and "AOPEP" -> creating a list of sense (forward) sequence files of the marker CHD8 +> > Fourth step: Select files in the collection -> creating two distinct collections with sense (forward) sequence files on one hand and antisense (reverse) sequence file on the other hand +> > +> > For the second and third step, we used regular expressions (Regex): +> > +> > {% snippet faqs/galaxy/analysis_regular_expressions.md %} +> > +> > With `[A-Za-z0-9_-]` meaning any character between A to Z, a to z, 0 to 9 or _ or -, the following `+` meaning that any of these characters are found once or more. +> > +> {: .comment} +> +{: .hands_on} + +## Convert AB1 sequence files to FASTQ and trim low-quality ends + +In Sanger sequencing, ends tend to be of low trust levels (each nucleotide has a quality score reflecting this trust level), it is important to delete these sections of the sequences to ensure wrong nucleotides aren't introduced in the sequences. + +> AB1 to FASTQ files and trim low quality ends +> +> Do these steps twice !! We have Froward and antisense (reverse) sequence data collections, do these steps starting with each "(filtered)" data collections, this could help: +> +> {% snippet faqs/galaxy/tools_rerun.md %} +> +> 1. {% tool [ab1 to FASTQ converter](toolshed.g2.bx.psu.edu/repos/ecology/ab1_fastq_converter/ab1_fastq_converter/1.20.0) %} with the following parameters: +> - {% icon param-collection %} *"Input ab1 file"*: `(filtered) output collection` (output of **Filter collection** {% icon tool %}) +> - *"Do you want trim ends according to quality scores ?"*: `No, use full sequences.` +> +> In this tool, it is possible to trim low-quality ends along with the conversion of the file but parametrization is less precise. +> +> 2. {% tool [seqtk_trimfq](toolshed.g2.bx.psu.edu/repos/iuc/seqtk/seqtk_trimfq/1.3.1) %} with the following parameters: +> - {% icon param-collection %} *"Input FASTA/Q file"*: `output collection` (output of **ab1 to FASTQ converter** {% icon tool %}) +> - *"Mode for trimming FASTQ File"*: `Quality` +> - *"Maximally trim down to INT bp"*: `0` +> +{: .hands_on} + +## Compute reverse complement sequence for antisense (reverse) sequences only + +See in the introduction for explanations on the Reverse-Complement. + +> Reverse complement +> +> 1. {% tool [FASTQ Groomer](toolshed.g2.bx.psu.edu/repos/devteam/fastq_groomer/fastq_groomer/1.1.5) %} with the following parameters: +> - {% icon param-collection %} *"File to groom"*: `#Reverse output collection` (output of **seqtk_trimfq** {% icon tool %}) +> - *"Advanced Options"*: `Show Advanced Options` +> - *"Summarize input data"*: `Do not Summarize Input (faster)` +> +> > What is this step? +> > +> > It is a necessary step to get the right input format for the following step **Reverse-Complement** {% icon tool %} +> {: .comment} +> +> 2. {% tool [Reverse-Complement](toolshed.g2.bx.psu.edu/repos/devteam/fastx_reverse_complement/cshl_fastx_reverse_complement/1.0.2+galaxy0) %} with the following parameters: +> - {% icon param-collection %} *"Input file in FASTA or FASTQ format"*: `#Reverse output collection` (output of **FASTQ Groomer** {% icon tool %}) +> +> +{: .hands_on} + +## Merge corresponding sense and antisense sequences single files + +> Sort collections +> +> Do this step twice !! One has to make sure sense (forward) and antisense (reverse) sequences collections are in the same order to get the right sense and the right antisense sequence to be merged together +> +> {% snippet faqs/galaxy/tools_rerun.md %} +> +> 1. {% tool [Sort collection](__SORTLIST__) %} with the following parameters: +> - {% icon param-collection %} *"Input Collection"*: `Collection` (output of **seqtk_trimfq** {% icon tool %} & output of **Reverse-Complement** {% icon tool %}) +> - *"Sort type"*: `alphabetical` +> +{: .hands_on} + +> Merge sense (forward) and antisense (reverse) sequence files +> +> 1. {% tool [seqtk_mergepe](toolshed.g2.bx.psu.edu/repos/iuc/seqtk/seqtk_mergepe/1.3.1) %} with the following parameters: +> - {% icon param-collection %} *"Input FASTA/Q file #1"*: `output` (output of **Sort collection** {% icon tool %}) +> - {% icon param-collection %} *"Input FASTA/Q file #2"*: `output` (output of **Sort collection** {% icon tool %}) +> +> Check there is two sequences in each three files of the newly-created collection. +> +{: .hands_on} + +## Convert FASTQ files to FASTA + +> FASTQ to FASTA +> +> 1. {% tool [FASTQ Groomer](toolshed.g2.bx.psu.edu/repos/devteam/fastq_groomer/fastq_groomer/1.1.5) %} with the following parameters: +> - {% icon param-collection %} *"File to groom"*: `default` (output of **seqtk_mergepe** {% icon tool %}) +> - *"Advanced Options"*: `Show Advanced Options` +> - *"Summarize input data"*: `Do not Summarize Input (faster)` +> +> > What is this step? +> > +> > It is a necessary step to get the right input format for the following step **FASTQ to FASTA** {% icon tool %} +> > +> {: .comment} +> +> 1. {% tool [FASTQ to FASTA](toolshed.g2.bx.psu.edu/repos/devteam/fastq_to_tabular/fastq_to_tabular/1.1.5) %} with the following parameters: +> - {% icon param-collection %} *"FASTQ file to convert"*: `output collection` (output of **FASTQ Groomer** {% icon tool %}) +> - *"Discard sequences with unknown (N) bases"*: `no` +> - *"Rename sequence names in output file (reduces file size)"*: `no` +> - *"Compress output FASTA"*: `No` +> +> > information +> > +> > If this step doesn't work, one can try tools **FASTQ to tabular** {% icon tool %} and **tabular to FASTA** {% icon tool %} instead +> {: .comment} +> +{: .hands_on} + +## Align sequences and retrieve consensus for each sequence + +> Align and consensus +> +> 1. {% tool [Align sequences](toolshed.g2.bx.psu.edu/repos/iuc/qiime_align_seqs/qiime_align_seqs/1.9.1.0) %} with the following parameters: +> - {% icon param-collection %} *"Input fasta file"*: `output collection` (output of **Tabular-to-FASTA** {% icon tool %}) +> - *"Method for aligning sequences"*: `clustalw` +> - *"Minimum percent sequence identity to closest blast hit to include sequence in alignment"*: `0.1` +> +> 2. {% tool [Consensus sequence from aligned FASTA](toolshed.g2.bx.psu.edu/repos/ecology/aligned_to_consensus/aligned_to_consensus/1.0.0) %} with the following parameters: +> - {% icon param-collection %} *"Input fasta file with at least two sequences"*: `aligned_sequences` (output of **Align sequences** {% icon tool %}) +> - Add tag "#Consensus" +> +> 3. {% tool [Merge.files](toolshed.g2.bx.psu.edu/repos/iuc/mothur_merge_files/mothur_merge_files/1.39.5.0) %} with the following parameters: +> - *"Merge"*: `fasta files` +> - {% icon param-collection %} *"inputs - fasta"*: `output collection` (output of **Consensus sequence from aligned FASTA** {% icon tool %}) +> +{: .hands_on} + +# Manage primers and sequences + +## Merge and align consensus sequences file and primer files + +> Merge and format consensus sequences + primers file +> +> 1. {% tool [Merge.files](toolshed.g2.bx.psu.edu/repos/iuc/mothur_merge_files/mothur_merge_files/1.39.5.0) %} with the following parameters: +> - *"Merge"*: `fasta files` +> - {% icon param-files %} *"inputs - fasta"*: `consensus sequences` (output of **Merge.files** {% icon tool %}), `Reverse primer` (output of **Reverse-Complement** {% icon tool %}), `Forward primer` (output of **Degap.seqs** {% icon tool %}) +> +> {% snippet tools_select_multiple_datasets.md %} +> +> - Remove tags "#Forward" and "#Reverse" +> +> 2. {% tool [Regex Find And Replace](toolshed.g2.bx.psu.edu/repos/galaxyp/regex_find_replace/regex1/1.0.3) %} with the following parameters: +> - {% icon param-file %} *"Select lines from"*: `output` (output of **Merge.files** {% icon tool %}) +> - In *"Check"*: +> - {% icon param-repeat %} *"Insert Check"* +> - *"Find Regex"*: `([A-Z-])>` +> - *"Replacement"*: `\1\n>` +> +> > What's going on in this second step? +> > +> > Sometimes, **Merge.files** {% icon tool %} doesn't keep linefeed between the files, this step permits to correct it and get a FASTA file that is formatted properly. +> > +> > For the second step, we used regular expressions (Regex): +> > +> > {% snippet faqs/galaxy/analysis_regular_expressions.md %} +> > +> > With `[A-Z-]` meaning any character between A to Z or -, `\1` repeat the character chain between brackets in the *"Find Regex"* section, `\n` meaning a line-feed. +> > +> {: .comment} +> +{: .hands_on} + +When you have the consensus sequences, you can check if any ambiguous nucleotide is to be found in the sequences. If you find such nucleotides, it means different nucleotides were found in the sense and antisense sequence at the same position, some checks are needed. + +> Ambiguous nucleotide correspondance +> +> - Y = C or T +> - R = A or G +> - W = A or T +> - S = G or C +> - K = T or G +> - M = C or A +> +{: .details} + +> Look for ambiguous nucleotides +> +> 1. Click on output of **Regex Find and Replace** {% icon tool %} in the history to expand it +> +> 2. Click on {% icon galaxy-barchat %} Visualize +> +> 3. Select **Multiple Sequence Alignment** +> +> 4. Set color scheme to `Clustal`, ambiguous nucleotides are highlighted in dark blue +> +> 5. There are two nucleotide positions to check, Y at 121 in sequence `consensus_B05_CHD8-III6brother-18` and W at 286 in sequence `consensus_05_CHD8-III6mother-18` +> +> 6. You need to go back to your FASTQ sequences to understand the origin of the ambiguity +> +> 7. {% tool [Regex Find And Replace](toolshed.g2.bx.psu.edu/repos/galaxyp/regex_find_replace/regex1/1.0.3) %} with the following parameters: +> - {% icon param-file %} *"Select lines from"*: `#Consensus #Primer output` (output of **Regex Find and Replace** {% icon tool %}) +> - In *"Check"*: +> - {% icon param-repeat %} *"Insert Check"* +> - *"Find Regex"*: `^[ACTG]+([ACTG]{20}Y)[ACTG]+$` +> - *"Replacement"*: `\1` +> - {% icon param-repeat %} *"Insert Check"* +> - *"Find Regex"*: `^[ACTG]+([ACTG]{20}W)[ACTG]+$` +> - *"Replacement"*: `\1` +> +> > What's going on in this step? +> > +> > We want to retrieve the 20 nucleotides before the ambiguities. +> > +> > We use regular expressions (Regex): +> > +> > {% snippet faqs/galaxy/analysis_regular_expressions.md %} +> > +> > With `[ACTG]` meaning any character of the four unambiguous nucleotides followed by `+` meaning "at least once in the character chain" or by {20} meaning "20 times". +> > +> {: .comment} +> +> In the output of this tool we get: +> - the 20 nucleotides before the Y at position 121 in sequence `consensus_B05_CHD8-III6brother-18`: `CAGGCACGATGTCATCGAAT` +> - and the 20 nuleotides before the W at position 286 in sequence `consensus_05_CHD8-III6mother-18`: `AGTCCTCTTAGTTTATAGAT` +> +> 8. {% tool [FASTQ masker](toolshed.g2.bx.psu.edu/repos/devteam/fastq_masker_by_quality/fastq_masker_by_quality/1.1.5) %} with the following parameters: +> - {% icon param-collection %} *"File to mask"*: `#Forward #Reverse collection` (output of **FASTQ groomer** {% icon tool %}) +> - *"Mask input with"*: `Lowercase` +> - *"Quality score"*: `10` +> +> This tool displays low-quality bases in lowercase to permit better detection of potential errors. +> +> 9. Open {% icon galaxy-eye %} `B05_CHD8-III6brother-18` output of **FASTQ masker** {% icon tool %} and ctrl+f : `CAGGCACGATGTCATCGAAT`. +> In the sense sequence (ID ending with 18F), this fragment is followed by a `c` in low-quality, whereas in the antisense sequence it is followed by a `T` in decent quality. +> Additionally, when looking into the {% icon galaxy-eye %} `#Consensus #Primer` output of **Regex Find and Replace** {% icon tool %}, we can see the two other consensus sequences (`consensus_05_CHD8-III6mother-18` and `consensus_07_CHD8-III6-18`) have a `T` at this same position. +> It seems more likely that the nucleotide at position 121 in sequence `consensus_B05_CHD8-III6brother-18` is a `T`. +> +> 10. Open {% icon galaxy-eye %} `05_CHD8-III6mother-18` outputs of **FASTQ masker** {% icon tool %} and ctrl+f : `AGTCCTCTTAGTTTATAGAT`. +> In the antisense sequence (ID ending with 18R), this fragment is followed by a `t` in low-quality, whereas in the sense sequence it is followed by a `A` in decent quality. +> Additionally, when looking into the {% icon galaxy-eye %} `#Consensus #Primer` output of **Regex Find and Replace** {% icon tool %}, we can see the two other consensus sequences (`consensus_B05_CHD8-III6brother-18` and `consensus_07_CHD8-III6-18`) have a `A` at this same position. +> It seems more likely that the nucleotide at position 286 in sequence `consensus_05_CHD8-III6mother-18` is a `A`. +> +> 11. You can now correct them by clicking on output of **Regex Find and Replace** {% icon tool %} in the history to expand it +> +> 12. Click on {% icon galaxy-barchat %} Visualize +> +> 13. Select **Editor** and: +> - replace manually the `Y` with `T` in `consensus_B05_CHD8-III6brother-18` +> - replace manually the `W` with `A` in `consensus_05_CHD8-III6mother-18` +> and click on **export** +> +{: .hands_on} + +Now, one can align its sequences with primers. Ultimately, it is common to cut sequences between primers to get the right fragment for each sequence. + +> Align sequences and primers +> +> 1. {% tool [Align sequences](toolshed.g2.bx.psu.edu/repos/iuc/qiime_align_seqs/qiime_align_seqs/1.9.1.0) %} with the following parameters: +> - {% icon param-file %} *"Input fasta file"*: `out_file1` **Regex Find And Replace (modified)** +> - *"Method for aligning sequences"*: `mafft` +> - *"Minimum percent sequence identity to closest blast hit to include sequence in alignment"*: `0.1` +> +{: .hands_on} + +## Check your sequences belongs to the right taxonomic group by computing a BLAST on the NCBI database + +> NVBI Blast +> +> 1. {% tool [NCBI BLAST+ blastn](toolshed.g2.bx.psu.edu/repos/devteam/ncbi_blast_plus/ncbi_blastn_wrapper/2.10.1+galaxy2) %} with the following parameters: +> - {% icon param-file %} *"Nucleotide query sequence(s)"*: `out_file1` (output of **Regex Find And Replace** {% icon tool %}) +> - *"Subject database/sequences"*: `Locally installed BLAST database` +> - *"Nucleotide BLAST database"*: select most recent `nt_` database +> - *"Output format"*: `Tabular (select which columns)` +> - *"Standard columns"*: `qseqid`, `pident`, `mismatch` and `gapopen` +> - *"Extended columns"*: `gaps` and `salltitles` +> - *"Other identifier columns"*: `saccver` +> - *"Advanced Options"*: `Show Advanced Options` +> - *"Maximum hits to consider/show"*: `10` +> - *"Restrict search of database to a given set of ID's"*: `No restriction, search the entire database` +> +> > ### {% icon question %} Question +> > The sequences we cleaned belong to what species? +> > +> > > ### {% icon solution %} Solution +> > > *Homo sapiens* +> > > +> > {: .solution} +> > +> {: .question} +> +{: .hands_on} + +It is a good practice to proceed to such checks, its permits to make sure the sequencing went as planned and your samples haven't been contaminated. + +# Conclusion + +We successfully cleaned AB1 sequence files ! + +# AOPEP Sanger files + +The history following the same steps but for AOPEP marker files is available [here](https://usegalaxy.fr/u/coline_royaux/h/tuto-sanger-w-aopep) diff --git a/topics/ecology/tutorials/Manage_AB1_Sanger/workflows/index.md b/topics/ecology/tutorials/Manage_AB1_Sanger/workflows/index.md new file mode 100644 index 00000000000000..e092e0ae66ddd4 --- /dev/null +++ b/topics/ecology/tutorials/Manage_AB1_Sanger/workflows/index.md @@ -0,0 +1,3 @@ +--- +layout: workflow-list +--- diff --git a/topics/ecology/tutorials/Manage_AB1_Sanger/workflows/main_workflow.ga b/topics/ecology/tutorials/Manage_AB1_Sanger/workflows/main_workflow.ga new file mode 100644 index 00000000000000..82e5ba3f602d3a --- /dev/null +++ b/topics/ecology/tutorials/Manage_AB1_Sanger/workflows/main_workflow.ga @@ -0,0 +1 @@ +{"a_galaxy_workflow": "true", "annotation": "", "format-version": "0.1", "name": "Sanger 1 : Training specific", "steps": {"0": {"annotation": "", "content_id": null, "errors": null, "id": 0, "input_connections": {}, "inputs": [{"description": "", "name": "Prim_REV"}], "label": "Prim_REV", "name": "Input dataset", "outputs": [], "position": {"left": 0, "top": 0}, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", "tool_version": null, "type": "data_input", "uuid": "bdced581-2469-4823-9302-966510bdb9c4", "when": null, "workflow_outputs": []}, "1": {"annotation": "", "content_id": null, "errors": null, "id": 1, "input_connections": {}, "inputs": [{"description": "", "name": "Prim_FWD"}], "label": "Prim_FWD", "name": "Input dataset", "outputs": [], "position": {"left": 0, "top": 120}, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", "tool_version": null, "type": "data_input", "uuid": "76aee6cd-7d9f-498e-a36f-e0388d99495b", "when": null, "workflow_outputs": []}, "2": {"annotation": "", "content_id": null, "errors": null, "id": 2, "input_connections": {}, "inputs": [{"description": "", "name": "AOPEP_and_CHD8_sequences_20220907.zip?download=1"}], "label": "AOPEP_and_CHD8_sequences_20220907.zip?download=1", "name": "Input dataset", "outputs": [], "position": {"left": 0, "top": 240}, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null}", "tool_version": null, "type": "data_input", "uuid": "5ee4a241-d89e-4839-9080-1400d8789aa6", "when": null, "workflow_outputs": []}, "3": {"annotation": "", "content_id": null, "errors": null, "id": 3, "input_connections": {}, "inputs": [{"description": "", "name": "Input Dataset Collection"}], "label": "Input Dataset Collection", "name": "Input dataset collection", "outputs": [], "position": {"left": 0, "top": 360}, "tool_id": null, "tool_state": "{\"optional\": false, \"tag\": null, \"collection_type\": \"list\"}", "tool_version": null, "type": "data_collection_input", "uuid": "deed4184-c55b-42da-bd44-b20cabe7f825", "when": null, "workflow_outputs": []}, "4": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/collection_element_identifiers/collection_element_identifiers/0.0.2", "errors": null, "id": 4, "input_connections": {}, "inputs": [], "label": null, "name": "Extract element identifiers", "outputs": [{"name": "output", "type": "txt"}], "position": {"left": 0, "top": 480}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/collection_element_identifiers/collection_element_identifiers/0.0.2", "tool_shed_repository": {"changeset_revision": "d3c07d270a50", "name": "collection_element_identifiers", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"ab1\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input_collection\": null, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "0.0.2", "type": "tool", "uuid": "9b9cf2a9-b9e2-40f6-9790-68f0a700e0bb", "when": null, "workflow_outputs": []}, "5": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/galaxyp/filter_by_fasta_ids/filter_by_fasta_ids/2.3", "errors": null, "id": 5, "input_connections": {"input": {"id": 0, "output_name": "output"}}, "inputs": [], "label": null, "name": "Filter FASTA", "outputs": [{"name": "output", "type": "fasta"}], "position": {"left": 220, "top": 360}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/galaxyp/filter_by_fasta_ids/filter_by_fasta_ids/2.3", "tool_shed_repository": {"changeset_revision": "dff7df6fcab5", "name": "filter_by_fasta_ids", "owner": "galaxyp", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fasta\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"dedup\": false, \"header_criteria\": {\"header_criteria_select\": \"regexp\", \"__current_case__\": 2, \"regexp\": \"Reverse_CHD8\"}, \"input\": {\"__class__\": \"ConnectedValue\"}, \"output_discarded\": false, \"sequence_criteria\": {\"sequence_criteria_select\": \"\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.3", "type": "tool", "uuid": "57f94d6d-7b6d-46e5-970c-4c291b692d49", "when": null, "workflow_outputs": []}, "6": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/galaxyp/filter_by_fasta_ids/filter_by_fasta_ids/2.3", "errors": null, "id": 6, "input_connections": {"input": {"id": 3, "output_name": "output"}}, "inputs": [], "label": null, "name": "Filter FASTA", "outputs": [{"name": "output", "type": "fasta"}], "position": {"left": 220, "top": 240}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/galaxyp/filter_by_fasta_ids/filter_by_fasta_ids/2.3", "tool_shed_repository": {"changeset_revision": "dff7df6fcab5", "name": "filter_by_fasta_ids", "owner": "galaxyp", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fasta\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"dedup\": false, \"header_criteria\": {\"header_criteria_select\": \"regexp\", \"__current_case__\": 2, \"regexp\": \"Forward_CHD8\"}, \"input\": {\"__class__\": \"ConnectedValue\"}, \"output_discarded\": false, \"sequence_criteria\": {\"sequence_criteria_select\": \"\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.3", "type": "tool", "uuid": "2fc30511-f1de-43b9-810c-00192439fa89", "when": null, "workflow_outputs": []}, "7": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/galaxyp/regex_find_replace/regex1/1.0.3", "errors": null, "id": 7, "input_connections": {"input": {"id": 4, "output_name": "output"}}, "inputs": [], "label": null, "name": "Regex Find And Replace", "outputs": [{"name": "out_file1", "type": "input"}], "position": {"left": 220, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/galaxyp/regex_find_replace/regex1/1.0.3", "tool_shed_repository": {"changeset_revision": "503bcd6ebe4b", "name": "regex_find_replace", "owner": "galaxyp", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"checks\": [{\"__index__\": 0, \"pattern\": \"^[A-Za-z0-9_-]+F$\", \"replacement\": \"\"}, {\"__index__\": 1, \"pattern\": \"^[A-Za-z0-9_-]+AOPEP[A-Za-z0-9_-]+$\", \"replacement\": \"\"}], \"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.3", "type": "tool", "uuid": "a5d5e2c6-3a1a-4f10-a83c-702b27f8d56d", "when": null, "workflow_outputs": []}, "8": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/galaxyp/regex_find_replace/regex1/1.0.3", "errors": null, "id": 8, "input_connections": {"input": {"id": 4, "output_name": "output"}}, "inputs": [], "label": null, "name": "Regex Find And Replace", "outputs": [{"name": "out_file1", "type": "input"}], "position": {"left": 220, "top": 120}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/galaxyp/regex_find_replace/regex1/1.0.3", "tool_shed_repository": {"changeset_revision": "503bcd6ebe4b", "name": "regex_find_replace", "owner": "galaxyp", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"checks\": [{\"__index__\": 0, \"pattern\": \"^[A-Za-z0-9_-]+R$\", \"replacement\": \"\"}, {\"__index__\": 1, \"pattern\": \"^[A-Za-z0-9_-]+AOPEP[A-Za-z0-9_-]+$\", \"replacement\": \"\"}], \"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.3", "type": "tool", "uuid": "eb633850-7c33-4141-a2f4-395462616e44", "when": null, "workflow_outputs": []}, "9": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/mothur_degap_seqs/mothur_degap_seqs/1.39.5.0", "errors": null, "id": 9, "input_connections": {"fasta": {"id": 5, "output_name": "output"}}, "inputs": [], "label": null, "name": "Degap.seqs", "outputs": [{"name": "out_fasta", "type": "input"}], "position": {"left": 440, "top": 240}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/mothur_degap_seqs/mothur_degap_seqs/1.39.5.0", "tool_shed_repository": {"changeset_revision": "6f08af23888a", "name": "mothur_degap_seqs", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"fasta\": {\"__class__\": \"ConnectedValue\"}, \"savelog\": false, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.39.5.0", "type": "tool", "uuid": "c2a25aef-09a8-4a5f-bb68-72e1310a3304", "when": null, "workflow_outputs": []}, "10": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/mothur_degap_seqs/mothur_degap_seqs/1.39.5.0", "errors": null, "id": 10, "input_connections": {"fasta": {"id": 6, "output_name": "output"}}, "inputs": [], "label": null, "name": "Degap.seqs", "outputs": [{"name": "out_fasta", "type": "input"}], "position": {"left": 440, "top": 120}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/mothur_degap_seqs/mothur_degap_seqs/1.39.5.0", "tool_shed_repository": {"changeset_revision": "6f08af23888a", "name": "mothur_degap_seqs", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"fasta\": {\"__class__\": \"ConnectedValue\"}, \"savelog\": false, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.39.5.0", "type": "tool", "uuid": "ddfbab35-ae24-482f-a856-d0830335ff28", "when": null, "workflow_outputs": []}, "11": {"annotation": "", "content_id": "__FILTER_FROM_FILE__", "errors": null, "id": 11, "input_connections": {"how|filter_source": {"id": 7, "output_name": "out_file1"}}, "inputs": [], "label": null, "name": "Filter collection", "outputs": [{"name": "output_filtered", "type": "input"}, {"name": "output_discarded", "type": "input"}], "position": {"left": 440, "top": 0}, "post_job_actions": {}, "tool_id": "__FILTER_FROM_FILE__", "tool_state": "{\"how\": {\"how_filter\": \"remove_if_absent\", \"__current_case__\": 0, \"filter_source\": {\"__class__\": \"ConnectedValue\"}}, \"input\": null, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.0", "type": "tool", "uuid": "7399dd5b-97de-45d7-9ff4-764eae73d2d7", "when": null, "workflow_outputs": []}, "12": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastx_reverse_complement/cshl_fastx_reverse_complement/1.0.2+galaxy0", "errors": null, "id": 12, "input_connections": {"input": {"id": 9, "output_name": "out_fasta"}}, "inputs": [], "label": null, "name": "Reverse-Complement", "outputs": [{"name": "output", "type": "input"}], "position": {"left": 660, "top": 240}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastx_reverse_complement/cshl_fastx_reverse_complement/1.0.2+galaxy0", "tool_shed_repository": {"changeset_revision": "6027ef51ef91", "name": "fastx_reverse_complement", "owner": "devteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fasta\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"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.2+galaxy0", "type": "tool", "uuid": "f54f92a7-11b0-4ea1-94bd-baa01e554fa4", "when": null, "workflow_outputs": []}, "13": {"annotation": "", "content_id": "__FILTER_FROM_FILE__", "errors": null, "id": 13, "input_connections": {"how|filter_source": {"id": 8, "output_name": "out_file1"}, "input": {"id": 11, "output_name": "output_discarded"}}, "inputs": [], "label": null, "name": "Filter collection", "outputs": [{"name": "output_filtered", "type": "input"}, {"name": "output_discarded", "type": "input"}], "position": {"left": 660, "top": 0}, "post_job_actions": {}, "tool_id": "__FILTER_FROM_FILE__", "tool_state": "{\"how\": {\"how_filter\": \"remove_if_absent\", \"__current_case__\": 0, \"filter_source\": {\"__class__\": \"ConnectedValue\"}}, \"input\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.0", "type": "tool", "uuid": "51b5c203-ca93-4b03-9bb2-748cc555e0e6", "when": null, "workflow_outputs": []}, "14": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/ecology/ab1_fastq_converter/ab1_fastq_converter/1.20.0", "errors": null, "id": 14, "input_connections": {"input": {"id": 11, "output_name": "output_filtered"}}, "inputs": [], "label": null, "name": "ab1 to FASTQ converter", "outputs": [{"name": "output", "type": "fastq"}], "position": {"left": 660, "top": 120}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/ecology/ab1_fastq_converter/ab1_fastq_converter/1.20.0", "tool_shed_repository": {"changeset_revision": "307518fb51af", "name": "ab1_fastq_converter", "owner": "ecology", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"ab1\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"tr\": {\"trim\": \"false\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.20.0", "type": "tool", "uuid": "4d693c43-bf2d-4f12-a6a2-6da7e95926a5", "when": null, "workflow_outputs": []}, "15": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/ecology/ab1_fastq_converter/ab1_fastq_converter/1.20.0", "errors": null, "id": 15, "input_connections": {"input": {"id": 13, "output_name": "output_filtered"}}, "inputs": [], "label": null, "name": "ab1 to FASTQ converter", "outputs": [{"name": "output", "type": "fastq"}], "position": {"left": 880, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/ecology/ab1_fastq_converter/ab1_fastq_converter/1.20.0", "tool_shed_repository": {"changeset_revision": "307518fb51af", "name": "ab1_fastq_converter", "owner": "ecology", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"ab1\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"tr\": {\"trim\": \"false\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.20.0", "type": "tool", "uuid": "0392ee35-43fd-4ca9-bf2d-236a0259c76b", "when": null, "workflow_outputs": []}, "16": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seqtk/seqtk_trimfq/1.3.1", "errors": null, "id": 16, "input_connections": {"in_file": {"id": 14, "output_name": "output"}}, "inputs": [], "label": null, "name": "seqtk_trimfq", "outputs": [{"name": "default", "type": "input"}], "position": {"left": 880, "top": 120}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seqtk/seqtk_trimfq/1.3.1", "tool_shed_repository": {"changeset_revision": "3da72230c066", "name": "seqtk", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fastq\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"in_file\": {\"__class__\": \"ConnectedValue\"}, \"mode\": {\"mode_select\": \"quality\", \"__current_case__\": 0, \"q\": \"0.05\", \"l\": \"0\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.3.1", "type": "tool", "uuid": "a48d5961-e35c-4937-9946-212d1e71ad89", "when": null, "workflow_outputs": []}, "17": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seqtk/seqtk_trimfq/1.3.1", "errors": null, "id": 17, "input_connections": {"in_file": {"id": 15, "output_name": "output"}}, "inputs": [], "label": null, "name": "seqtk_trimfq", "outputs": [{"name": "default", "type": "input"}], "position": {"left": 1100, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seqtk/seqtk_trimfq/1.3.1", "tool_shed_repository": {"changeset_revision": "3da72230c066", "name": "seqtk", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fastq\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"in_file\": {\"__class__\": \"ConnectedValue\"}, \"mode\": {\"mode_select\": \"quality\", \"__current_case__\": 0, \"q\": \"0.05\", \"l\": \"0\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.3.1", "type": "tool", "uuid": "d341c1bb-164e-47ab-8d10-be9de9f87ea4", "when": null, "workflow_outputs": []}, "18": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastq_groomer/fastq_groomer/1.1.5", "errors": null, "id": 18, "input_connections": {"input_file": {"id": 16, "output_name": "default"}}, "inputs": [], "label": null, "name": "FASTQ Groomer", "outputs": [{"name": "output_file", "type": "fastqsanger"}], "position": {"left": 1100, "top": 120}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastq_groomer/fastq_groomer/1.1.5", "tool_shed_repository": {"changeset_revision": "47e5dbc3e790", "name": "fastq_groomer", "owner": "devteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fastq\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input_file\": {\"__class__\": \"ConnectedValue\"}, \"input_type\": \"sanger\", \"options_type\": {\"options_type_selector\": \"advanced\", \"__current_case__\": 1, \"output_type\": \"sanger\", \"force_quality_encoding\": \"ascii\", \"summarize_input\": \"dont_summarize_input\", \"fix_id\": true}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.1.5", "type": "tool", "uuid": "37865ba1-9c1a-49c3-804c-67c9dc4a67f3", "when": null, "workflow_outputs": []}, "19": {"annotation": "", "content_id": "__SORTLIST__", "errors": null, "id": 19, "input_connections": {"input": {"id": 17, "output_name": "default"}}, "inputs": [], "label": null, "name": "Sort collection", "outputs": [{"name": "output", "type": "input"}], "position": {"left": 1320, "top": 120}, "post_job_actions": {}, "tool_id": "__SORTLIST__", "tool_state": "{\"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"sort_type\": {\"sort_type\": \"alpha\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.0", "type": "tool", "uuid": "814097bf-b6b3-4c15-b6a6-8e99fb30ea69", "when": null, "workflow_outputs": []}, "20": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastx_reverse_complement/cshl_fastx_reverse_complement/1.0.2+galaxy0", "errors": null, "id": 20, "input_connections": {"input": {"id": 18, "output_name": "output_file"}}, "inputs": [], "label": null, "name": "Reverse-Complement", "outputs": [{"name": "output", "type": "input"}], "position": {"left": 1320, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastx_reverse_complement/cshl_fastx_reverse_complement/1.0.2+galaxy0", "tool_shed_repository": {"changeset_revision": "6027ef51ef91", "name": "fastx_reverse_complement", "owner": "devteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fastqsanger\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"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.2+galaxy0", "type": "tool", "uuid": "c921be8c-48ef-4733-9498-0e0e70be1df9", "when": null, "workflow_outputs": []}, "21": {"annotation": "", "content_id": "__SORTLIST__", "errors": null, "id": 21, "input_connections": {"input": {"id": 20, "output_name": "output"}}, "inputs": [], "label": null, "name": "Sort collection", "outputs": [{"name": "output", "type": "input"}], "position": {"left": 1540, "top": 0}, "post_job_actions": {}, "tool_id": "__SORTLIST__", "tool_state": "{\"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"input\": {\"__class__\": \"ConnectedValue\"}, \"sort_type\": {\"sort_type\": \"alpha\", \"__current_case__\": 0}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.0", "type": "tool", "uuid": "8787ee76-7637-4f74-8f1a-16097dc6750f", "when": null, "workflow_outputs": []}, "22": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/seqtk/seqtk_mergepe/1.3.1", "errors": null, "id": 22, "input_connections": {"in_fq1": {"id": 19, "output_name": "output"}, "in_fq2": {"id": 21, "output_name": "output"}}, "inputs": [], "label": null, "name": "seqtk_mergepe", "outputs": [{"name": "default", "type": "input"}], "position": {"left": 1760, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/seqtk/seqtk_mergepe/1.3.1", "tool_shed_repository": {"changeset_revision": "3da72230c066", "name": "seqtk", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fastq\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"in_fq1\": {\"__class__\": \"ConnectedValue\"}, \"in_fq2\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.3.1", "type": "tool", "uuid": "55bdb663-08e1-4ec1-a7b5-d96e3b625709", "when": null, "workflow_outputs": []}, "23": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastq_groomer/fastq_groomer/1.1.5", "errors": null, "id": 23, "input_connections": {"input_file": {"id": 22, "output_name": "default"}}, "inputs": [], "label": null, "name": "FASTQ Groomer", "outputs": [{"name": "output_file", "type": "fastqsanger"}], "position": {"left": 1980, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastq_groomer/fastq_groomer/1.1.5", "tool_shed_repository": {"changeset_revision": "47e5dbc3e790", "name": "fastq_groomer", "owner": "devteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fastq\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input_file\": {\"__class__\": \"ConnectedValue\"}, \"input_type\": \"sanger\", \"options_type\": {\"options_type_selector\": \"advanced\", \"__current_case__\": 1, \"output_type\": \"sanger\", \"force_quality_encoding\": \"ascii\", \"summarize_input\": \"dont_summarize_input\", \"fix_id\": true}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.1.5", "type": "tool", "uuid": "fffbc749-0634-4372-8395-98d6a5e13eba", "when": null, "workflow_outputs": []}, "24": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastq_to_tabular/fastq_to_tabular/1.1.5", "errors": null, "id": 24, "input_connections": {"input_file": {"id": 23, "output_name": "output_file"}}, "inputs": [], "label": null, "name": "FASTQ to Tabular", "outputs": [{"name": "output_file", "type": "tabular"}], "position": {"left": 2200, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/fastq_to_tabular/fastq_to_tabular/1.1.5", "tool_shed_repository": {"changeset_revision": "4b347702c4aa", "name": "fastq_to_tabular", "owner": "devteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fastqsanger\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"descr_columns\": \"1\", \"input_file\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.1.5", "type": "tool", "uuid": "6d32bcbc-e536-4667-adde-dc3fdabd6fa4", "when": null, "workflow_outputs": []}, "25": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/tabular_to_fasta/tab2fasta/1.1.1", "errors": null, "id": 25, "input_connections": {"input": {"id": 24, "output_name": "output_file"}}, "inputs": [], "label": null, "name": "Tabular-to-FASTA", "outputs": [{"name": "output", "type": "fasta"}], "position": {"left": 2420, "top": 0}, "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\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"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": "5bfea9ea-0c8f-4abc-97c4-c097e0e7eda9", "when": null, "workflow_outputs": []}, "26": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/qiime_align_seqs/qiime_align_seqs/1.9.1.0", "errors": null, "id": 26, "input_connections": {"input_fasta_fp": {"id": 25, "output_name": "output"}}, "inputs": [], "label": null, "name": "Align sequences", "outputs": [{"name": "aligned_sequences", "type": "fasta"}, {"name": "log", "type": "txt"}], "position": {"left": 2640, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/qiime_align_seqs/qiime_align_seqs/1.9.1.0", "tool_shed_repository": {"changeset_revision": "e8bb88f051ec", "name": "qiime_align_seqs", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"alignment\": {\"alignment_method\": \"clustalw\", \"__current_case__\": 2}, \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input_fasta_fp\": {\"__class__\": \"ConnectedValue\"}, \"min_length\": null, \"min_percent_id\": \"0.1\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.9.1.0", "type": "tool", "uuid": "838f86b0-ef68-4857-99e6-8737bf9cd10b", "when": null, "workflow_outputs": []}, "27": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/ecology/aligned_to_consensus/aligned_to_consensus/1.0.0", "errors": null, "id": 27, "input_connections": {"input": {"id": 26, "output_name": "aligned_sequences"}}, "inputs": [], "label": null, "name": "Consensus sequence from aligned FASTA", "outputs": [{"name": "output", "type": "fasta"}], "position": {"left": 2860, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/ecology/aligned_to_consensus/aligned_to_consensus/1.0.0", "tool_shed_repository": {"changeset_revision": "0ccbe1c20fc3", "name": "aligned_to_consensus", "owner": "ecology", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"fasta\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"gaps\": false, \"input\": {\"__class__\": \"ConnectedValue\"}, \"method\": \"chr_ambiguity\", \"outog\": false, \"seqtype\": \"DNA\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.0.0", "type": "tool", "uuid": "9e8b47c3-c925-498b-8946-f0cacdfd1fb1", "when": null, "workflow_outputs": []}, "28": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/mothur_merge_files/mothur_merge_files/1.39.5.0", "errors": null, "id": 28, "input_connections": {"merge|inputs": {"id": 27, "output_name": "output"}}, "inputs": [], "label": null, "name": "Merge.files", "outputs": [{"name": "output", "type": "input"}], "position": {"left": 3080, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/mothur_merge_files/mothur_merge_files/1.39.5.0", "tool_shed_repository": {"changeset_revision": "7bd37d6decd9", "name": "mothur_merge_files", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"merge\": {\"type\": \"fasta\", \"__current_case__\": 0, \"inputs\": {\"__class__\": \"ConnectedValue\"}}, \"savelog\": false, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.39.5.0", "type": "tool", "uuid": "43040a78-b2bc-4583-b4da-d71ac6101ae3", "when": null, "workflow_outputs": []}, "29": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/mothur_merge_files/mothur_merge_files/1.39.5.0", "errors": null, "id": 29, "input_connections": {"merge|inputs": [{"id": 28, "output_name": "output"}, {"id": 12, "output_name": "output"}, {"id": 10, "output_name": "out_fasta"}]}, "inputs": [], "label": null, "name": "Merge.files", "outputs": [{"name": "output", "type": "input"}], "position": {"left": 3300, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/mothur_merge_files/mothur_merge_files/1.39.5.0", "tool_shed_repository": {"changeset_revision": "7bd37d6decd9", "name": "mothur_merge_files", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"merge\": {\"type\": \"fasta\", \"__current_case__\": 0, \"inputs\": {\"__class__\": \"ConnectedValue\"}}, \"savelog\": false, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.39.5.0", "type": "tool", "uuid": "027a0aab-4df5-490c-8a24-3bb4975256ed", "when": null, "workflow_outputs": []}, "30": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/galaxyp/regex_find_replace/regex1/1.0.3", "errors": null, "id": 30, "input_connections": {"input": {"id": 29, "output_name": "output"}}, "inputs": [], "label": null, "name": "Regex Find And Replace", "outputs": [{"name": "out_file1", "type": "input"}], "position": {"left": 3520, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/galaxyp/regex_find_replace/regex1/1.0.3", "tool_shed_repository": {"changeset_revision": "503bcd6ebe4b", "name": "regex_find_replace", "owner": "galaxyp", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"checks\": [{\"__index__\": 0, \"pattern\": \"([A-Z-])>\", \"replacement\": \"\\\\1\\\\n>\"}], \"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.3", "type": "tool", "uuid": "0794913d-f2f4-49e6-990d-3a04c7c178e0", "when": null, "workflow_outputs": []}, "31": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/iuc/qiime_align_seqs/qiime_align_seqs/1.9.1.0", "errors": null, "id": 31, "input_connections": {"input_fasta_fp": {"id": 30, "output_name": "out_file1"}}, "inputs": [], "label": null, "name": "Align sequences", "outputs": [{"name": "aligned_sequences", "type": "fasta"}, {"name": "log", "type": "txt"}], "position": {"left": 3740, "top": 0}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/iuc/qiime_align_seqs/qiime_align_seqs/1.9.1.0", "tool_shed_repository": {"changeset_revision": "e8bb88f051ec", "name": "qiime_align_seqs", "owner": "iuc", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"alignment\": {\"alignment_method\": \"mafft\", \"__current_case__\": 4}, \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"input_fasta_fp\": {\"__class__\": \"ConnectedValue\"}, \"min_length\": null, \"min_percent_id\": \"0.1\", \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "1.9.1.0", "type": "tool", "uuid": "32733c8d-163d-4644-b35d-2c451932c9ff", "when": null, "workflow_outputs": []}, "32": {"annotation": "", "content_id": "toolshed.g2.bx.psu.edu/repos/devteam/ncbi_blast_plus/ncbi_blastn_wrapper/2.10.1+galaxy2", "errors": null, "id": 32, "input_connections": {"query": {"id": 30, "output_name": "out_file1"}}, "inputs": [], "label": null, "name": "NCBI BLAST+ blastn", "outputs": [{"name": "output1", "type": "tabular"}], "position": {"left": 3740, "top": 120}, "post_job_actions": {}, "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/ncbi_blast_plus/ncbi_blastn_wrapper/2.10.1+galaxy2", "tool_shed_repository": {"changeset_revision": "0e3cf9594bb7", "name": "ncbi_blast_plus", "owner": "devteam", "tool_shed": "toolshed.g2.bx.psu.edu"}, "tool_state": "{\"__input_ext\": \"input\", \"__workflow_invocation_uuid__\": \"f12bdb84904311eeb9fd00505691a2f4\", \"adv_opts\": {\"adv_opts_selector\": \"advanced\", \"__current_case__\": 1, \"filter_query\": true, \"strand\": \"-strand both\", \"max_hits\": \"10\", \"max_hsps\": null, \"identity_cutoff\": \"0.0\", \"word_size\": null, \"ungapped\": false, \"parse_deflines\": false, \"adv_optional_id_files_opts\": {\"adv_optional_id_files_opts_selector\": \"none\", \"__current_case__\": 0}, \"qcov_hsp_perc\": \"0.0\", \"window_size\": null, \"gapopen\": null, \"gapextend\": null}, \"blast_type\": \"megablast\", \"chromInfo\": \"/shared/ifbstor1/galaxy/mutable-config/tool-data/shared/ucsc/chrom/?.len\", \"db_opts\": {\"db_opts_selector\": \"db\", \"__current_case__\": 0, \"database\": [\"nt_2021-6-21\"], \"histdb\": \"\", \"subject\": \"\"}, \"evalue_cutoff\": \"0.001\", \"output\": {\"out_format\": \"cols\", \"__current_case__\": 2, \"std_cols\": [\"qseqid\", \"pident\", \"mismatch\", \"gapopen\"], \"ext_cols\": [\"gaps\", \"salltitles\"], \"ids_cols\": [\"saccver\"], \"misc_cols\": null, \"tax_cols\": null}, \"query\": {\"__class__\": \"ConnectedValue\"}, \"__page__\": null, \"__rerun_remap_job_id__\": null}", "tool_version": "2.10.1+galaxy2", "type": "tool", "uuid": "b48e7047-0553-487c-b376-ec368e13ab90", "when": null, "workflow_outputs": []}}, "tags": [], "uuid": "00296cbb-bcc9-478d-ae2a-1f4d83114789", "version": 1} \ No newline at end of file