luria的个人博客分享 http://blog.sciencenet.cn/u/luria

博文

TGICL的使用及结果解读

已有 10833 次阅读 2017-6-1 15:19 |个人分类:RNA-seq|系统分类:科研笔记| 聚类, RNA-seq, 生信, TGICL, 转录组组装

Trinity无比强大,但是在组装结果还是太零散,此外内存占用也是硬伤。如果你有一个土豪机器,能一次运行几百G的程序,那建议将所有样本的PE reads清理后R1,R2相应合到一起,再用Trinity 进行PE组装。没有强大机器的人们一般会将多个样本分开组装,再通过一些手段对contig再组装,最后生成所有样本共同的Unigene,得到所有样本统一的reference,来比对计算差异表达。

这里推荐一款老牌的聚类组装软件——TGICL (TGI Clustering tools),完成这个contig再组装的过程。它先使用mageblast对输入的fasta文件进行比对后聚类成cluster,再使用CAP3对每个cluster进行组装。此外因为聚类后各cluster间相互独立无交集,程序提供多线程的选项(来弥补CAP3这一步计算速度慢的缺陷)。

1. 下载安装

到https://sourceforge.net/projects/tgicl/files/?source=navbar下载最新版的TGICL (以最新版v2.1版为例)。建议下载TGICL-2.1.tar.gz原程序,貌似rpm/deb二进制的安装会有报错,具体没有深究,感兴趣的朋友可以使用rpm/deb格式的安装包进行安装,欢迎将过程分享到此博文下,谢谢。

tar -zxvf TGICL-2.1.tar.gz

cd TGICL-2.1

perl Build.PL
./Build
./Build test
./Build install

#如果哪一步有permission denied的提示,则需要在命令前加sudo

如果在终端中输入

perldoc -F /usr/local/bin/tgicl

出现TGICL的help页面(如下图)则表示安装完成!

2. TGICL的使用

以某处为工作目录,将需去冗余和组装的fasta序列(例如Trinity组装结果中大于500bp的序列文件trinity_gt500.fasta)放到工作目录下,运行

tgicl -F trinity_gt500.fasta -c 3

这时可能会出现如下提示,可以不用理会:

Use of :locked is deprecated at /usr/local/share/perl/5.18.2/TGI/DBDrv.pm line 36.

运行完结果如下

err_tgicl_trinity_gt500.fasta.log和tgicl_trinity_gt500.fasta.log分别是标准错误输出和标准输出的记录文件,如果运行中无报错,两者应该是一样的。文件中记录了建立索引、聚类和组装三个过程的一些信息。


重点来了:

Q1:工作目录下trinity_gt500.fasta, trinity_gt500.fasta_cl_clusters, trinity_gt500.fasta.singletons和masked.lst这四个文件之间是什么关系?

为了清晰起见,这里既作了后三个文件中序列的韦恩图,又作了四个文件中序列的韦恩图。

结果显示

A. trinity_gt500.fasta_cl_clusters和trinity_gt500.fasta.singletons文件中的序列居然有交集!

B. trinity_gt500.fasta_cl_clusters和trinity_gt500.fasta.singletons的并集就是trinity_gt500.fasta中全体序列

C. masked.lst里的序列既有 trinity_gt500.fasta_cl_clusters里的,又有trinity_gt500.fasta.singletons里的序列




Q2:asm文件夹下的文件与cluster是什么关系?

因为-c指定用3个CPU,这里会生成3个文件夹asm_1,asm_2,asm_3。从这3个文件中的log_std发现这些log_std里的CL没有重复,而且加在一起正好是trinity_gt500.fasta_cl_clusters里的结果,表明程序先将trinity_gt500.fasta_cl_clusters中的cluster分给N个CPU(在N个文件夹中)来做的。然后,CAP3组装每个asm文件夹下log_std中的clusters,然而并不是每个cluster里的序列都能用上,组装没有用上的序列就写进了每个asm文件夹下的singletons文件里。


Q3:在第1个问题里rinity_gt500.fasta_cl_clusters和trinity_gt500.fasta.singletons为什么会有交集,交集又是什么?

Bingo! 想必大家也猜到了,这个交集就是所有asm文件夹下singlets文件中序列的并集。为了验证这个猜想,先检查一下所有asm文件夹下singlets文件是否有交集,发现没有,不出所料。所有asm文件夹下singlets文件里的序列的并集就是trinity_gt500.fasta.singletons和trinity_gt500.fasta_cl_clusters序列里的交集。发现正好是的,有猜想一致!

综上所述,最终的结构图是

因此只需要将trinity_gt500.fasta.singletons里的序列提出来,再将各asm文件夹下的contigs合并到一起换个Unigene的ID号即可。

vim collect_tgicl_result.py

将以下代码复制到collect_tgicl_result.py中

#!/usr/bin/env python
import sys, os
from Bio import SeqIO

'''collect_tgicl_result.py'''

def main(tgicl, singleton, fasta, *asm_dirs):
   unigene = 1
   with open('result.fasta', 'w') as result:
       for i in asm_dirs:
           for x in SeqIO.parse(os.path.join(i, 'contigs'), 'fasta'):
               print >> result, '>cluster_contig%sn%s' %(unigene, x.seq)
               unigene += 1

       fa_dic = {fa.id:fa.seq for fa in SeqIO.parse(fasta, 'fasta')}
       for i in open(singleton):
           print >> result, '>%sn%s' %(i.strip(), fa_dic[i.strip()])

if __name__ == '__main__':
   if len(sys.argv) == 1:
       print ('[prog] collect TGICL resultn'
       '[usage] python %s <singletons> <fasta> <asm*>n'
       '   <singletons> is located in workspacen'
       '   <fasta> is fasta file which was used to be clustered and assembledn'
       "   <asm*> are asm directories, `contigs' file must be in those dirsn"
       ) %(sys.argv[0])
       sys.exit(1)
   main(*sys.argv)

在工作目录下运行如下:

python collect_tgicl_result.py trinity_gt500.fasta.singletons trinity_gt500.fasta asm_*

运行完会生成一个tgicl_result.fasta文件,即TGICL聚类组装后最终的Unigene。


参考材料

[1] Geo Pertea1, Xiaoqiu Huang, Feng Liang, et al. TIGR Gene Indices clustering tools (TGICL):a software system for fast clustering of large EST datasets. Bioinformatics. 2003, 19(5):651-652

[2] http://bioinformation.cn/?p=563



https://blog.sciencenet.cn/blog-2970729-1058424.html

上一篇:免密码登录远程计算机
下一篇:CentOS布署Trinity及相关组件 (2017.08最新版)
收藏 IP: 58.62.33.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-20 14:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部