pandoo:细菌基因组学的工具管道。

pandoo的Python项目详细描述


潘杜

获取帮助:

pandoo -h

pandoo

作者

马克B舒尔茨,安德斯·冈萨尔维斯·达席尔瓦,詹森·邝,托尔斯滕·西曼

简介

pandoo是一个命令行工具,用于探索和描述细菌全基因组dna序列数据。它是一个用python编写的计算管道,可以通过使用ruffus管道库的实现进行扩展。ruffus在运行期间处理任务调度和任务并行化。pandoo在进行amr和mlst分析时对致病物种特别有用,但理论上可以用于任何序列数据库中的任何细菌物种。它最初是为在澳大利亚维多利亚州的微生物诊断单位公共卫生实验室对细菌分离物进行特征描述和质量控制组装和读取而编写的。输入是一个以制表符分隔的文本文件,它将软件指向程序集,并为每个隔离点配对结束读取文件。具体地说,该文件没有头,每个单独文件有一行,每行有四列,列顺序如下:

+-------------+------------------------------------------------+----------------------------+---------------------------+
|isolate_name | full_path_to_assembly (i.e., a 'contigs' file) | full_path_to_paired_reads1 | full_path_to_paired_reads2|
+-------------+------------------------------------------------+----------------------------+---------------------------+

一个示例隔离.tab文件如下::

isolate-1	/path/to/isolate-1/contigs.fa	/path/to/isolate-1/reads-1.fq.gz	/path/to/isolate-1/reads-2.fq.gz
isolate-2	/path/to/isolate-2/contigs.fa	/path/to/isolate-2/reads-1.fq.gz	/path/to/isolate-2/reads-2.fq.gz
isolate-3	/path/to/isolate-3/contigs.fa	/path/to/isolate-3/reads-1.fq.gz	/path/to/isolate-3/reads-2.fq.gz
isolate-4	/path/to/isolate-4/contigs.fa	/path/to/isolate-4/reads-1.fq.gz	/path/to/isolate-4/reads-2.fq.gz
isolate-5	/path/to/isolate-5/contigs.fa	/path/to/isolate-5/reads-1.fq.gz	/path/to/isolate-5/reads-2.fq.gz

安装依赖项

