用泊松二项滤波算法对原始序列读取进行质量滤波

moira的Python项目详细描述


moira
=


使用poisson二项式过滤算法读取质量过滤器原始序列。
moira.py脚本和poisson二项式过滤算法现在在下面的文章中进行了描述:

a高通量扩增子测序研究中读取过滤的新概念方法。
核酸研究,44(4):e40。


,可在线访问:http://nar.oxfordjournals.org/content/44/4/e40




一个pip可安装的python包。要安装它,只需在终端运行*pip install moira*。或者,下载并解压发行包并运行*python setup.py install test*

-moira.py包含poisson二项式算法的python实现。它将像这里描述的那样作为一个独立脚本执行。

-bernoullimodule.c包含poisson二项式过滤算法的c实现。它是作为一个python扩展模块编写的,如果编译为一个共享库,它将加快moira.py的速度。编译它的一个示例命令行是:


-nw懔align.pyx包含Neederman Wunsch aligner的cython实现,以便从成对读取加速contig构造。编译它的命令行示例如下:

gcc-fpic-shared-i/usr/include/python2.7/-o nw_align.so nw_align.c

-仅当不使用pip或setup.py安装脚本时,才需要手动编译c扩展。

-测试可以通过下载分发包(或克隆github存储库)并运行*python setup.py test*来执行。正确的安装应该通过所有测试。如果尚未编译C模块,则将跳过某些测试。请注意,moira.py脚本仍然能够运行,但运行速度较慢。如果程序在您的平台上不起作用(或者一切正常,但您仍有疑问),请随时与我联系:fpusan@gmail.com。



要求:

-要求输入序列(单个或成对)和质量顺序相同。
-要求t序列和质量仅存储在一行中(即>;header\\nsequence\\n>;header2\\nsequence2)。
-需要numpy。




用法:

-从成对读取(fasta+qual)中创建contigs,而不进行质量筛选:

moira.py--forward\u fasta=<;file>;--forward戋qual=<;file>;--reverse戋fasta=<;file>;--reverse戋qual=<;file>;--paired--仅戋contig

-从paired reads(fastq)生成contigs并执行质量过滤,输出结果采用fastq格式:

moira.py--forward戋fastq=<;file>;--reverse戋fastq=<;file>;——成对——一致性——后验——输出格式fastq

——质量过滤器已经装配好contig或单次读取:

moira.py——前验fasta=<;文件>;——前验qual=<;文件>;

-输入文件可以用gzip或bzip2压缩。这将由脚本自动检测。



输出:

-如果正在执行质量控制,则将使用通过质量控制的序列和未通过质量控制的序列生成文件。未通过质量控制的控件的标题中将包含一个简短的报告。e qc.

<;prefix>;.qc.good.fasta
<;prefix>;.qc.good.qual
<;prefix>;.qc.bad.fasta
<;prefix>;.qc.bad.qual

-否则,只生成两个文件。

<;prefix>;.contigs.fasta
<;prefix>;.contigs.qual

