基于模型的芯片序列数据分析

MACS2的Python项目详细描述


#macs(2.1.2)

并在"pileup"、"filterdup"和"randsample"子命令中启用对bampe
和bedpe格式的支持。当format为bampe或bedpe时,"pile up"命令将堆积由每个读对的左端和右端的映射位置定义的整个片段。感谢@purcaro

2)为callpeak命令添加了选项,用于在峰值调用期间调整max gap和min len。感谢@jsh58!

3)将callpeak选项"-to large"替换为
"-scale to large"。


4)将randsample选项"-t"替换为"-i"。

*bug fixes

1)修复了与122和146相关的内存问题。与249相关,thank@shengqh


3)在设置命令行qvalue cutoff时修复了一个错误。

<4)更好地描述了窄峰的第5列。thank@alexbarrera

5)修复了对端数据平均片段长度的计算。感谢@jsh58

6)修复了在计算p/q值和log
似然比时由khash引起的错误。感谢@jsh58

7)源代码中的更多拼写调整。感谢@mr-c

2.1.1


*取消标记:rc。

*修复了拼写错误。合并请求120。谢谢@ MR-C!

*更改读取与callpeak和filterdup命令相关的bam/sam文件的筛选条件。现在,标记为1028或"PCR/光学复制"的
读取/校准仍将被读取,尽管稍后MACS2可能会将其确定为复制。与旧问题有关。抱歉,我忘记处理它了
年!

《macs自述》(2.1.2)

为了解决芯片序列分析方法的不足,我们提出了一种基于模型的芯片序列分析(macs)算法,用于识别转录因子结合位点。macs捕获基因组复杂度的影响来评估富含
的芯片区域的意义,并通过结合测序标签
位置和方向的信息来提高
结合位点的空间分辨率。macs可以很容易地单独用于chip seq数据
,或者随着特异性的增加与对照样本一起使用。


