Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Groot new tool and data manager #6043

Merged
merged 54 commits into from
Oct 17, 2024
Merged
Show file tree
Hide file tree
Changes from 50 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
8f89f92
add groot report xml + tests
hugolefeuvre May 14, 2024
543f457
Add support for suite in shed file
bebatut May 16, 2024
bef07c8
Fix running error, reshape report wrapper and add macros file
bebatut May 16, 2024
c05befa
groot_align_error
hugolefeuvre May 22, 2024
83515e3
Add index to aling wrapper, data tables, db in tests
bebatut May 23, 2024
dc9567c
data managers groot
hugolefeuvre May 29, 2024
f3f64fc
Groot data manager
hugolefeuvre May 30, 2024
9756b99
modif groot data manager
hugolefeuvre May 31, 2024
9d5586c
.loc.sample modif
hugolefeuvre May 31, 2024
b5ccba2
Merge branch 'galaxyproject:main' into groot
hugolefeuvre May 31, 2024
eb59b61
remove options that were no longer in params
hugolefeuvre May 31, 2024
7e3b886
Rename .shed.yml
hugolefeuvre May 31, 2024
c40917f
Correct syntax error in py file
hugolefeuvre May 31, 2024
799a724
Change DB for data manager test
hugolefeuvre May 31, 2024
b2c6307
swith python version
hugolefeuvre Jun 5, 2024
e08224b
Switch to python 3.11.8
hugolefeuvre Jun 5, 2024
046cb9c
without python version
hugolefeuvre Jun 14, 2024
5f58937
Change profile
hugolefeuvre Jun 14, 2024
0159907
Test with profile 23.0
hugolefeuvre Jun 19, 2024
582125b
Update data_managers/data_manager_groot_database_downloader/data_mana…
hugolefeuvre Jun 20, 2024
58db407
Update data_managers/data_manager_groot_database_downloader/data_mana…
hugolefeuvre Jun 20, 2024
5a64b7b
Add SSL_CERT_FILE export to XML and database move
bebatut Jul 4, 2024
1816f9b
reduce DB and modify param values
hugolefeuvre Jul 9, 2024
8c2b459
Update maxK parameter in groot_align.xml (force error)
hugolefeuvre Aug 21, 2024
81ee08c
update maxK and groot.bam
hugolefeuvre Aug 27, 2024
40461a2
Add log output and noAlign param in command
bebatut Oct 14, 2024
df85bf0
A single xml for all commands, to avoid bam redirection problems
hugolefeuvre Oct 14, 2024
e10164e
Add second test and extension modification to adapt for gz files
hugolefeuvre Oct 15, 2024
a7231c4
Modify output label
hugolefeuvre Oct 15, 2024
8c9c2eb
Modify tool description
hugolefeuvre Oct 15, 2024
993fbdc
Modify tool description
hugolefeuvre Oct 15, 2024
6dd4ae4
Modify command
hugolefeuvre Oct 15, 2024
2757e5a
Smaller test file
hugolefeuvre Oct 15, 2024
f89bc73
Modify DM (delete python file)
hugolefeuvre Oct 15, 2024
7988d6e
Remove the conditionnal
hugolefeuvre Oct 15, 2024
353811f
duplicate line
hugolefeuvre Oct 15, 2024
852c73f
Merge branch 'galaxyproject:main' into groot
hugolefeuvre Oct 15, 2024
81a1e0f
Change database path
hugolefeuvre Oct 15, 2024
d2300d3
delete requirements that are not useful
hugolefeuvre Oct 15, 2024
9e1dfc1
data component in the path not nedded
hugolefeuvre Oct 15, 2024
eac7cb4
Modify help section
hugolefeuvre Oct 15, 2024
1e51468
requirements needed
hugolefeuvre Oct 15, 2024
50d544b
back into commits
hugolefeuvre Oct 15, 2024
e82a0c8
back to python file with DM
hugolefeuvre Oct 15, 2024
b43218d
lint issues
hugolefeuvre Oct 15, 2024
d57e99c
test wo requirements
hugolefeuvre Oct 16, 2024
f82e14f
back with requirements
hugolefeuvre Oct 16, 2024
73929b7
DM wo python
hugolefeuvre Oct 16, 2024
37ff768
DM with python and modify json output
hugolefeuvre Oct 16, 2024
90573f7
Fixing certificate error in DM condensed xml
hugolefeuvre Oct 16, 2024
a644a09
Modify DB label
hugolefeuvre Oct 17, 2024
696ea8d
Delete default
hugolefeuvre Oct 17, 2024
4d5080e
Add CDATA in help part
hugolefeuvre Oct 17, 2024
91702dc
Cote for log option
hugolefeuvre Oct 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
categories:
- Data Managers
description: Download pre-clustered ARG database that are ready to be indexed
homepage_url: https://github.com/will-rowe/groot
long_description: GROOT is a tool to type Antibiotic Resistance Genes (ARGs) in metagenomic samples (a.k.a. Resistome Profiling). It combines variation graph representation of gene sets with an LSH indexing scheme to allow for fast classification of metagenomic reads.
name: data_manager_groot_database_downloader
remote_repository_url: https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_groot_database_downloader
type: unrestricted
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<tool id="groot_database_downloader" name="Groot get" tool_type="manage_data" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
<description> Download pre-clustered ARG database that are ready to be indexed</description>
<macros>
<token name="@TOOL_VERSION@">1.1.2</token>
<token name="@VERSION_SUFFIX@">0</token>
<token name="@PROFILE@">22.05</token>
</macros>
<requirements>
<requirement type="package" version="3.12">python</requirement>
<requirement type="package" version="2024.6.2">ca-certificates</requirement>
hugolefeuvre marked this conversation as resolved.
Show resolved Hide resolved
<requirement type="package" version="@TOOL_VERSION@">groot</requirement>
</requirements>
<command><![CDATA[
if [ -f '/usr/local/ssl/cacert.pem' ] ; then export SSL_CERT_FILE='/usr/local/ssl/cacert.pem' ; fi &&
groot get -d '$database' --identity '$identity' &&
cp '$dmjson' '$out_file'
]]></command>
<configfiles>
<configfile name="dmjson"><![CDATA[
#from datetime import date
{
"data_tables":{
"groot_database":[
{
"value": "$database.$identity-@TOOL_VERSION@-#echo date.today().strftime('%d%m%Y')#",
"name": "$database ($identity percent identity)",
"path": "/$database.$identity",
hugolefeuvre marked this conversation as resolved.
Show resolved Hide resolved
"version": "@TOOL_VERSION@"
}
]
}
}]]>
</configfile>
</configfiles>
<inputs>
<param name="database" type="select" label="Database name">
<option value="arg-annot" selected="true">ARG-annot 90% identity (default)</option>
<option value="resfinder">Resfinder 90% identity</option>
<option value="card">CARD 90% identity</option>
<option value="groot-db">Groot-db 90% identity, combine all sequences in ARG-annot, Resfinder and CARD</option>
<option value="groot-core-db">Groot-core-db 90% identity, same as groot-db but one copy of each sequence is kept and then this collection is clustered at 90% identity</option>
hugolefeuvre marked this conversation as resolved.
Show resolved Hide resolved
</param>
<param name="identity" type="select" label="Percent Identity">
<option value="90" selected="true">90% identity (default)</option>
hugolefeuvre marked this conversation as resolved.
Show resolved Hide resolved
</param>
</inputs>
<outputs>
<data name="out_file" format="data_manager_json" label="${tool.name}"/>
</outputs>
<tests>
<test expect_num_outputs="1">
<param name="database" value="arg-annot"/>
<param name="identity" value="90"/>
<output name="out_file">
<assert_contents>
<has_text text='"groot_database":'/>
<has_text text='"version": "1.1.2"'/>
<has_text_matching expression='"value": "arg-annot.90-1.1.2-[0-9]{8}"'/>
<has_text text='"name": "arg-annot (90 percent identity)"'/>
<has_text text='"path": "/arg-annot.90"'/>
</assert_contents>
</output>
</test>
</tests>
<help>
The groot get subcommand is used to download a pre-clustered ARG database that is ready to be indexed.
</help>
hugolefeuvre marked this conversation as resolved.
Show resolved Hide resolved
<citations>
<citation type="doi">10.5281/zenodo.1217889</citation>
</citations>
</tool>
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0"?>
<data_managers>
<data_manager tool_file="data_manager/data_manager_groot_database_downloader.xml" id="groot_database_downloader">
<data_table name="groot_database">
<output>
<column name="value"/> <!-- columns that are going to be specified by the Data Manager Tool -->
<column name="name"/> <!-- columns that are going to be specified by the Data Manager Tool -->
<column name="path" output_ref="out_file">
<move type="directory">
<source>${path}</source>
<target base="${GALAXY_DATA_MANAGER_DATA_PATH}">groot_database/data/${value}</target>
</move>
<value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/groot_database/data/${value}</value_translation>
hugolefeuvre marked this conversation as resolved.
Show resolved Hide resolved
<value_translation type="function">abspath</value_translation>
</column>
<column name="version"/> <!-- columns that are going to be specified by the Data Manager Tool -->
</output>
</data_table>
</data_manager>
</data_managers>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
arg-annot.90-16102024 arg-annot (90 percent identity) /tmp/tmpjmmj2x3o/galaxy-dev/tool-data/groot_database/data/arg-annot.90-16102024 1.1.2
arg-annot.90-1.1.2-16102024 arg-annot (90 percent identity) /tmp/tmpqdkgcsoq/galaxy-dev/tool-data/groot_database/data/arg-annot.90-1.1.2-16102024 1.1.2
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#This is a sample file distributed with Galaxy that enables tools
#file has this format (white space characters are TAB characters)
#resfinder.90-v1.1.2 resfinder (90 percent identity) 300524-v1.1.2 ${__HERE__}/resfinder.90 1.1.2
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<tables>
<table name="groot_database" comment_char="#">
<columns>value, name, path, version</columns>
<file path="tool-data/groot_database.loc"/>
</table>
</tables>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0"?>
<tables>
<table name="groot_database" comment_char="#">
<columns>value, name, path, version</columns>
<file path="${__HERE__}/test-data/groot_database.loc" />
</table>
</tables>
18 changes: 18 additions & 0 deletions tools/groot/.shed.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: groot
owner: iuc
description: GROOT is a tool to type Antibiotic Resistance Genes (ARGs) in metagenomic samples
long_description: |
GROOT is a tool to type Antibiotic Resistance Genes (ARGs) in metagenomic samples (a.k.a. Resistome Profiling).
It combines variation graph representation of gene sets with an LSH indexing scheme to allow for fast classification of metagenomic reads.
Subsequent hierarchical local alignment of classified reads against graph traversals facilitates accurate reconstruction of full-length gene sequences using a simple scoring scheme.
categories:
- Metagenomics
homepage_url: https://github.com/will-rowe/groot
remote_repository_url: https://github.com/galaxyproject/tools-iuc/tree/master/tools/groot
type: unrestricted
auto_tool_repositories:
name_template: "{{ tool_id }}"
description_template: "Wrapper for the GROOT tool suite: {{ tool_name }}"
suite:
name: "suite_groot"
description: "GROOT is a tool to type Antibiotic Resistance Genes (ARGs) in metagenomic samples"
153 changes: 153 additions & 0 deletions tools/groot/groot.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
<tool id="groot" name="Groot" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
<description> align reads to references and weight variation graphs and generate report</description>
<macros>
<import>macros.xml</import>
</macros>
<expand macro="xrefs"/>
<expand macro="requirements"/>
<command detect_errors="exit_code"><![CDATA[
set -x pipefail;
#set $extension = str($fastq.ext)
ln -s -f '${fastq}' 'input.${extension}' &&
groot index
--msaDir '$groot_db_select.fields.path'
--indexDir 'grootIndex'
--windowSize $windowSize
--kmerSize $kmerSize
--maxK $maxK
--maxSketchSpan $maxSketchSpan
--numPart $numPart
--sketchSize $sketchSize
&&

groot align
--fastq 'input.${extension}'
--indexDir 'grootIndex'
--contThresh $contThresh
--minKmerCov $minKmerCov
--log $log
hugolefeuvre marked this conversation as resolved.
Show resolved Hide resolved
$noAlign
--processors "\${GALAXY_SLOTS:-1}"

| groot report
--covCutoff '$covCutoff'
$lowCov
> '$report_out'

]]></command>
<inputs>
<param argument="--fastq" type="data" format="fastqsanger,fastqsanger.gz" label="FASTQ file(s) to align"/>
<section name="index" title="Index">
<param name="groot_db_select" type="select" label="Groot database">
<options from_data_table="groot_database">
<validator message="No groot database is available" type="no_options"/>
</options>
</param>
<param argument="--windowSize" type="integer" min="0" value="100" label="Size of window to sketch graph traversals" />
<param argument="--kmerSize" type="integer" min="0" value="31" label="Size of k-mer" />
<param argument="--maxK" type="integer" min="0" value="40" label="maxK in the LSH Ensemble" />
<param argument="--maxSketchSpan" type="integer" min="0" value="4" label="Maximum number of identical neighbouring sketches permitted in any graph traversal" />
<param argument="--numPart" type="integer" min="0" value="8" label="Number of partitions in the LSH Ensemble" />
<param argument="--sketchSize" type="integer" min="0" value="21" label="Size of MinHash sketch" />
</section>
<section name="align" title="Align">
<param argument="--contThresh" type="float" min="0" max="1.0" value="0.99" label="Containment threshold for the LSH ensemble" />
<param argument="--minKmerCov" type="integer" min="0" value="1" label="Minimum number of k-mers covering each base of a graph segment" />
<param argument="--noAlign" type="boolean" truevalue="" falsevalue="--noAlign" label="Perform exact alignment?"
help="If not, graphs will still be weighted using approximate read mappings"/>
</section>
<section name="report" title="Report">
<param argument="--covCutoff" type="float" min="0" max="1.0" value="0.97" label="Coverage cutoff for reporting ARGs" />
<param argument="--lowCov" type="boolean" checked="false" truevalue="--lowCov" falsevalue="" label="Report ARGs which may not be covered at the 5'/3' ends"
help="If 'Yes', overrides --covCutoff option"/>
</section>
</inputs>
<outputs>
<data name="log" format="txt" label="${tool.name} on ${on_string}: Log"/>
<data name="report_out" format="tabular" label="${tool.name} on ${on_string}: Report"/>
</outputs>
<tests>
<test expect_num_outputs="2">
<param name="fastq" value="bla-b7-150bp-5x.fq" ftype="fastq"/>
<section name="index">
<param name="groot_db_select" value="resfinder.90" />
<param name="windowSize" value="150"/>
<param name="kmerSize" value="31"/>
<param name="maxK" value="20"/>
<param name="maxSketchSpan" value="30"/>
<param name="numPart" value="8"/>
<param name="sketchSize" value="20"/>
</section>
<section name="align">
<param name="contThresh" value="0.99"/>
<param name="minKmerCov" value="1" />
<param name="noAlign" value=""/>
</section>
<section name="report">
<conditional name="arg_report">
<param name="criteria" value="cutoff" />
<param name="covCutoff" value="0.97" />
</conditional>
</section>
<output name="report_out" ftype="tabular">
<assert_contents>
<has_text text="blaB-7_1_AF189304"/>
<has_n_lines n="1"/>
<has_n_columns n="4"/>
</assert_contents>
</output>
<output name="log" ftype="txt">
<assert_contents>
<has_text text="version"/>
<has_text text="1.1.2"/>
</assert_contents>
</output>
</test>
<test expect_num_outputs="2">
<param name="fastq" value="argannot_light-150bp-10000-reads.fq.gz" ftype="fastq.gz"/>
<section name="index">
<param name="groot_db_select" value="arg-annot.90" />
<param name="windowSize" value="150"/>
<param name="kmerSize" value="41"/>
<param name="maxK" value="4"/>
<param name="maxSketchSpan" value="30"/>
<param name="numPart" value="8"/>
<param name="sketchSize" value="21"/>
</section>
<section name="align">
<param name="contThresh" value="0.99"/>
<param name="minKmerCov" value="1" />
<param name="noAlign" value=""/>
</section>
<section name="report">
<param name="covCutoff" value="0.97" />
<param name="lowCov" value="True"/>
</section>
<output name="report_out" ftype="tabular">
<assert_contents>
<has_text text="argannot~~~(Bla)VIM-9~~~AY524988:1-801"/>
<has_text text="argannot~~~(Bla)VIM-20~~~GQ414736:1-801"/>
<has_n_lines n="5"/>
<has_n_columns n="4"/>
</assert_contents>
</output>
<output name="log" ftype="txt">
<assert_contents>
<has_text text="version"/>
<has_text text="1.1.2"/>
</assert_contents>
</output>
</test>
</tests>
<help><![CDATA[
**What it does**

@HELP@

**Output**

GROOT will output an ARG alignment file (in BAM format) that contains the graph traversals possible for each query read; the alignment file is then used by GROOT to generate a resistome profile.

]]></help>
<expand macro="citations"/>
</tool>
42 changes: 42 additions & 0 deletions tools/groot/macros.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?xml version="1.0"?>
<macros>
<token name="@TOOL_VERSION@">1.1.2</token>
<token name="@VERSION_SUFFIX@">0</token>
<token name="@PROFILE@">22.05</token>
<xml name="requirements">
<requirements>
<requirement type="package" version="@TOOL_VERSION@">groot</requirement>
<yield/>
</requirements>
</xml>
<xml name="xrefs">
<xrefs>
<xref type="bio.tools">groot</xref>
</xrefs>
</xml>
<xml name="citations">
<citations>
<citation type="doi">10.1093/bioinformatics/bty387</citation>
</citations>
</xml>
<token name="HELP"><![CDATA[
GROOT is a tool to profile Antibiotic Resistance Genes (ARGs) in metagenomic samples.

The method combines variation graph representation of gene sets with an LSH Forest
indexing scheme to allow for fast classification of metagenomic reads using
similarity-search queries. Subsequent hierarchical local alignment of classified reads
against graph traversals facilitates accurate reconstruction of full-length gene sequences
using a scoring scheme.

The main advantages of GROOT over existing tools are:

- quick classification of reads to candidate ARGs
- accurate annotation of full-length ARGs
- can run on a laptop in minutes

GROOT aligns reads to ARG variation graphs, producing an alignment file that contains
the graph traversals possible for each query read. The alignment file is then used to
generate a simple resistome profile report.

]]></token>
</macros>
25 changes: 25 additions & 0 deletions tools/groot/test-data/arg-annot.90/cluster-3.msa
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
>*argannot~~~(AGly)Aac(3)-IIIc~~~L06161:106-945
ATGTTCTCTCGTTGGTCGAAACCTCTCGTGCTTGCCGCCGTGACCCGCGCCTCGCTCGCCGCTGATCTCGCCGCGCTTGG
CCTTGCCGCGGGCGATGCGGTCATGGTCCATGCCGCCGTCAGCAAGGTCGGCCGCCTGCTCGACGGTCCCGACACGATCA
TCGCCGCTCTGTCCGACGCCGGTCGGCCTGCCGGCACCATCCTCGCCTATGCCGATTGGGAAGCGCGCTACGAGGACCTC
GTGGACGAGGACGGCCGCGTGCCGCAGGAATGGCGCGAGCACATCCCACCCTTCGATCCGCGGCGCTCACGCGCGATCCG
CGACAATGGCGTGCTTCCGGAATTCCTGCGGACGACACCGGGTGCGTTGCGCAGCGGCAATCCCGGCGCCTCGATGGTCG
GGCTCGGCGCCAGAGCGGAATGGTTCACCGCAGACCATCCCCTCGACTACGGCTATGGCGAGGGTTCGCCGCTGGCCAGG
CTGGTCGAAGCCGGCGGCAAGGTGCTGATGCTCGGGGCGCCGCTCGACACGCTGACCCTGCTGCACCATGCCGAGCATCT
GGCCGACATCCCCGGCAAGCGCATCCGGCGGATCGAGGTGCCGCTGGCGACGCCGACCGGCACGCAATGGCGCATGATCG
AGGAATTCGATACCGGCGATCCGATCGTCGAAGGTTTGGCCGAGGACTACTTCGCCGAGATCGTGACGGCGTTCCTTGCC
GGCGGCCGAGGACGGCAGGGCTTGATCGGCACCGCGCCATCCGTGCTGGTCGATGCTGCCGCAATCACGGCTTTCGGCGT
CGCCTGGCTGGAATCGCGCTTCGGCTCGCCCTCATCCTGA
>consensus
ATGTTCTCTCGTTGGTCGAAACCTCTCGTGCTTGCCGCCGTGACCCGCGCCTCGCTCGCCGCTGATCTCGCCGCGCTTGG
CCTTGCCGCGGGCGATGCGGTCATGGTCCATGCCGCCGTCAGCAAGGTCGGCCGCCTGCTCGACGGTCCCGACACGATCA
TCGCCGCTCTGTCCGACGCCGGTCGGCCTGCCGGCACCATCCTCGCCTATGCCGATTGGGAAGCGCGCTACGAGGACCTC
GTGGACGAGGACGGCCGCGTGCCGCAGGAATGGCGCGAGCACATCCCACCCTTCGATCCGCGGCGCTCACGCGCGATCCG
CGACAATGGCGTGCTTCCGGAATTCCTGCGGACGACACCGGGTGCGTTGCGCAGCGGCAATCCCGGCGCCTCGATGGTCG
GGCTCGGCGCCAGAGCGGAATGGTTCACCGCAGACCATCCCCTCGACTACGGCTATGGCGAGGGTTCGCCGCTGGCCAGG
CTGGTCGAAGCCGGCGGCAAGGTGCTGATGCTCGGGGCGCCGCTCGACACGCTGACCCTGCTGCACCATGCCGAGCATCT
GGCCGACATCCCCGGCAAGCGCATCCGGCGGATCGAGGTGCCGCTGGCGACGCCGACCGGCACGCAATGGCGCATGATCG
AGGAATTCGATACCGGCGATCCGATCGTCGAAGGTTTGGCCGAGGACTACTTCGCCGAGATCGTGACGGCGTTCCTTGCC
GGCGGCCGAGGACGGCAGGGCTTGATCGGCACCGCGCCATCCGTGCTGGTCGATGCTGCCGCAATCACGGCTTTCGGCGT
CGCCTGGCTGGAATCGCGCTTCGGCTCGCCCTCATCCTGA

