基于快速k-mer的工具,用于直接从基因组测序读取的无装配多位点序列分型(mlst)。

stringMLST的Python项目详细描述


#stringmlst是一种快速的基于k-mer的多位点序列分型(mlst)工具。StringMLST以完全无装配和对齐方式预测隔离的ST。该工具以轻量级、平台独立的方式设计,具有最小的依赖性。





reference
*http://jordan.biology.gatech.edu/page/software/stringmlst/*


abstract
*http://bioinformis.oxfordjournals.org/content/early/2016/09/06/bioinformis.btw586.short?rss=1*

申请说明
*http://bioinformiscs.oxfordjournals.org/content/early/2016/09/06/bioinformiscs.btw586.full.pdf+html*

/>[![使用bioconda安装](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg?style=flat square)(http://bioconda.github.io/recipes/stringmlst/readme.html)[![PYPI版本](https://badge.fury.io/py/stringmlst.svg)](https://badge.fury.io/py/stringmlst)![下载](https://img.shields.io/conda/dn/bioconda/stringmlst.svg?风格=平的)[![容器准备就绪](https://quay.io/repository/biocontainers/stringmlst/status)(https://quay.io/repository/biocontainers/stringmlst)




**stringmlst是一个*工具*而不是*数据库*,请始终使用最新的数据库文件。**以方便
保持数据库的更新stringmlst可以使用最新的等位基因
和配置文件定义从pubmlst下载和构建数据库。有关说明,请参见下面的"包含的数据库和从pubmlst自动检索数据库"部分
。*此处捆绑的数据库仅为方便起见,不依赖于它们是最新的*

stringmlst是根据[cc attribution noncommercial sharealike 4.0 international(cc by-nc-sa 4.0)](https://creativecommons.org/licenses/by-nc sa/4.0)授权和分发的,
Cademic用户,在商业使用此代码/算法的任何版本之前需要获得许可。
如果您是商业用户,请与king.jordan@biology.gatech.edu联系以获取权限

建议的安装方法

` ` ` `thub.com/jordanlab/stringmlst

mkdir-p stringmlst_analysis;cd stringmlst_analysis
stringmlst.py--getmlst-p neisseria/nmb--species neisseria
r026529_1.fastq.gz ftp://ftp.sra.ebi.ac.uk/vol1/fastq/err026/err026529/err026529_2.fastq.gz
stringmlst.py--predict-p neisseria/nmb-1 err026529_1.fastq.gz-2 err026529_2.fastq.gz
样本abcz adk aroe fumc gdh pdhc pgm st
err026529 231 180 306612 269 277 260 10174

````



对于高级使用(基因组覆盖率),stringmlst依赖于"pyfaidx"python模块和"bamtools"、"bwa"和"samtools"。
有关更多信息,请参见覆盖率部分

stringmlst已使用以下工具进行测试:
````
pyfaidx:0.4.8.1
samtools:1.3(使用htslib 1.3.1)[需要samtools的1.x分支]
bedtools:v2.24.0
bwa:0.7.13-R1126
````

`` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `.bz2-o samtools-1.3.1.tar.bz2
tar x1.3.1.1.tar.bz2
cd-samtools-1.3.1.tar
make
make prefix=$home install
bedtools
wget https://github.com/arq5x/bedtools2/releases/下载/v2.25.0/bedtools-2.25.0/bedtools-2.25.0/bedtools-2.25.0.tar.gz
tar.gz
tar-zxvf bedtools-2.25.0.0.0.tar.tar.gz
tar-zzzz2.25.0.0.tar BWA
Git Cl公司一个https://github.com/lh3/bwa.git
cd bwa;make
cp bwa~/bin/bwa
export path=$path:$home/bin
````



脑膜炎脊膜炎(neisseria-spp.zip)。

<35<35<35<35<



<35
建立数据库:

`````` ` ` ` ` ` ` ` ` ` ` `


将dir添加到路径

下载_exampl reads.sh
` ` ` ` ` ` ` ` ` ` ` ` ` ` `<
` ` ` ` ` ` `西莉亚州邮政编码tasets
``

*创建或使用一个配置文件,指定所有位点和配置文件的位置。
示例配置文件(neisseria_spp/config.txt):

````
[位点]
abcz数据集/neisseria_spp/abcz.fa
adk数据集/neisseria_spp/adk.fa
aroe数据集/neisseria_spp/aroe.fa
fumc数据集/neisseria_spp/fumc.fa
gdh数据集/neisseria_spp/gdh.fa
pdhc数据集/neisseria_spp/pdhc.fa
pgm数据集/neisseria_spp/pgm.fa
[配置文件]
配置文件数据集/neisseria_spp/neisseria.txt
````

*运行stringmlst.py--builddb创建数据库。选择k值和前缀(可选)。

````
stringmlst.py-builddb-c数据库/neisseria/config.txt-k 35-p nm
```````

` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `预测:

` ` ` ` ` ` ` ` `
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `fastq-2测试/fastqs/err026529_2.fastq-k35-p纳米
`````````````````````````````````````````````````````````
stringmlst.py--predict-d./tests/fastqs/-k 35-p纳米
````````````````````````````````````````````````````````````````````````````````````````````````````u 1.fastq测试/fastqs/err026529_2.fastq
测试/fasTqs/err027250 U 1.fastq tests/fastqs/err027250 U 2.fastq
tests/fastqs/err036104 U 1.fastq tests/fastqs/err036104 U 2.fastq
```
>运行工具:
`````
stringmlst.py--predict-l list U paired.txt-k 35-p nm
`````
stringmlst.py--predict-l list-l list-paired.txt-k 35-p nm
`````````>br/>
```
stringmlst.py—预测-1tests/fastqs/err026529_1.fq.gz-2 tests/fastqs/err026529_2.fq.gz-p-p nm-k 35-o st_nm.txt
`````
`````使用文档


stringmlst的工作流分为两个例程:
*数据库构建和
*st发现

*数据库构建:*在ich用于将sts分配给输入的示例文件。每一个有机体都需要一次这个步骤。请注意,stringmlst能够处理自定义的键入方案,但其效率尚未在其他键入方案上测试。

*st discovery:*此例程接受在最后一步中创建的数据库,并预测输入样本的st。请注意,在此例程之前需要建立数据库。stringmlst能够处理单端和成对端文件。它可以在三种模式下运行:
*单样本模式-用于在单个样本上运行stringmlst
*批处理模式-用于在目录中的所有fastq文件上运行stringmlst
*列表模式-用于在列表文件中提供的所有fastq文件上运行stringmlst

```
readme用于stringmlst
==========================================用法
./stringmlst.py
[--builddb]
[--predict]
[-1文件名第一季][--fastq1文件名是第一季最快的第一季]
[-2文件名是第二季最快的第二季文件名是第二季最快的第二季][---d目录][---dirdirdirdir目录][---dirdirdirdirdir目录]
[-l目录文件][---list目录文件][---list目录目录文件][---list目录目录目录文件][---list目录文件]
[-p][---p a对]
[-s][-s][---s单单]
[-c][-c][---c][---config]>>[-p>[-p[-p[-p][-p][-p][-p][-p][-c][--覆盖范围ge]
[-k]
[-o output_filename][--output output_filename]
[-x][--overwrite]
[-t]
[-r]
[-v]
[-h][--help]
==============================================================================================

There are two steps to predicting ST using stringMLST.
1.创建db:stringmlst.py--builddb
2。预测:stringmlst——预测

1。stringmlst.py--builddb

ile.
格式:
[位点]
蝗虫1蝗虫文件1
蝗虫2蝗虫文件2
[配置文件]
配置文件文件
kmer长度:是数据库的kmer长度。注意,在处理时,它应该小于读取长度。
我们建议根据读取长度将kmer长度设置为3566。
db prefix(可选):保存要创建的db文件及其位置的信息。此模块使用此前缀创建3个文件。
可以使用带前缀的文件夹结构将数据库存储在特定位置。


必需参数
--build db
builddb模块的标识符
-c,--config=<;configuration file>;
descr格式的配置文件我躺在上面。
所有文件都遵循pubmlst后面的结构。有关详细信息,请参阅扩展文档。

可选参数
-k=<;kmer length>;
必须为其形成数据库的kmer大小(默认k=35)。注意,对于55到150 bp的读取长度,该工具在kmer长度介于35到66之间时最有效。kmer的大小可以相应地增加。如果读取质量不是很好,建议保持较低的kmer大小

-p,--prefix=<;prefix>;
要创建的数据库和日志文件的前缀(默认值=kmer)。您还可以指定要在其中创建dbb的文件夹。
-a
file location to write build log
-h,--help
打印此应用程序的帮助手册

py--predict

stringmlst--predict:可以在三种模式下运行
1)单个样本(默认模式)
2)批处理模式:对文件夹中的所有样本(对于特定样本)运行stringmlst
3)列表模式:对文件中指定的样本运行stringmlst
stringmlst可以处理单个和成对的结束文件。默认情况下,程序需要成对的结束文件。

参数
--predict
predict miodule的标识符

astq2_filename>;
成对结束样本的第二个fastq文件的路径。
应具有扩展名fastq或fq。
-d,--dir,--directory=<;directory>;
批处理模式:批处理模式的所有样本的位置。
-c,-coverage
计算每个等位基因的序列覆盖率。打开读取生成(-r)并关闭fuzzy(-z 1)
需要bwa、bamtools和samtools在您的路径中
-k=<;kmer\u length>;
kmer length已创建(默认k=35)。可以通过查看数据库文件的名称来验证。
如果读取质量很差或有很多n个,则可以使用该选项。
-l,--list=<;list_file>;
list mode:列表文件的位置和列表模式的标志。
list file应具有所有示例/文件的完整文件路径。
每个示例占用一行。对于成对结束采样,两个文件应在单行上以制表符分隔。
-o,--output=<;output_filename>;
将输出打印到文件而不是stdio。
-p,--paired
用于指定成对结束文件的标志。如果不为所有模式指定,则默认选项也是如此。
对于批处理模式,成对的结束采样应以1/2.fastq或1/2.fq
-p,--prefix=<;prefix>;
创建数据库时使用的前缀(默认值=kmer)区分。还可以提供数据库的位置。
-r
创建一个单独的读取文件,其中所有读取都覆盖所有轨迹。
-s,--single
用于指定单端文件的标志。
-t
还将报告每次分析的时间。
-v
打印软件。
-x,--overwrite
默认情况下,如果使用相同的名称,stringmlst会将结果附加到输出文件名。
此参数将覆盖以前指定的输出文件。
-z,--fuzzy=<;fuzzy threshold int>;
报告模糊匹配的阈值(默认值=300)。对于更高的覆盖率,应将此阈值设置得更高,以避免在更可能精确匹配时
指示模糊匹配。对于较低覆盖率的读取,建议阈值为<;100
-h,--help
打印此应用程序的帮助手册

stringmlst.py--getmlst

概要:
stringmlst.py--getmlst--species=<;species>;[-k kmer length][-p db prefix]


必需参数
--getmlst
getmlst模块的标识符
--species=<;species name>;
pubmlst方案中的物种名称(使用--获取可用方案列表的方案)
"all"将下载并生成all

注意,对于55到150 bp的读取长度,该工具在kmer长度介于35到66之间时最有效。kmer的大小可以相应地增加。如果读取质量不是很好,建议保持较低的kmer大小

-p,--prefix=<;prefix>;
要创建的数据库和日志文件的前缀(默认值=kmer)。您还可以指定要在其中创建数据库的文件夹。
我们建议前缀和配置指向同一文件夹以保持清洁,但这不是必需的
--方案
显示可用方案的列表
-h,--帮助
打印此应用程序的帮助手册

```



**StringMLST希望成对的结束读取位于[illumina命名约定](http://support.illumina.com/help/sequencinganalysissworkflow/content/vault/informatics/sequencing_analysis/casava/swseq_mca_fastqfiles.htm)中,最少以1.fq和2.fq结尾以描绘read1和read2:**

*句点(.)是不允许使用的分隔符,文件扩展名除外*

````
illumina fastq文件使用以下命名方案:

&l t;示例名称>;<;条形码序列>;&u l<;lane(0-padded to 3位数)>;&u r<;read number>;<;set number(0-padded t3位数字>;.fastq.gz



>例如,以下是一个有效的fastq文件名:


```


<
是的截至2017年2月15日的数据库**,使用默认kmer(*35*)构建。它们可以在"datasets/"文件夹中找到。< BR/>暗示解压您需要的数据库,并开始使用stringmslt,如下所述。

pubmlst中的所有数据库都可以下载并根据您的kmer选择进行准备

*获取所有pubmlst方案*
`````
stringmlst.py--getmlst-p数据集/--species all
```


还可以根据需要从pubmlst中下载各个数据库,使用scheme标识符

*下载scheme*
````
列出可用的scheme
stringmlst.py--getmlst--schemes


stringmlst.py--getmlst-p数据集/nmb——物种neisseria

```





\ws:
*在浏览器上,导航到http://pubmlst.org/
*导航到"下载mlst定义"链接或转到http://pubmlst.org/data/
*滚动到感兴趣的物种。对于每个物种,用户可以找到用于输入定义的文件和每个位点的多个fasta文件。下载这些文件。

例如:

/neisseria/adk.tfa
http://pubmlst.org/data/allees/neisseria/aroe.tfa
http://pubmlst.org/data/allees/neisseria/fumc.tfa
http://pubmlst.org/data/allees/neisseria/gdh.tfa
http://pubmlst.org/data/allees/neisseria/pdhc.tfa
http://pubmlst.org/data/allees/neisseria/pgm.tfa

在所需位置下载这些文件。



自定义用户文件也可用于构建数据库。数据库构建例程需要配置文件定义文件和等位基因序列文件。配置文件定义文件是一个以制表符分隔的文件,包含ST和对应于ST的等位基因配置文件。配置文件定义文件的示例如下:
```
st abcz adk aroe fumc gdh pdhc pgm clonal_complex
1 3 1 1 1 3 ST-1 complex/subgroup i/ii
21 3 4 7 1 1 3 ST-1复合物/亚群I/II
3 1 3 1 1 23 13 ST-1复合物/亚群I/II
4 1 3 1 4 2 ST-4复合物/亚群IV
````
等位基因序列文件是一个标准的多fasta,其描述是具有等位基因数的位点名称。例如abcz等位基因序列如下所示:
````
>abcz 1
tttgtactgttgtgtgccga……
>;abcz 2
tttgatactctcttgtgtgtgtgccga……
>tttgatactctctcttggcga……
>;abcz 3
tttgtgatactctctctctctgcgaa……
>;abcz 4
>tttgatactctctctctgcgcgccaa……
>abcz等位基因序列,这些文件可以从pubmlst/bigsdb中获得。或者可以创建b用户自己。

在这两种情况下,还需要附带的配置文件来描述配置文件定义和等位基因序列文件。配置文件示例如下:
```
[位点]
abcz/data/home/stringmlst/pubmlst/neisseria_sp/abcz.fa
adk/data/home/stringmlst/pubmlst/neisseria_sp/adk.fa
aroe/data/home/stringmlst/pubmlst/neisseria_sp/aroe.fa
fumc/data/home/stringmlst/pubmlst/neisseria_sp/ffa
gdh/data/home/home/stringmlst/pumbmlst/pumbmlst/pumbmlst/neisseria/sp/pdhc.fa
pdhc/data/home/stringmlst/pumbmlst/neisseria/sp/pdhc.fa
/pgm/data/home/stringmlst/pumbmlst/pumpmlst/neisseria/pgm.fa

[profile]
[profile/data/home/stringmlst/pumbmlst/pumbmlst/neisseria/neisserisa/neisseria.txt
>`````
>>



builddb模块要求用户指定配置文件。默认k-mer大小为35,但可以使用-k选项进行更改。指定前缀对于创建的数据库文件是可选的,但建议使用。

k-mer的选择取决于读取的序列大小。一般来说,k的值永远不能大于读取长度。该应用程序已在55到150 bps的多个读取长度上使用21到66的k-mer进行了测试。在我们的测试中,k-mer的大小并不影响读取长度的准确性。较小的k-mer大小将增加运行时,较大的k-mer大小将增加文件大小。理想情况下,用户应该选择长度约为平均读取长度一半的k-mer。对于较低质量的数据,它还建议选择较小的k-mer值以减少错误命中。
```
stringmlst.py--builddb--config<;config file>;-k<;k-mer length>;-p<;prefix>;
````
示例:
````
stringmlst.py--builddb--config.txt-k 35-p nm
``````
此命令将生成3个数据库文件和一个日志文件。日志文件用于在遇到错误时进行调试。创建的3个数据库文件是:
*<;prefix>;<;k-mer>;.txt:应用程序的主数据库文件。这是一个以制表符分隔的文件,描述k-mer与位点的关系。
*<;prefix>;_weight.txt:包含长度差异超过5%的等位基因的权重因子。否则将为空。
*<;prefix>;_profile.txt:用于从预测的等位基因配置文件中查找ST的配置文件定义文件。

对于以上示例,将创建以下文件:
nm_35.txt、nm_weight.txt和nm_profile.txt

action例程用前缀标识数据库。

st discovery routine
如前所述,stringmlst有3种运行模式
*单样本模式-用于在单个样本上运行stringmlst
*批处理模式-用于在目录中的所有fastq文件上运行stringmlst
*列表模式-用于在所有f上运行stringmlst列表文件中提供的astq文件

样品可以是单端或成对端。样本必须是fastq格式。为了运行,用户应该知道创建的数据库的前缀和k-mer大小。

默认情况下,该工具需要成对的结束示例。
``
stringmlst.py--predict-1<;成对的结束文件1>;-2<;成对的结束文件2>;-p--prefix<;数据库前缀>;-k<;k-mer size>;-o<;输出文件名>;
```
*对于单端示例:
````
stringmlst.py--predict-1<;single end file>;-s--prefix<;数据库前缀>;-k<;k-mer size>;-o<;输出文件名>;
````
批处理模式:
此模式可用于使用一个命令处理多个文件。所有的样本都将在同一个数据库中查询。所有样本也应该在同一个目录中。所有样品将被视为单端或成对端。成对的结束样本应在结尾用字符"1"和"2"区分(例如:samplex"1.fastq"和samplex"2.fastq"。

*成对的结束样本:*
`````
stringmlst.py--predict-d<;样本目录>;-p--prefix<;数据库前缀>;-k<;k-mer size>;-o<;输出文件名>;
```

*单端示例:*
````
stringmlst.py--predict-d<;示例目录>;-s--前缀<;数据库前缀>;-k<;k-mer size>;-o<;输出文件名>;
```
列表模式:
如果用户有不同位置的样本,或者如果配对的末端样本不是以传统方式存储的。所有的样本都将在同一个数据库中查询。所有样品将被视为单端或成对端。此模式要求用户提供一个列表文件,其中包含所有样本的列表以及位置。列表FI中的每一行le表示新样本。
单端样本的样本列表文件如下所示。
```
<;样本1 fastq文件的完整路径;
<;样本2 fastq文件的完整路径;
<;样本3 fastq文件的完整路径;

<;样本n fastq文件的完整路径
```
成对结束示例的示例列表文件如下所示。

```
<;示例1 fastq文件1的完整路径>;
<;示例1 fastq文件2的完整路径>;
<;示例2 fastq文件1的完整路径>;
<;示例2 fastq文件2的完整路径>;
<;samp的完整路径le 3 fastq file 1>;<;示例3 fastq file 2的完整路径>;


<;示例n fastq file 1的完整路径>;<;示例n fastq file 2的完整路径>;
````

用户拥有列表文件后,可以直接使用该工具。

*成对的最终示例:*
````
stringmlst.py--predict-l<;列表文件的完整路径>;-p--prefix<;数据库前缀>;-k<;k-mer size>;-o<;输出文件名>;
````
*单端示例:*
````
stringmlst.py--predict-l<;列表文件的完整路径>;-s--prefix<;数据库前缀>;-k<;k-mer size>;-o<;output file name>;
```

等位基因是基于其kmer支持的等位基因;等位基因1的kmers越多,等位基因1就越有可能是基因组中存在的等位基因。与srst2和其他基于mapping/blast的工具不同,stringmlst总是使用最大支持等位基因(等位基因与大多数kmer匹配)来推断st。最大支持度(报告的等位基因)和第二支持度(下一个最近的等位基因)之间的差异可以为低覆盖率阅读提供信息。"-z--fuzzy"阈值(默认值为300)为支持之间的差异指定了显著性。与srst2和torsten seemann流行的[pubmlst脚本](https://github.com/tseemann/mlst)非常相似,stringmlst在等位基因*语法中报告潜在的新等位基因或受密切支持的等位基因。对于高覆盖率读数,我们建议使用模糊阈值>;500。对于低覆盖率读取,模糊阈值为<;50。

coverage mode需要路径中的"bedtools"、"bwa"和"samtools"以及附加的python模块"pyfaidx"(有关安装信息,请参阅依赖项部分)。覆盖模式默认禁用模糊等位基因的显示,以支持通过将潜在读取映射到假定等位基因序列而产生的序列覆盖信息。在我们的测试中,覆盖模式稍微增加了预测时间(每个样本增加1秒)。

**请注意:**stringmlst*总是*从读取中推断st,模糊匹配和/或<;100%覆盖并不一定意味着找到了新的等位基因。

*从读取中获得基因覆盖率*
````
stringmlst.py--预测-1<;成对结束文件1>;-2<;成对结束文件e 2>;-p—数据库前缀<;前缀>;-k<;k-mer size>;-r-o<;输出文件名>;-c<;配置路径>;-c
`````
*更改搜索低覆盖率的模糊性读取*
````
stringmlst.py—预测-1<;成对结束文件1>;-2<;成对结束文件2>;-p—数据库的前缀<;前缀>;-k<;k-mer size>;-r-o<;输出文件名>;--f 50
```


`````````
````
``````
stringmlst.py—predict-1<;成对结束文件1>;-2<;成对结束文件2>;-p—pre修复数据库前缀>;-k<;k-mer size>;-t-o<;输出文件名>;
````
*获取与键入方案相关的读取文件。*
`````
stringmlst.py--predict-1<;成对结束文件1>;-2<;成对结束文件2>;-p--prefix<;数据库前缀>;-k<;k-mer大小>;-r-o<;输出文件名>;
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JPA。Eclipselink没有为mySQL提供密码,但它应该提供   我的Servlet和@FormDataParam存在java问题   java将什么作为上下文参数传递到文件I/O方法中?   如果两个值相同,java无法找到其中一个单选按钮   java在变量和方法名中使用下划线   JavaSpringMVC单线程安全?   klazz类的java Arraylist(反射Api)   java如何在数字字符串中查找最频繁的数字?   JavaAPI设计:使数据更易于阅读与强制更多API调用   JavaHadoopMapReduceforGoogleWebGraph   java无法启动gauge API:Runner意外退出   java如何在bluemix上使用ibm工作负载调度器?   拉取一年中某一周特定日期的所有日期   java为什么是我的角节点。js应用程序将图像上传到S3� 邮递员正确上传时的符号?   在不使用任何第三方jar的情况下将文件从本地传输到linux系统(java代码)   java将现有文件夹复制到Eclipse工作区中新创建的项目中   Java中的regex RegExp帮助   当使用“系统”外观时,Java组合框setSelectedItem会出现故障   JavaASM:在类的方法中获取局部变量名和值