BDGDIFF,bdgbroadcall}`

常规峰值呼叫示例:`macs2 callpeak-t chip.bam-c control.bam-f bam-g hs-n test-b-q 0.01`

宽峰值呼叫示例:`macs2 callpeak-t chip.bam-c control.bam--broad-g hs--broad cutoff 0.1`

在macs中可用,用作子命令。

子命令描述
-----
主子命令macs2函数从对齐结果调用峰值。
bdgpeakcall从bedGraph输出调用峰值。
bdgbroadcall从床图输出调用宽峰。
bdgcmp比较床图格式的两个信号轨迹。
bdgopt操作床图文件的score列。
cmbreps结合重复实验的得分图表。
bdgdiff基于成对四个bedgraph文件的差分峰值检测。
filterdup删除重复读取,然后以bed/bedpe格式保存。
predict d根据对齐结果预测d或片段大小。
pileup pileup对齐读取(单端)或片段(对端)
randsample随机选择总读取数/百分比。
refinepeak进行原始读取对齐,优化峰值。

本文档中的lpeak模块。请使用"macs2
command-h"查看每个
模块的每个选项的详细说明。


它可以通过"macs2
callpeak"命令调用。如果在不带参数的情况下键入此命令,您将看到命令行选项的完整说明。这里我们只列出基本选项。


文件可以采用--format选项指定的任何支持格式。check--
详细信息的格式。如果有多个对齐文件,可以将它们指定为"-t a b c"。macs将把所有这些文件放在一起。

请遵循与
-t/--处理相同的方向。

macs将使用此字符串名
创建输出文件,如"name_peaks.xls"、"name_negative_peaks.xls"、"name_peaks.bed"、"name_summits.bed"、"name_model.r"等。因此,请避免这些文件名与您的现有文件之间的任何冲突。






<

macs2将所有输出文件保存到
选项的指定文件夹中。















格式标签文件格式,可以是"eland"、"bed"、"eland"、"eland"、"eland"、"eland"、"eland"、"eland"、"eland"、"eland"标签文件格式格式



标签文件格式标签文件格式,可以是"eland"、"bed"、"bed"、"bed"、"eland"、"eland"、"eland"、"eland最后",
"elandexport"、"elandmultipet"(用于对端标记)、"sam"、"bam"、"蝴蝶结"、"bampe"或"bedpe"。默认值为"auto",允许macs
自动决定格式。当您
组合不同格式的文件时,"自动"也很有用。注意,macs不能用"auto"来检测
"bampe"或"bedpe"格式,您必须隐式地指定"bampe"和"bedpe"的格式。最常见的格式是bed或bam/sam。

bed
第三个"结束位置"、
和第六个"链"。


bam/sam


如果格式是bam/sam,请检查
(http://samtools.sourceforge.net/samtools.shtml)中的定义。如果为成对的结束数据生成bam文件,macs将只保留left mate(5'
结束)标记。但是,当指定了格式bampe时,macs将使用从对齐结果推断的
实际片段进行读堆。


bedpe或bampe

这样,macs2将把bam或bed
文件作为成对的结束数据处理。macs2不会构建
正负链读的双峰分布来预测片段大小,而是使用对读的实际插入大小来构建片段
堆。


bampe格式只是包含对端对齐信息的bam格式,比如那些来自BWA或者蝴蝶结的。

bedpe格式是一种简化且更灵活的bed格式,它只包含定义染色体名称的前三列,即成对末端片段的左右位置。请注意,这与bedtools使用的格式不同,
bedtools版本的bedpe实际上不是标准的bed
格式。




请注意,您需要确保
在蝴蝶结输出中,您只为一个
读取保留一个位置。如果您想在
(http://bowtie bio.sourceforge.net/manual.shtml)


查看蝴蝶结手册以获取详细信息,以下是我从上述网页复制的ASCII字符的蝴蝶结输出定义:

1。对齐
2的读取名称。对齐中的读取方向nt,"-"表示反补,"+"
否则
3。发生对齐的引用序列的名称,或者如果未提供名称,则序号id

4。向前参考链的0基偏移,其中最左边的对齐字符出现
5。读取顺序(如果方向-
6,则反向补全。ascii编码的读取质量(如果方向为-,则相反)。
编码的质量值在phred刻度上,编码的ascii偏移量为33(ascii char!)
7。与此对齐中对齐的引用字符相同的读取与对齐的其他实例数。这不是读取与相同数量的不匹配项对齐的其他位置的数目。此列中的数字
通常不是该数字的良好代理(例如,
此列中的数字可能为"0",而具有相同不匹配数的其他对齐数可能较大)。此列以前称为"保留"。
8。逗号分隔的不匹配描述符列表。如果对齐中没有不匹配项,则此字段为空。单个描述符的格式偏移量为:reference base>;read base。
偏移量表示为从高质量(5')
读取结束时的0基偏移量。


eland
如果格式为eland,则文件必须是eland结果输出文件,
每行只能表示一个标记,字段为:

1。序列名(如果格式不是fasta,则从文件名和行号派生)
2。顺序
3.匹配类型:

*nm:未找到匹配。
*qc:未完成匹配:qc失败(基本上ns太多)。
*rm:未完成匹配:重复屏蔽(如果指定repeatfile.txt,则可能会看到)。
*u0:找到的最佳匹配是唯一的完全匹配。
*u1:找到的最佳匹配是唯一的1-错误匹配。
*u2:找到的最佳匹配是唯一的2错误匹配。
*r0:找到多个精确匹配。
*r1:找到多个1-错误匹配,没有精确匹配。
*r2:找到多个2-错误匹配,没有精确匹配或1-错误匹配。

4。找到的完全匹配项数。
5。找到1个错误匹配项的数目。
6。找到2个错误匹配项的数目。
只有在找到唯一的最佳匹配时才能看到其余字段
(即字段3中的匹配代码以"u"开头)。
7。找到匹配的基因组文件。
8.匹配位置(文件中的基从1开始编号)。
9。匹配方向(F=正向,R=反向)。
10.如何解释read中的n个字符:("."=不适用,
"d"=删除,"i"=插入)。其余字段仅在
唯一不精确匹配(即匹配代码为u1或
u2)的情况下可见。
11。第一替换错误的位置和类型(例如12a:基12
是a,而不是读取的任何内容)。
12。第一个替换错误的位置和类型,如上所述。

elandmulti

序列名
2。顺序
3.NM,QC,Rm(如上所述)或以下各项:
4.x:y:z其中x、y和z是找到的精确、单错误和双错误匹配数
5。空白,如果没有找到匹配项,或者如果找到太多匹配项,或者以下内容:
`bac_u plus_vector.fa:163022R171028F2,e_coli.fa:3909847R1这表示
bac_u plus_vector有两个匹配项。fa:one in reverse
direction start at position 160322 with one error,one in
从位置170128开始向前,有两个
错误。还有一个与大肠杆菌fa.匹配的错误,`





<1)对于床格式,第6列的链信息是
macs所必需的。请注意床上的坐标rmat是基于零且半开放的
(http://genome.ucsc.edu/faq/faq tracks tracks1)。

2)对于纯eland格式,macs只接受与匹配类型u0、u1或u2匹配的匹配
,也就是说,只有对
小于3个错误的序列的唯一匹配才涉及计算。如果原始eland文件中包含多个
单个标记的点击,请删除
冗余以保持该排序标记的最佳点击。

3)eland导出格式支持有时可能不适用于
数据集,因为人们可能会错误标记第11列和第12列。macs
使用第11列作为序列名,序列名应该是染色体名。




是可映射的基因组大小或有效的基因组大小,即
定义为可测序的基因组大小。由于染色体上的
重复特征,实际可绘制的基因组大小
将小于原始大小,约占基因组大小的90%或70%。对于ucsc human hg18
程序集,建议使用默认的hs--2.7e9。以下是有效基因组
大小的所有预编译参数:

*hs:2.7e9
*mm:1.87e9
*ce:9e7
*dm:1.2e8


如果不指定,macs将尝试使用输入处理文件的前10个序列来确定标记大小。指定它将覆盖自动确定的
标记大小。

默认值
为0.05。对于宽分数,可以尝试0.05作为截止值。q值由p值通过benjamini-hochberg程序计算得到。如果指定了-p,macs2将使用pvalue而不是qvalue的



这意味着macs不会考虑峰值
候选区域的局部偏差。


默认情况下,对于小的局部
区域(--slocal),macs考虑1000bp;对于大的局部区域(--llocal),macs考虑10000bps,后者
捕获来自长距离效应的偏差,如开放染色质
区域。你可以根据你的项目调整这些。记住,如果区域设置得太小,输入数据中的尖峰可能会杀死有效峰值。



macs使用此参数在
5'->;3'方向扩展读取,以固定大小的片段。例如,如果转录因子的
结合区的大小是200bp,并且您希望
绕过macs的模型构建,则可以将此参数设置为200。此选项仅在设置了--nomodel或macs
无法构建模型并且--fix bimodal处于启用状态时才有效。


你可以在这里设置任意的血压变化。请在设置默认值(0)以外的值时使用
自由裁量权。当设置了
--nomodel时,macs将使用此值移动切割端(5’)
,然后应用--extsize从5'到3'方向将它们扩展到
片段。当该值为负时,端点将朝
3'->;5'方向移动,否则将朝5'->;3'方向移动。建议将其保留为Chip Seq数据集的默认值0,或将-1*extSize的一半与--extSize选项一起保留,以检测丰富的切割轨迹,例如
某些DNASEI Seq数据集。注意,如果成对结束数据的格式为bampe或bedpe,则不能设置除0以外的值。默认值为0。

下面是一些组合--shift和--extsize的示例:

1。寻找丰富的切割位点,如一些DNA序列数据集。在
这种情况下,顺序读取的所有5'端都应在
方向上扩展,以平滑堆积信号。如果所需的平滑窗口
为200bps,则使用"--nomodel--shift-100--extsize 200"。

2。对于某些核小体seq数据,我们需要使用半核小体大小来堆积
核小体的中心,以进行小波分析
(例如nps算法)。由于包裹在核小体上的DNA约为
147bps,可以使用此选项:`--nomodel--shift 37--extsize 73`.


默认的
"auto"选项使macs使用1e-5作为pvalue cutoff在完全相同的
位置基于二次正态分布计算最大标记;
,"all"选项保留每个标记。如果给定一个整数,则在
大多数标记数将保持在同一位置。
默认设置是在同一位置保留一个标记。默认值:1

宽区域由另一个截止点控制,即宽截止点。宽区长度的最大
长度是macs的4倍。默认值:
false

除非设置--broad
,否则此选项不可用。如果设置了-p,这是一个pvalue截断,否则,它是一个
qvalue截断。默认值:0.1

默认情况下,或设置为"small",则
较大的数据集将向较小的数据集缩放。小心,放大小数据会导致更多误报。



bedGraph文件将存储在当前目录中,名为
"name_treat_pileup.bdg"用于处理数据,"name_control_lambda.bdg"
用于来自控件的本地lambda值,"name_treat_pvalue.bdg"用于
poisson pvalue scores(in-log10(pvalue)form),
"name_treat_q value.bdg"的q值得分来自
[benjamini–hochberg–yekutieli procedure](http://en.wikipedia.org/wiki/false_discovery_rate dependent_u tests)。

macs现在将重新分析信号轮廓的形状(p或q值
切断设置)在每个峰值内消除子峰值
从一般过程调用。强烈建议检测
相邻的绑定事件。在使用时,大的
峰值区域的输出子峰值将具有相同的峰值边界,并且不同的分数
和峰值位置。


` name_peaks.xls`是一个表格文件,其中包含有关名为peaks的
的信息。您可以在excel中打开它,并使用excel
函数进行排序/筛选。信息包括:

-染色体名称
-峰起始位置
-峰结束位置
-峰区长度
-绝对峰峰位置
-峰峰峰堆积高度,-峰峰峰对数10(p值)(如p值=1e-10,那么这个值应该是10)
-这个峰顶对应随机泊松分布的倍丰度,局部lambda,-log10(qvalue)在峰顶


xls中的坐标是基于1的,这与床的形式不同。

2。` name_peaks.narrowpeak`是BED6+4格式文件,包含
峰值位置以及峰值、pValue和qValue。你< BR>可以加载到UCSC基因组浏览器。一些特定的
列的定义是:

-5th:显示的整数分数计算为"int(-10*log10qvalue)"。请注意,当前此值可能超出了[UCSC编码窄峰格式](https://genome.ucsc.edu/faq/faq format.html format12)中定义的[0-1000]范围
-7:折叠更改
-8:-log10p值
-9:-log10qvalue
-10:相对峰值位置启动

文件可以直接加载到ucsc基因组浏览器。如果要用其他工具分析起始轨迹线,请将其删除。


3.` name_summits.bed`采用bed格式,其中包含每个山峰的峰顶
位置。此文件中的第5列
-log10p值与name_peaks.bed相同。如果要在绑定站点找到
基序,建议使用此文件。文件
可以直接加载到ucsc基因组浏览器。如果要用其他工具分析,请删除
起始轨迹线。

4.` name_peaks.broadpeak`采用bed6+3格式,与
narrowpeak文件类似,只是缺少注释
peak summit的第10列。


5。` gappedpeak是bed12+3格式,包含
宽区域和窄区域。第五列是10*-log10qvalue,
以便更兼容在ucsc浏览器上显示灰度。第7列
是该区域第一个窄峰的起点,第8列
是终点。第9列应该是rgb颜色键,但是,
我们在这里保留0以使用默认颜色,因此如果需要,请更改它。第10列显示了包括起始区域
1bp和结束区域1bp的块数。第11列显示每个块的
长度,第12列显示每个块的开头。13:
折叠变化,14:-log10p值,15:-log10q值。文件可以直接加载到ucsc基因组浏览器中。

