多倍体亚基因组的无监督分类
polycracker的Python项目详细描述
快速摘要
polycracker是一种无监督机器学习的分类和提取方法 以fasta格式提供的一组基因组序列的子基因组。目前 适合于分析中等到新近获得的异源多倍体物种。它不 需要训练数据,甚至亚基因组的数量是已知的(尽管这有帮助)。它确实需要 然而,为了确定最有可能的亚基因组数目,一些经验测试。
多拍器可用于:
识别亚基因组
提取子基因组
验证子基因组
与基因组特征相关的亚基因组探索性分析
polycracker通过使用重复的kmer(对应于病毒、转座子和其他 自私的重复元素)作为识别物种起源的分子条码。自从 这样的重复序列进化很快,并在一个物种的基因组中复制自己, 但不是其他密切相关的物种),它们可用于根据物种分组子序列 原产地。
假设一个DNA序列库来自多个物种, polycracker可以用来识别和分离属于一个物种和另一个物种的序列。 在某些情况下,polycracker在分离异源多倍体的亚基因组方面的表现与手册中的一样好。 在已知和可获得前体基因组序列的情况下,通过序列比对提取亚基因组。
有关详细信息,请参阅Polycracker手稿预印本。如果您在工作中使用Polycracker,请引用以下文章。
polycracker,一种通过重复DNA进化特征无监督分割多倍体亚基因组的稳健方法。
肖恩·戈登,乔舒亚·列维,约翰·沃格尔
(第一作者和第二作者是共同第一作者) (需要Mac或Linux操作系统)
(Docker适用于Windows) ###安装Polycracker依赖项 使用提供的Docker映像可以完全跳过依赖项的安装
在Github上。 使用基于miniconda的图像可以访问polycracker的核心功能: 您可能需要增加Docker中的设置,以允许在Docker中使用额外的内存和CPU
码头工人。请看这条线:
如何为docker分配更多内存 我们建议至少允许5 GB的RAM和4个CPU。 结果存储在test_results目录中。 要退出容器: 在Docker上下文中装入卷的详细信息不在
本教程的范围。尽管如此,如果您的计算机上有一个 然后如上所述退出容器。结果应保存在分析结果/测试结果中
子目录。您也可以在运行自己的数据时执行此安装。 您也可以使用此存储库根目录下的dockerfile来构建自己的docker映像。
这方面的详细信息将在本页底部介绍。 流程将类似于测试数据,但值得注意的是,您将最少需要:
2。将有问题的fasta文件移到./fasta\u文件
这可以通过如上所述将卷装入Docker容器来执行,
如果感兴趣的输入fasta文件位于正在装入的目录中(例如,"analysis_results"),
然后将fasta文件从挂载目录复制到./fasta\u files目录
已经存在于容器中。 结果应该在./analysisoutputs/*/*子目录中。 有时,信号放大可能会失败,因为过度侵略性的迭代征募kmers。
不是亚基因组特异的,或者是对另一个亚基因组特异的。
招募不当。
在这种情况下,可以通过进入./analysisoutputs/*/*/bootstrap_*目录并查找包含fastas的extractedsubgenomes子目录来获得中间结果。 注意,提取的子基因组fasta文件仍然是"分块的"(在标准化过程中根据指定的子序列长度进行分割)。
但包含与原始脚手架相关的位置信息。 在项目目录中的*html文件中找到聚类图。 可以使用polycracker.py plotpositions-h生成其他绘图,还有一些其他绘图实用程序。 专业提示:通过将已运行配置的部分设置为0而不是1,可以在各个部分重新运行/恢复管道。 pro-tip:使用命令polycracker.py number_repeat mers_per_subsequence查找每个分块基因组片段中存在的重复mer数量的直方图。
文件另存为kmers_per_subsequence.png 如果此直方图在每个子序列中过于倾斜,以致于kmer计数过低,则选择: 非常重要! 如果没有足够的重复内容包含在子序列中,则很难对它们进行分类。
在运行管道时,可以运行"kmers_per_subsequence.png",以确定kmers穿过管道的频率
子序列,然后调整相关参数。 polycracker本身是存储库根目录下的一个python模块,它包含命令行
如上所述,可以单独访问的功能。 因为polycracker由许多单独的命令行函数组成,
为了方便起见,我们提供了一个用nextflow工作流语言编写的管道
用户。nextflow实现允许单个命令执行所有需要的D步进顺序。
此工作流可通过以下方式访问测试数据: 或如下所示,用于您自己的数据: 工作流本身是polycracker_pipeline.nf,它现在位于polycracker子目录中。
当前可能需要在
nextflow脚本本身,即要使用的cpu数量和内存资源的参数。
这些参数当前设置为保守值,以便可以在
一台6核、至少5GB内存的现代笔记本电脑。在较大的数据集上执行时
需要增加这些资源设置。特别是,所需的内存资源可以根据
正在分析的输入fasta序列的大小。参数可以在这些行上更改: CPU要求以"CPU"为前缀的行指定,如下所示: 在根目录中提供的配置文件
存储库是"config_polycracker.txt"。 控制单个功能和第三方资源量的参数
程序在配置文件中设置。请按以下说明修改以适合您的fasta
输入如下。 基因组:
输入fasta文件的完整文件名(不是完整路径)。 SGE解释器:
除非使用sge或slurm集群,否则将local设置为1。我们目前没有记录如何使用
sge或slurm多节点集群,但有经验的用户可以自己尝试。 使用bbtools:
请将此设置保留为1。 围绕预期子基因组数量的设置:
推荐做法,尺寸数量>;亚基因组数量。相应地修改。
例如,如果预期的子基因组数目是2,则将n_维度设置为3。 FASTA标准化
把法斯塔分成几块。这决定了输入fasta的子序列的长度。
分成。这对于规范化分析的子序列是必要的。这是典型的
介于30000和1000000之间的值,但取决于输入fasta文件中序列的长度。
我们建议将其作为起始值: 使用原始基因组进行最终分析输出
通常这将设置为零。 在更大的单节点群集上,需要增加内存设置。
"removenonchunk"排除序列小于指定的"minChunkSize"。 转换和群集数据:
两个关键的选择是使用哪种降维方法以及
要使用的群集方法。
"降维技术"表示执行降维时要使用的方法
关于稀疏子序列矩阵重复kmer。
可用的降维器包括: 这些方法的说明超出了本工作的范围。 "clusterMethods"指定使用的群集方法。 示例参数如下: 提取亚基因组:亚基因组重复kmer计数的启发式方法,以便
判断子序列是否属于一个或另一个亚基因组。
示例参数: polycracker是一个python模块,具有命令行可访问的功能。下一个流程
运行管道脚本允许用户避免以串行方式运行单个函数
用于亚基因组分类和提取的共同目的。 尽管如此,在某些情况下,个别核心和助手函数的执行
很有用。 要查看命令行可用功能的完整列表: 结果列表: 要获取有关特定功能的信息,例如plotpositions: 以上结果: 在手动优化和故障排除的上下文中有两个直接相关的功能
为:< > > 结果: 和 结果: 上述函数根据需要删除一些中间文件,以便能够
成功地重新运行管道。 有关设置配置文件和运行管道的其他提示,可以通过运行jupyter笔记本找到。/tutorials/running pipeline.ipynb 此处不包括其他下游分析,但请查看下面描述的HTML文件以获取更多命令。 访问其他帮助文档: (从提供的卷宗上e位于此存储库的根目录中。) 测试的DockerFile应在其当前状态下成功生成和运行。
要生成图像: (请注意,Docker方法是首选的,而且容易得多。) 通过运行polycracker对藻类基因组进行分类来测试conda环境
(绘制降维重复kmer矩阵的谱嵌入结果,在分类之前将基因组分成50kb子序列。) 由其包含的重复kmer链接的序列的多拍聚类的说明性示意图Polycracker入门
基于miniconda的图像
docker pull sgordon/polycracker miniconda:1.0.2
根据测试数据运行polycracker
docker run -it sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27
exit
请注意,如果要在Docker容器外检查结果,可能需要装入卷。
analysis\u results
目录
并希望将结果从polycracker复制到该目录,然后您可以将上述命令修改为: docker run -v "$(pwd)"/analysis_results:/analysis_results -i -t sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27 cp -R test_results /analysis_results/
更多测试数据:
使用Docker在自己的数据上运行
docker pull sgordon/polycracker-miniconda:1.0.2 # assumes we have copied user input FASTA file into analysis_results directory that we will mount
docker run -v "$(pwd)"/analysis_results:/analysis_results -i -t sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 # copying user input FASTA file into fasta_files directory
cp /analysis_results/[user FASTA file] ./fasta_files polycracker.py run_pipeline -env pCRACKER_p27 cp -R analysisOutputs /analysis_results/
使用nextflow运行polycracker管道的配置
polycracker.py测试管道
polycracker.py run_管道
blastmemstr="导出Java选项='-xms5g-xmx"+blastmemory+"g'"
cpu={writekmer==1?6:1}
多拍配置文件设置
fasta_files
目录中。
您也可以修改fasta path
到相应fasta输入文件的路径。
您可以保留示例配置中提供的其他路径。
fasta文件必须以.fa
或.fasta
文件扩展名结尾,否则将无法识别它们。 blastPath = ./blast_files/ kmercountPath = ./kmercount_files/ fastaPath = ./test_data/test_fasta_files/ bedPath = ./bed_files/
splitFasta = 1 preFilter = 0 splitFastaLineLength = 50000
writeKmer = 1 kmerLength = 26 kmer2Fasta = 1 kmer_low_count = 30 use_high_count = 0 kmer_high_count = 2000000 sampling_sensitivity = 1
writeBlast = 1 k_search_length = 13 runBlastParallel = 0 blastMemory = 5 blast2bed = 1 generateClusteringMatrix = 1 lowMemory = 0 minChunkSize = 50000 removeNonChunk = 1 minChunkThreshold = 0 tfidf = 1 perfect_mode = 0
支持的方法有: transformData = 1 reduction_techniques = tsne transformMetric = linear ClusterAll = 1 clusterMethods = SpectralClustering grabAllClusters = 1 n_neighbors = 20 metric = cosine weighted_nn = 0 mst = 0
docker run -it sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27
0
在自动nextflow管道外使用polycracker命令行功能。
docker run -it sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27
1
docker run -it sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27
2
docker run -it sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27
3
docker run -it sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27
4
在手动优化期间重新运行亚基因组分类和提取
polycracker.py重置群集-h
docker run -it sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27
5
polycracker.py reset transform-h
docker run -it sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27
6
附加文档
*关于每个配置参数的含义的信息都在这个笔记本中。强烈建议您查看此信息。
*/tutorials/old_configs中旧配置文件的其他示例
*下载存储库后,您可以在此处找到它们:./tutorials/help\u docs/index.html
*这是一个html文件,指定了一些polycracker命令。仍在更新中。基因组比较工具和k-mer保存规则
*例如,nohup python polycracker.py bio_hyp_class-f../../,u,n-dk 5-w../。/results/-m 150-l 23-min 2-max 25>;../../analysis.log&;环境设置的详细说明
创建自己的Docker图像
docker run -it sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27
7
polycracker环境的conda安装方法
docker run -it sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27
8
docker run -it sgordon/polycracker-miniconda:1.0.2 source activate pCRACKER_p27 tar -xzvf ./test_data/test_fasta_files/algae.fa.tar.gz && mv algae.fa ./test_data/test_fasta_files/ polycracker.py test_pipeline -env pCRACKER_p27
9
exit
0
exit
1
exit
2
图库
示例图
对绿藻基因组coccomyxa sub椭球体和莱茵衣藻的反褶积
将大四倍体烟草基因组中的序列分配给两个前体亚基因组
将大量六倍体面包小麦基因组中的序列分类为三个祖先亚基因组
示意图
推荐PyPI第三方库