挖掘多物种之间共有区块
- 1.orthofinder 获取 Orthogroups.tsv 文件
orthofinder -f 00.data/00.pep -og -o orthofinder
- 2.获取物种之间的拷贝数(查文献或ks分析)
- 3.获取指定类型的gff文件
00.gff2wgdi2.py -i Arabidopsis_thaliana.gff -g temp1.gff -l temp2
awk -F"\t" '{print "Ath"$1"\t"$7"\t"$3"\t"$4}' temp1.gff > Arabidopsis_thaliana.gff
Ath1 AT1G01010.1 4706 5095
Ath1 AT1G01020.1 6915 7069
Ath1 AT1G01020.5 6915 7069
Ath1 AT1G01020.2 7315 7450
- 4.运行DRIMM
python processOrthofinder.py
#dir = "01.run"
#sp = ['Arabidopis_lyrata','Arabidopsis_thaliana','Capsella_rubella','Brassica_rapa','Thellungiella_Parvula']
#sp_ratio = [1,1,1,3,1]
mono drimm/processDrimm/drimm_Linux/Program.exe 01.run/drimm.sequence 01.run 20 7
# 20 控制同步块连续性
# 7 是限制基因家族的大小,一般为几个物种拷贝数之和
python processDrimm.py
#block_file = '01.run/blocks.txt'
#drimmSyntenyFile = '01.run/synteny.txt'
#outdir = '01.run'
#chr_number = [8,5,8,10,7]
#sp_list = ['Arabidopis_lyrata','Arabidopsis_thaliana','Capsella_rubella','Brassica_rapa','Thellungiella_Parvula']
#target_rate = '1:1:1:3:1'
- 5.结果文件
1.drimmBlocks
2.finalBlocks
得到的 species.block 文件中有很多数字(比如-126)表明当前block的ID为126,进行反向放置。每一行表示该物种的一条染色体(按照区块划分为很多部分),而这些区块在 species.synteny 和 species.synteny.genename 有所注释。其中 species.synteny.genename 标注着当前区块中有哪些基因;而 species.synteny 里面标注的都是区块中基因的同源ID(若是相同表示同源),因此在一个区块内的串连重复会出现连续相同的数字。
drimmBlocks这个文件夹下的区块没有经过过滤(严格按照拷贝数过滤),而 finalBlocks 严格按照拷贝数进行划分。因此 finalBlocks 划分出来的区块个数会很少。奇怪的是,一个物种中定义的block不一定会在 species.synteny 得到全部注释(可能在 species.block 有150个区块,在 species.synteny 中有147个区块,这个问题可能是由于最长公共子序列算法产生的)
如果最后用于获取祖先核型,一般使用finalBlocks