6.` name_model.r`是一个r脚本,可用于根据数据生成关于模型的pdf
图像。通过以下方式将其加载到r:

`$rscript name_model.r`

目录中生成。注意,绘制此图需要r。

>7。bdg文件是bedgraph格式的,可以导入ucsc
基因组浏览器,或者转换成更小的bigwig
文件。有两种bdg文件,一个用于治疗,另一个用于控制。

调用

检查macsv2包中的三个脚本:

1。bdgcmp可用于"*_treat_pileup.bdg"和
"*_control_lambda.bdg"或来自其他资源的bedGraph文件
来计算分数轨迹。


2。bdg peak call可用于`*_treat_pvalue.bdg`或从其他资源的bdgcmp或bedgraph文件生成的
文件,以
具有给定截止值的调用峰值、相邻可分峰之间的最大间隙
峰值和最小峰值长度。bdgbroadcall的工作原理与bdgpeakcall类似,但是它将以bed12格式输出"u broad_peaks.bed"。差异调用工具bdgdiff,可用于治疗1和对照1、治疗2和对照2、治疗1和治疗2、治疗2和治疗1之间的4个床位图
文件。它将根据最小长度、最大间隙和截止值的参数设置输出一致且唯一的位置
。您可以组合子命令来执行逐步峰值调用。阅读[macs2 wikipage]上的详细信息(https://github.com/taoliu/macs/wiki/advanced%3A-call-peaks-using-macs2-subcommands)

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

推荐PyPI第三方库


热门话题
java如何拆分字符串(基于各种分隔符),但不保留空格?   解析。Json格式的txt文件和knime中的java   java Spring rest api为什么在rest api调用的响应中更改了数据类型   升华文本3抛出java。lang.ClassNotFoundException,而记事本++不存在   java Android指纹扫描仪在尝试5次后停止工作?   java Android如何设置精确的重复报警?   java如何使用HTTPGET connect为access API输入用户名和密码   java当测试报告显示没有测试失败时,Gradle为什么说“有失败的测试”?   用Gson实现java获取响应   MapReduce程序中函数错误的java不可映射参数   java spring安全性不符合自动代理的条件   java GWT使用异步回调进行同步/阻塞调用   java奇怪的类数组问题无法在jsp中显示   如何在java中使用PrinterJob使用epl打印条形码   java如何在JTable中居中单元格   将Java Mockito测试转换为Kotlin   html Java正则表达式模式匹配到多个相同标记   testCompile中缺少java Gradle(Android)多项目依赖项   在输入提示后输入字符串时发生java FileNotFoundException