一种用于高覆盖率芯片序列实验的高效寻峰器。

pique的Python项目详细描述


pique软件包是一个高效的芯片seq
实验的峰值查找器,它可以产生对参考基因组的高覆盖率。它是为研究盐生细菌(Salinarum sp.nrc1)的基因表达而开发的,使用条形码40bp illumina reads进行测序,这是加州大学戴维斯分校Marc Facciotti实验室正在进行的项目的一部分。联系方式:皮克是乔纳森实验室的研究生拉塞尔·内克斯写的。

russell的博客:http://vort.org/
russell的twitter:@ryneches
russell的电子邮件:ryneches at ucdavis dot edu
实验室主页:http://phylogenomics.wordpress.com/
项目页面:http://ryneches.github.com/pique/

我们建议使用
virtualenv,因为它很好。

$cd~
$virtualenv--系统站点包opt
$path=~/opt/bin:$path
$pip install numpy前提
$pip install scipy前提
$pip install cython前提
$pip install pysam#先决条件
$pip install argcomplete;建议包
$pip install matplotlib;建议包
$pip install ipython;建议包
$pip install pique建议在大多数前提条件下使用apt get。


$sudo apt get install python numpy\
python scipy\
python matplotlib\
python virtualenv\
cython\
ipython
$cd~
$virtualenv--系统站点包opt
$path=~/opt/bin:$path
$pip install pysam
$pip install argcomplete
$pip install pique
$pique test

.bashrc文件,建议将~/opt/bin添加到路径:

$cd~
$cat>;.bashrc
path=~/opt/bin:$path
export path
[ctrl-d]


macos:很遗憾,macos没有virtualenv或任何有用的全局包管理系统。下面是如何解决这个问题的方法:

$sudo easy廑u install pip廑全局安装pip

确保pip正常工作:

$pip
用法:pip command[选项]
pip:错误:必须发出命令(使用"pip help"查看
命令列表)

安装virtualenv:

$sudo pip安装virtualenv


确保工作正常:

$virtualenv
您必须提供dest_dir



现在,向上滚动并遵循一般说明。


通过将其放入.bashrc中,可以启用pique命令的tab
completion:





testing data
----


