Trinity
作为一款经典的转录组组装软件,在众多的转录组组装软件中认可度应该是最高的,而且版本一直在更新,现在已经出到了v2.6
版。此文主要用于记录阅读Trinity源码过程中的一些理解,阅读的Trinity源码版本是v2.4
。
Trinity的源码涉及到的各种不同的编程语言,例如perl、c++、java
等。同时也使用了几款不同的生物信息分析软件,例如jellyfish、bowtie2、samtools
等。到目前为止,Trinity除了可以进行转录组组装之外还打包了一些其他的软件用于组装之后的下游分析,如RSEM
用于计算表达量、利用R包edgeR进行差异表达分析、利用transcoder
进行CDS预测。
Trinity
官网介绍是分为三个步骤:Inchworm
、Chralysis
、Butterfly
。
拼接得到的转录本序列信息以FASTA格式储存,如下所示:
>c13_g1_i1 len=263 path=[369:0-108 477:109-148 65:149-262]
TGAAGAGGGAGGAGGCGAATTGGGTTTGGCGTGGCTGCTGTTAAGGGGCTGCAAGAGGTG
GAAAGGAGGACAGAGAAGATGGAAAGATGGAGACAAGGACTGATCTGGGTGGTAGCAACA
GTACCTGGAAGTGGGTGTTTGGAGAAAGGGCGAAAGATGTGGTCTCTGGGAATGGCGATG
GAATGGGCAGCAGCAGCAGCAGGAGTCCAGGACAGGTAGTAGCAGTGGCGGAAATTATAC
CTGGGATAAGGCCCAGATCTCTG
>
后面的是转录本的id号,len=后面为转录本的长度,即该转录本的碱基数,path为从 de Bruijn Graph subComponent中经历的路径。其后为该转录本的碱c1_g1_i1与c1_g1_i2属于同一个基因的不同转录本,c1_g1_i1与c1_g2_i1属于旁系同源基因
此结果的理解属于分类后的reads重新运行Trinity得到的Trinity.fasta文件,而最终的Trinity结果是对每一类的Trinity.fasta文件的合并--min_kmer_cov 2
参数丢弃uniquely occurring kmer, 从而降低内存消耗--no_distributed_trinity_exec
会在输出目录下面(trinity_out_dir)生成一个recursive_trinity.cmds文件,这里面包含了下一步运行的所有命令,这些命令是可以并行执行的时候Trinity --seqType fq --max_memory 100G --CPU 50 --min_kmer_cov 3 --left FCHK2FVCCXY_L3_WHDAVllgEAAARAAPEI-96_1.fq.gz,FCHK2FVCCXY_L3_WHDAVllgEAABRAAPEI-97_1.fq.gz,FCHK2FVCCXY_L3_WHDAVllgEAABRAAPEI-97_1.fq.gz --right FCHK2FVCCXY_L3_WHDAVllgEAAARAAPEI-96_2.fq.gz,FCHK2FVCCXY_L3_WHDAVllgEAABRAAPEI-97_2.fq.gz,FCHK2FVCCXY_L3_WHDAVllgEAACRAAPEI-98_2.fq.gz --output gongtong_trinity_out --group_pairs_distance 230 --no_version_check --verbose --min_contig_length 250 --min_glue 3 --no_distributed_trinity_exec
~/bio/trinityrnaseq-Trinity-v2.4.0/trinity-plugins/parafly/bin/ParaFly -c recursive_trinity.cmds -CPU 50 -v
--trinity_complete
在递归运行Trinity时作为一个flag控制程序运行ButterflyButterfly
是一个通过德布鲁因图寻找正确的路径并得到相应的contig序列的jar包。对于一个德布鲁因图会根据reads的关系来进行拆分,同时对于多个可能的路径都会输出为contig原文:https://www.cnblogs.com/raisok/p/12492229.html