From ecd455569a5a79dacb57f3d955f675f30e8bde65 Mon Sep 17 00:00:00 2001 From: ColineRoyaux <61148928+ColineRoyaux@users.noreply.github.com> Date: Fri, 15 Dec 2023 17:57:45 +0100 Subject: [PATCH 01/22] Add AB1 sanger tuto files --- .../Manage_AB1_Sanger/data-library.yaml | 12 + .../tutorials/Manage_AB1_Sanger/faqs/index.md | 3 + .../tutorials/Manage_AB1_Sanger/tutorial.bib | 27 + .../tutorials/Manage_AB1_Sanger/tutorial.md | 530 ++++++++++++++++++ .../Manage_AB1_Sanger/workflows/index.md | 3 + .../workflows/main_workflow.ga | 1 + 6 files changed, 576 insertions(+) create mode 100644 topics/ecology/tutorials/Manage_AB1_Sanger/data-library.yaml create mode 100644 topics/ecology/tutorials/Manage_AB1_Sanger/faqs/index.md create mode 100644 topics/ecology/tutorials/Manage_AB1_Sanger/tutorial.bib create mode 100644 topics/ecology/tutorials/Manage_AB1_Sanger/tutorial.md create mode 100644 topics/ecology/tutorials/Manage_AB1_Sanger/workflows/index.md create mode 100644 topics/ecology/tutorials/Manage_AB1_Sanger/workflows/main_workflow.ga 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 From a834d03ccdd5ceae81c1fc73c38281f341df393d Mon Sep 17 00:00:00 2001 From: ColineRoyaux <61148928+ColineRoyaux@users.noreply.github.com> Date: Fri, 15 Dec 2023 17:59:11 +0100 Subject: [PATCH 02/22] Images Sanger tutorial --- .../Sanger_tuto/Aligned_sense_antisense.png | Bin 0 -> 43429 bytes .../images/Sanger_tuto/Double-strand_DNA.png | Bin 0 -> 35039 bytes .../Sanger_tuto/Reversed-antisense-sequence.png | Bin 0 -> 26353 bytes .../Sanger_tuto/two_single-strand_sequences.png | Bin 0 -> 32892 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 topics/ecology/images/Sanger_tuto/Aligned_sense_antisense.png create mode 100644 topics/ecology/images/Sanger_tuto/Double-strand_DNA.png create mode 100644 topics/ecology/images/Sanger_tuto/Reversed-antisense-sequence.png create mode 100644 topics/ecology/images/Sanger_tuto/two_single-strand_sequences.png diff --git a/topics/ecology/images/Sanger_tuto/Aligned_sense_antisense.png b/topics/ecology/images/Sanger_tuto/Aligned_sense_antisense.png new file mode 100644 index 0000000000000000000000000000000000000000..724d7aec3d1593c802e27d6e8db1758884704d2b GIT binary patch literal 43429 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 literal 0 HcmV?d00001 diff --git a/topics/ecology/images/Sanger_tuto/Reversed-antisense-sequence.png b/topics/ecology/images/Sanger_tuto/Reversed-antisense-sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..eae3ee9ac0596130a6a11e68a08c91b40ac9547c GIT binary patch literal 26353 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 literal 0 HcmV?d00001 diff --git a/topics/ecology/images/Sanger_tuto/two_single-strand_sequences.png b/topics/ecology/images/Sanger_tuto/two_single-strand_sequences.png new file mode 100644 index 0000000000000000000000000000000000000000..c324e79a188630661dc1fcb02c95cb22a408ea34 GIT binary patch literal 32892 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