-默认前缀是不带扩展名的前向输入名称。库斯汤姆前缀可以用--output_prefix选项指定。
-如果--output_format设置为"fastq",将生成fastq文件,而不是fasta+qual文件。
-也可以通过--output_compression参数将输出压缩为gzip或bz2格式。
-如果折叠相同的序列,则会生成morsur格式化的名称文件(或us也将生成earch格式的序列头。
-moira.py将替换序列名中的":"以与mothur管道兼容。




参数:

-neederman-wunsch对齐器参数:
--match(默认1):match score
--gap(d默认值-2):间隙惩罚
--mismatch(默认值-1):mismatch惩罚

-contig构造函数参数:

--insert(默认值20):用于填充互补间隙或歧义的基的质量。
--deltaq(默认值6):最小质量差异在两个不匹配的基之间允许CE,因为在一致序列中不包含N。
--consusm_qscore(默认为"best")
-best:在对齐的每个位置上使用最佳质量作为一致质量分数(除非CO在该位置引入歧义NTIG构造函数。在这种情况下,报告的质量分数将始终为2。
-和:在匹配基中,一致性质量分数将是在对齐位置上两次读取的质量的总和。
-后:使用Edgar&Flyvbjerg(2015)方法计算一致性质量岩心。insert和deltaq参数将被忽略。如果两个不匹配的基具有完全相同的质量分数,则会在间隙中引入歧义。在这种情况下,报告的质量分数将始终为2。
--qscore_cap(默认值40):要报告的最大一致质量分数。更高的共识质量分数将被削减到-qscore_cap的值。将其设置为0将移除上限。
--trim_overlap(默认为false):将contig修剪到重叠区域。

-质量过滤参数:

--collapse(默认为true):如果为true,则在质量控制之前将折叠相同的序列,并折叠具有b的序列。EST质量将用作整个组的代表。
--误差计算(默认为"泊松二项"):用于误差计算的算法。
-泊松二项:计算泊松二项分布(伯努利随机变量之和)。
-泊松:近似将bernoulli随机变量之和转换为poisson分布。
-bootstrap:错误分布的数值生成(已弃用)。
--ambigs(默认值视为错误):质量检查期间对不明确位置的处理。
-treat为错误:将比amb考虑图像总是导致误读基。
-disallow:将丢弃具有模糊性的序列。
-ignore:将忽略模糊性。
--truncate(默认为none):在质量控制之前将序列截断为固定长度。丢弃小于该长度的序列。
--min_overlap(默认为none):丢弃小于指定重叠长度的contigs。如果使用单端读取,将被忽略。
--round:过滤前将预测的错误舍入到最接近的整数。
--uncert(默认值0.01):由于排序错误,观测序列与原始序列的最大散度。
--maxerrors(无默认值value):序列中允许的最大错误数。如果指定为参数,则将重写--uncert。
--alpha(默认值0.005):低估序列实际错误的概率。
--bootstrap(默认值100):bootstrap方法用于错误计算的每个位置的复制数。

r:

--成对:输入文件是成对的结束文件,将被组合到contigs中。
--仅限_contigs:assemble contigs,不做质量控制。
--relabel(默认为false):如果引入前缀字符串,将为序列生成顺序标签,格式为<;prefix>;n,其中n=1,2,3…
--output_format(默认为fasta):
-fasta:以fasta+qual格式输出文件。
-fastq:out以fastq格式输出文件。
--output_prefix:输出文件名的前缀。
--output_compression(默认为none):应用于输出文件的压缩。可以是"none"、"bz2"或"gzip"。
--pipeline(默认morsur):
-morsur:折叠序列的输出将采用morsur的fasta+names格式。
-usearch:折叠序列的输出将位于一个fasta文件中,大量信息存储在序列头中。
--fastq-u offset(默认33):ascii/qscore编码。
--processors(默认值1):要使用的进程数。
--silent:不打印欢迎、进度和再见消息。仍将打印警告。



注释:

-对齐参数设置为复制Mothur对Needleman Wunsch算法的默认实现。

-还将复制Mothur Make.contig中的"insert"和"deltaq"参数。它们设置为默认值。更多详情请访问www.mothur.org/wiki/make.contigs。只有当--consensus qscore参数设置为"best"或"sum"时,才会应用它们。

-我们现在提供了一个选项,用于计算报告一致性质量分数的后验误差概率,如Edgar&Flyvbjerg(2015)所述。这可以通过添加"-consusment_qscore-recurrent"或"-q-recurrent"标志来实现,如上面的示例所示。虽然这种方法在理论上是合理的,但它只改进了对一些模拟社区样本使用默认的'-q-best'选项获得的结果。

-将伯努利随机变量的和近似为泊松分布比计算其精确和(泊松二项分布)更快。它特别适用于长读(>;500 nt)。也就是说,poisson二项式滤波算法也是用c语言实现的,即使是python实现也足够快或处理大数据集。bootstrap方法是一种计算bernoulli随机变量和的数值算法。它仅用于测试目的。

-质量过滤将丢弃预期有超过"alpha"机会偏离原始序列的contig,该机会大于"uncert"参数指定的值。这意味着,在计算两个给定序列之间的距离时,观测到的距离最多为"dist+2\*uncert",其中"dist"是这些序列之间的原始距离,没有排序错误。因此,一个好的经验法则是将有效的otu聚类距离考虑为实际的"otudist-2\*uncert",其中otudist是用于对观察到的序列进行聚类的距离。




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

推荐PyPI第三方库


热门话题
java如何在构造函数外部添加鼠标侦听器   java如何使用比较器对列表进行排序以正确排序空值?   javajavax。由于javax,邮件“535.7.3身份验证失败”。邮件升级(v1.3.1至v1.5.2)   java将arraylist流到固定的二维数组中并打印?   RecyclerView适配器上的java上下文   java如何为此Twitter API为KafkaProducer建立连接   java Spring安全性重写WebSecurity配置适配器的配置(AuthenticationManagerBuilder)是否会影响全局应用程序?   线程“awteventque0”NullPointerException中的java异常   if条件中的null值和null指针异常java   java树集<Object>允许相同类型的多个对象   java定义类;我认不出   字符串java replaceAll()   JAVAutil。scanner(Java)读取文件时如何跳过空格?   java在swing中关闭flash屏幕   java在Wildfly 16中的应用程序中加载pk12文件   有没有工具可以自动生成屏幕抓取的Java代码   创建意图时,java方法getParcelableExtra()返回null   将数据从java传递到jsp   java Android Studio |永久保存布局