17 changes: 17 additions & 0 deletions tools/groot/test-data/arg-annot.90/cluster-30.msa
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
>*argannot~~~(AGly)Aac6-IIa~~~M29695:707-1261
ATGTCCGCGAGCAccccccccATAACTCTTCGCCTCATGACCGAGCGCGACCTGCCGATGCTCCATGACTGGCTCAACCG
GCCGCACATCGTTGAGTGGTGGGGTGGCGACGAAGAGCGACCGACTCTTGATGAAGTGCTGGAACACTACCTGCCCAGAG
CGATGGCGGAAGAGTCCGTAACACCGTACATCGCAATGCTGGGCGAGGAACCGATCGGCTATGCTCAGTCGTACGTCGCG
CTCGGAAGCGGTGATGGCTGGTGGGAAGATGAAACTGATCCAGGAGTGCGAGGAATAGACCAGTCTCTGGCTGACCCGAC
ACAGTTGAACAAAGGCCTAGGAACAAGGCTTGTCCGCGCTCTCGTTGAACTACTGTTCTCGGACCCCACCGTGACGAAGA
TTCAGACCGACCCGACTCCGAACAACCATCGAGCCATACGCTGCTATGAGAAGGCAGGATTCGTGCGGGAGAAGATCATC
ACCACGCCTGACGGGCCGGCGGTTTACATGGTTCAAACACGACAAGCCTTCGAGAGAAAGCGCGGTGTTGCCTAA
>consensus
ATGTCCGCGAGCACCCCCCCCATAACTCTTCGCCTCATGACCGAGCGCGACCTGCCGATGCTCCATGACTGGCTCAACCG
GCCGCACATCGTTGAGTGGTGGGGTGGCGACGAAGAGCGACCGACTCTTGATGAAGTGCTGGAACACTACCTGCCCAGAG
CGATGGCGGAAGAGTCCGTAACACCGTACATCGCAATGCTGGGCGAGGAACCGATCGGCTATGCTCAGTCGTACGTCGCG
CTCGGAAGCGGTGATGGCTGGTGGGAAGATGAAACTGATCCAGGAGTGCGAGGAATAGACCAGTCTCTGGCTGACCCGAC
ACAGTTGAACAAAGGCCTAGGAACAAGGCTTGTCCGCGCTCTCGTTGAACTACTGTTCTCGGACCCCACCGTGACGAAGA
TTCAGACCGACCCGACTCCGAACAACCATCGAGCCATACGCTGCTATGAGAAGGCAGGATTCGTGCGGGAGAAGATCATC
ACCACGCCTGACGGGCCGGCGGTTTACATGGTTCAAACACGACAAGCCTTCGAGAGAAAGCGCGGTGTTGCCTAA

Loading
Loading