在figshare上(http://figshare.com/articles/a_chip-seq_test_dataset/98106)。
它是由一个his标记的tfbd下拉列表制成的,该下拉列表是在illumina gaii上测序的。使用[bowtie](http://bowtie-bio.sourceforge.net/)将读取结果映射到一个削减的
染色体和一个质粒。未映射的读取被丢弃。数据集
可单独引用为:

芯片序列测试数据集。拉塞尔·内切斯、马克·法乔蒂、伊丽莎白、G·威尔班克斯、菲利普·M·塞泽。**figshare**。
检索时间:2012年11月27日06:12(GMT)
http://dx.doi.org/10.6084/m9.figshare.98106


自动下载到`/tmp/pique/`,
生成的输出数据将写入您当前的工作目录中。


tests
----


tests设计用于nose。

http://somethingaboutorange.com/mrl/projects/nose/


其中包含setup.py的软件)。


$cd pique
$noestests


dependencies
----


此软件包需要以下软件包:

numpy
pysam

建议:

matplotlib
ipython
samtools
argcomplete
gaggle genome browser

usage
----


此软件既可以用作独立应用程序,也可以用作您自己的软件访问的库。

有一个自文档化的
命令行界面:

$pique--help
用法:pique[-h]{batch,tk,test,bam2wav,mapmaker}…

pique,一个芯片序列分析工具。

--帮助显示此帮助消息并退出

命令:
{batch,tk,test,bam2wav,mapmaker}
用于峰值检测的批处理命令行模式
用于峰值检测的tk gui模式
测试模式,下载在线测试数据
bam2wav bam-to-wav转换实用程序
mapmaker基因组分析区域映射实用程序


应用程序有四种模式,batch、tk、test和mapmaker。要访问gui界面,请运行:


$pique tk


将显示应用程序窗口。在
"project name"字段中输入项目的名称;这将是输出
文件的名称前缀。为IP和BG(后台)磁道选择文件;这些
应该是索引BAM文件,通过将您的IP和控制
读取映射到引用序列来创建。许多不同的工具可用于
这一点,如蝴蝶结、bwa和虾。


ip和背景bam文件必须包含相同的contig名称。

如果需要,请选择一个基因组映射文件("映射(可选)"。请参见下面的
如何创建一个序列。

输入序列库的主要片段长度,以及用于序列运行的
读取长度。如果您执行了质量
修整,则可能希望在对读取长度进行
修整后使用平均或中值读取长度。

然后,单击"运行"。将加载和处理BAM文件,
输出文件将写入调用pique.py的目录中。细菌基因组的运行时间取决于
映射读取数和基因组长度。对于我们的项目,我们发现运行大约需要一到五分钟。




$pique batch-h
用法:pique batch[-h]-名称-ip ipfile-bg bgfile-map mapfile
[-a alpha][-l l_thresh][-p]


可选参数:
-h,--帮助显示此帮助消息并退出
-名称项目名称
-IP IP文件BAM文件用于IP数据与在gui中找到的相同,
除了制作pickle文件的选项。如果此选项被启用,在完成分析之后,pique将把整个分析工作台对象转储到pickl中。E文件。这对于python中的调试和数据后处理非常有用。例如,
pickle文件可用于将分析工作台加载到
交互式ipython会话中,并用于生成图形。


http://docs.python.org/2/library/pickle.html

----

$pique mapmaker-h
用法:piquemapmaker[-h]-名称-bamfile bamfile[-window
window]
[-stream stride]-最高-最低
[-bins bins]


--帮助显示此帮助消息并退出最低柱状图存储箱
-存储箱柱状图存储箱数

----


作为可视化的替代方案,pique包含一个用于将芯片序列数据转换为音频数据的实用程序。从ip对齐中减去背景对齐
,并为每个contig编写单独的wav文件
。用于在正向和反向方向读取映射
的覆盖率信息分别在左侧和右侧音频通道上表示。


$pique bam2wav-h
用法:pique bam2wav[-h]-名称-ip ipfile-bg bgfile

可选参数:
-h,--帮助显示此帮助消息并退出
-名称项目名称
-ip ip file bam file for ip data
-bg bgfile bam file for control data



genome map file
----

genome map file是一个gff格式的文件,描述了三种类型
特征;分析区域、掩蔽区域和规范化
区域。分析和掩蔽区域注释是可选的;
但是,每个分析区域必须至少有一个规范化
区域。(注意:如果不描述任何分析区域,则会在每个contig中自动创建一个
。因此,如果不
描述contig的任何分析区域,则必须至少在
处描述该contig的一个规范化区域。

分析区域应使用
文件中的功能名称"analysis_region",并描述要独立处理的contig的子区域。例如,如果由于基因剂量相对于参考值的变化而导致覆盖率
水平不一致,
单独处理剂量区域可提高峰值检测。


屏蔽区域应在文件中使用特征名称"mask",并
描述子区域要从分析中删除
的分析区域。(注意:掩蔽区域*必须*完全落在分析区域内
。)这对于隐藏由重复区域(如IS元素)引起的覆盖率
畸变非常有用。

默认情况下,为每个contig创建一个描述整个contig的分析区域。当用户通过
映射文件加载分析区域时,将删除该contig的默认分析区域。

规范化区域应使用map
文件中的"norm_region"名称,并描述被认为没有绑定事件的区域(在分析区域内)。这些区域将用于
校准IP轨迹和控制
轨迹之间的序列覆盖率。如果用户选择了较差的标准化区域,pique将
仍然起作用,但是会产生不正确的标准化因子,
可能会过于严格地设置峰值检测截止值。


基因组图谱文件中描述的特征必须使用与IP和背景BAM文件相同的contig
名称。要查看它们,请运行:

$samtools view-h bamfile.bam

gff文件中的大多数列都是未使用的,并且可能会保留为空(只要存在正确数量的制表符,
)。所需字段为:


0 contig name
2'分析区'、'掩码'或'标准区'
3起始坐标
4结束坐标


>提供了一个示例基因组图文件(data/map.gff)。

output files
----

<;name>;.ip.track:IP数据的GGB格式跟踪文件
<;name>;.bg.track:BG数据的GGB格式跟踪文件
<;name>;.bookmark:每个峰值的GGB书签列表
<;name>;.qp:GGB格式定量位置数据
绑定坐标的数量
<;名称>;.gff:每个峰值的gff文件
<;名称>;.peak.tsv:tsv格式的峰值统计量

gff输出文件包括以下列:


0 contig name
1软件版本
2功能描述
3开始坐标
4结束坐标
5富集率相对于背景

tsv输出包括以下列:


0 contig
1 start
2 stop
3 binds\u at绑定坐标
4富集率
5平均值
6标准_contig_norm所有标准的标准偏差
7..#所有后续列都是规范

除了
所需的ggb书签信息之外,书签文件还包含一些附加注释:

诺姆0,诺姆1…从
标准化区域


警告
----


绑定坐标计算的标准化因子:峰值调用步骤(pique.py)将尝试为其找到的假定峰值计算绑定坐标。使用的
方法非常简单,但是我们发现它通常在预期结合位点的5bp内。


双峰:一些富集区域包含两个结合位点,但是
算法无法对它们进行反褶积。我们尝试通过其他几个调用者运行
这些区域,但收效甚微。
我们提供了一个脚本,用于识别可能是
双峰的站点,以帮助进行校正。

过滤统计上不重要的峰值。我们发现,这部分分析对数据和实验都有一定的特殊性。

为了解决这一问题,PIQUE的设计目的是以潜在的高假阳性率为代价实现低假阴性率(看起来,与其他软件相比,假阳性率实际上相当低,但我们没有实现任何过滤来防止它们的发生)。其思想是,找到一个假定的峰值是一项艰苦的工作,一旦发现了不满意的峰值,就不难丢弃它们。因此,有必要进行某种后过滤。pique为用户提供输出,可用于支持各种统计测试。


一些推荐的过滤可能包括:

[1]消除明显小于序列库大小范围的峰值,也许还有其他
与之聚集的峰。

[2]消除标准化富集比低于1.0的峰,
或与之聚集的峰。

[3]消除具有预测的结合位点的峰,这些结合位点与富集区的中心非常偏离。

尝试
其中的一个或全部,可能通过聚类来避免任意的
截断。

但是,我们不建议仅通过统计分析来生成"完美"的峰值列表


为了消除所有的假阳性,可能不值得进行非常复杂的统计工作。我们建议应用一些基本的统计
测试,然后将轨迹、定量位置和书签
加载到gaggle基因组浏览器中。

数据加载到浏览器中后,查看书签列表。当您选择书签时,浏览器将自动扫描到基因组的
区域并突出显示假定的峰值区域。如果您认为峰值为假阳性,请按删除键。

完成后,保存书签文件的副本。我们发现,用这种方法提取微生物基因组大约需要10到20分钟。


他们相信很快就会有五万到一千美元的身价,而且他们和其他人一样经常是世界上没有二十五美元的人。你遇到的每一个人都有自己的新矿藏值得夸耀,
和他的"标本"准备好了;如果有机会的话,他肯定会把你带到角落里来,帮你一个忙,而不是帮他,让你在"黄金时代"离开几英尺,或者"莎拉
简",或者其他一些不知名的人。一叠庄稼,只要有足够的钱,就可以得到一顿"正餐"。你决不能透露他以如此毁灭性的代价向你出价,因为他愿意做出这种牺牲只是出于对你的友谊。然后他会从口袋里掏出一块石头,神秘地环顾四周,仿佛他害怕自己会被人拦路抢劫,如果被人抓住,他会用石头轻拍自己的舌头,拍拍眼镜,然后惊呼:"看!就在那红色的土里!看到了吗?看到金色的斑点了吗?那银色的条纹呢?那是阿伯叔叔的。有10万吨这样的东西在眼前!就在眼前,小心!
当我们踏上它,窗台变得坚固,它将是世界上最富有的东西!看看化验结果!我不想让你相信我看看化验结果!"

然后他会拿出一张油腻的纸,上面写着化验岩石的
部分显示出含有银和
金的证据,它们的比例是成百上千美元与
吨的比例。


最丰富的一块岩石,然后化验!通常,一吨中只有一块大小为费尔伯特(filbert)的碎片含有金属颗粒,而化验结果却让它假装代表了它所产生的一吨垃圾的平均值。

-马克吐温,粗制滥造



如果满足以下条件,则允许使用:


*源代码的重新分发必须保留上述版权
注意,此条件列表和以下免责声明。

*以二进制形式重新分发必须复制上述版权声明,此条件列表以及
分发版提供的文档和/或其他材料中的以下免责声明。

*A未经事先书面许可,Davis或其贡献者的姓名可用于支持或推广从本软件衍生的产品。



本软件由版权所有者和贡献者提供。默示保证,包括但不限于对适销性和对特定目的的适用性的默示保证,概不负责。在任何情况下,版权持有人或贡献者均不对任何直接、间接、附带的、特殊的、惩戒性的或间接的损害(包括但不限于购买替代货物或服务、使用损失、数据或利润)负责;(或业务中断)无论是何种原因造成的,基于任何责任理论,无论是合同责任、严格责任还是侵权责任(包括疏忽或其他原因),无论是以何种方式使用本软件而产生的,即使已告知此类损害的可能性也是如此。


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

推荐PyPI第三方库


热门话题
如果在每次迭代后返回到原始状态,java是否可以安全地对正在迭代的数组进行变异?   linux java对'main'集合的未定义引用2:ld返回1退出状态   java如何在dynamodb上按多个字段进行排序(有解决方法吗)?   java错误处理servlet停止工作,我不知道原因:(   多线程如何在Java中暂停/恢复ExecutorService中的所有线程?   java为什么是我的jsoup。连接(url)无法使用某些url?   多线程理解Java多线程中的内存可见性   java sonar scanner可以在没有sonarqube服务器的情况下工作吗   如何从java中的页面获取不同的url?   java从文件中查找命令行中指定的单词   java类的“set”方法是否应该返回“void”或“boolean”?   如何使用java代码批量读取文件内容   二进制十进制(java.lang.NumberFormatException)   java如何在同一个句子中分别替换同一个单词但大小写不同?   java Spring `RestController`方法注释了`Transactional`,但“当前没有活动的事务”?   java OWL API:如何将域分配给OWLObjectProperty上的范围   java变量末尾的$有特殊意义吗?   java什么距离计算(经度、纬度)更精确?   卡片布局java GUI