在运行pandoo之前,需要安装以下软件包。要安装依赖项,请执行以下操作(如果您没有管理员权限,则可能需要在pip3安装命令之后添加"--user":

cpanm -i Moo
cpanm -i List::MoreUtils
cpanm -i Bio::Perl
brew tap homebrew/science
brew tap tseemann/homebrew-bioinformatics-linux
brew update
brew install mlst
brew install abricate
brew install seqtk
brew install mummer
brew install bowtie2
brew install cd-hit
brew install kraken
brew install graphviz
pip3 install git+https://github.com/MDU-PHL/ngmaster.git #(see install instructions at https://github.com/MDU-PHL/ngmaster)
pip3 install git+https://github.com/MDU-PHL/meningotype.git #(see install instructions at https://github.com/MDU-PHL/meningotype)
pip3 install biopython
pip3 install ariba
#install sistr from http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0147101 (location?)
git clone https://github.com/MDU-PHL/legsta.git # then add it to your path so is executable with 'legsta'
git clone https://github.com/MDU-PHL/LisSero.git # then add it to your path so is executable with 'LisSero.py'
git clone https://github.com/lskatz/mashtree.git # then add it to your path so is executable with 'mashtree.pl'

按照https://ccb.jhu.edu/software/kraken" rel="nofollow">https://ccb.jhu.edu/software/kraken中的说明设置数据库。

安装Pandoo

要对所有用户执行这些安装步骤中的任何一个,请删除"--user"。如果为所有用户安装,则不需要最后的符号链接步骤。pandoo是为python3编写的,安装需要pip3和setuptools。要仅为当前用户安装最新"稳定"版本的pandoo,请执行以下操作:
第一次更新python3pip3setuptools。然后尝试: pip3 install pandoo--user-i-i的意思是忽略那些已经安装的版本,重新安装setup.py中所述的版本,特别是需要ruffus版本2.6.2而不是ruffus 2.6.3。

升级:

pip3 install pandoo --upgrade

要安装最新的、可能不稳定的、最新的版本:

pip3 install --user https://github.com/schultzm/pandoo/zipball/master

如果通过"--用户"选项安装 检查可执行文件的位置:

which pandoo  # ~/.local/bin/pandoo

检查网站包的位置:

python3 -m site --user-site  # ~/.local/lib/python3.6/site-packages

现在,将上面站点包中的打包数据库符号链接到包含上面所示可执行文件的文件夹:

ln -s ~/.local/lib/python3.6/site-packages/Pandoo/CARD/ ~/.local/bin
ln -s ~/.local/lib/python3.6/site-packages/Pandoo/VFDB/ ~/.local/bin
ln -s ~/.local/lib/python3.6/site-packages/Pandoo/qacGenes/ ~/.local/bin

要卸载,请执行以下操作:

pandoo -h
0

如果意外安装了PIP2或PIP,请执行以下操作: pip卸载pandoo

使用::

检查依赖项是否在路径中
pandoo -h
1

根据需要添加依赖项。

快速入门教程

对于大型作业,请在屏幕模式下运行,否则请跳过此步骤:

pandoo -h
2

上面开始的屏幕内的所有屏幕输出都将保存到::

pandoo -h
3

退出屏幕后,可以使用标准命令行操作在运行过程中查看screenlog.0::

pandoo -h
4

要获得Pandoo的帮助,请执行以下操作:

pandoo -h

输出如下:

pandoo -h
6

注意,上面有四个模块:checkinputrunmerge各一个。每个都可以独立运行。

检查模块 本模块将根据pandoo对这些程序的调用,检查所需的软件是否已安装并可执行。

输入模块

此模块用于生成isolations.tab文件。此命令的最终输出发送到标准输出(stdout)。若要从stdout捕获信息,请使用">;isolates.tab"将其重定向到文件:

pandoo -h
7

运行模块

此模块用于运行分析管道。在下面的示例中,输出将是一个名为results的文件夹,我们已选择将树选项与-t一起使用:

pandoo -h
8

在Results文件夹中,每个隔离都有一个子文件夹,其中包含每个隔离的结果。在results文件夹中还有三个文件:

pandoo -h
9

合并模块

此模块用于将现有元数据表(例如,lims表)与run模块中的一个输出表连接起来。在本例中,一个excel文件(amr_continuing_20170307.xlsx,第5行有一个标题,第一列包含在上面的pandoo input步骤中用通配符搜索扩展的隔离名)与results/isolations_metadataall_simplified.csv表联接。再次,最终输出被发送到stdout,在本例中,它使用">;results/amr_continuous_20170307_join_isolates_metadataall_simplified.csv"重定向到文件:

+-------------+------------------------------------------------+----------------------------+---------------------------+
|isolate_name | full_path_to_assembly (i.e., a 'contigs' file) | full_path_to_paired_reads1 | full_path_to_paired_reads2|
+-------------+------------------------------------------------+----------------------------+---------------------------+
0

为什么使用pandoo?

pandoo提供了一个元数据表和一个树,可以使用phandango绘制元数据

https://jameshadfield.github.io/phandango/

alt tag

使用程序mash tree.plmash计算的距离矩阵中推断出整个隔离集的单个nj树。树将不包括缺少程序集文件的隔离。

所有隔离物的汇总表(CSV)结合了以下结果:

  1. 从读数上运行海怪推断的物种
  2. 从在康提格斯上运行的海怪(组件)推断的物种调用
  3. 推测一致性物种从一致性中召唤出最佳命中率的海怪在读上和海怪在读上
  4. 基于物种调用,使用适当的方案(如果可用)或自动检测方案运行mlst
  5. 使用无限数量的抗性基因、质粒rep基因、毒力基因等用户数据库,使用abrate(contigs,blast contigs against database,assembly-based)和ariba(reads,minimapping to database,mapping-based)的基因内容概要
  6. 使用seqtk进行读取和继续的qc度量
  7. 报告分析中使用的软件版本和数据库路径(用于重复性)
  8. 管道是模块化的,用户可以选择不执行树推断步骤和/或用户可以选择不使用ariba执行读取映射步骤
  9. 将为运行生成流程图(但是,如果结果文件夹的总路径长度总和超过16384个字符,则无法绘制流程图)
  10. 用户可以为每个文件提供读取和/或contig。最后一棵树将只包括已提供contigs的分类单元

假设

首先,您需要下载程序集,或者自己从readset(例如,使用unicyclerhttps://github.com/rrwick/unicycler,它使用spades(http://bioinf.spbau.ru/spades)或megahit(https://github.com/voutcn/megahit))。这不一定有意义提供已使用所提供的读取集以外的读取集组装的隔离但contig的读取。如果您没有读取,请将该隔离的列留空(例如,如果您只想描述从ncbi genbank下载的程序集)。如果您没有contigs并且只有reads,请将contigs的列留空(但是没有contigs就没有树)。

许可证

潘杜是:

|版权所有(c)2017 Mark B Schultz
|https://github.com/schultzm/
|电子邮件:dr.mark.schultz@gmail.com

此程序是免费软件:您可以重新分发和/或修改 根据已发布的GNU Affero通用公共许可条款 由自由软件基金会,许可证的3版本,或 (由您选择)任何更高版本。 这个程序的发布是希望它能有用, 但没有任何保证;甚至没有 适销性为特定目的的适销性或适合性见 GNU Affero通用公共许可证了解更多详细信息。 你应该收到一份gnu-affero通用公共许可证的副本 还有这个节目。如果没有,请参见http://www.gnu.org/licenses/" rel="nofollow">http://www.gnu.org/licenses/

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

推荐PyPI第三方库


热门话题
java JavaFX TableView更新单元格,不更新对象值   在扫描器中使用分隔符的java   java OkHttp 4.9.2,连接无法重用,导致端口耗尽   eclipse中的c JNI:运行Java代码   java是否在出厂的所有硬件设备中都有/mnt/sdcard/Android/data文件夹(或等效文件夹)?   Java,在eclipse中访问资源文件夹中的图像   java为什么Bluemix dashDB操作抛出SqlSyntaxErrorException,SQLCODE=1667?   JavaHtmlUnitWebClient。getPage不处理javascript   Google API认证的java问题   java如何将JSON数组反序列化为Apache beam PCollection<javaObject>   ServerSocket停止接收命令,java/安卓   来自Java类的安卓 Toast消息   java如何自动重新加载应用程序引擎开发服务器?   java是否可以尝试/捕获一些东西来检查是否抛出了异常?   java如何做到这一点当我按下load game时,它不仅会加载信息,还会将您带到游戏中?   Java选项Xmx代表什么?   Java映射,它在插入时打印值   设置“ulimit c unlimited”后,java无法生成系统核心转储