共线性和同线性 https://www.jianshu.com/p/509103f95d53

  1. Synteny(同线性)是指一组基因在不同物种的同一染色体上的物理共定位。这些基因在单个染色体上的位置非常接近,但在不用物种中的排列顺序可能不相同。同线性主要描述基因在染色体上的分布模式,这些基因的共定位模式表明不同物种间的关系及其进化。
  2. Collinearity(共线性)是同线性的一种形式,是指一组基因在不同物种之间以相同的顺序共定位。共线性主要是用来描述同一染色体上基因的位置关系,也就是指由同一祖先型分化而来的不同物种间基因的类型以及相对顺序的保守性(即基因的同源性+基因的排列顺序)。共线性片段的大小与物种之间的分化时间有很大关系:分化时间较短的物种间,积累的变异较少,会保留更多从祖先遗传下来的特征;相反的,分化时间较长的物种间由于变异积累而导致共有的特征变少,反而获得较短的共线性片段。

不同水平的共线性

  1. 全基因组水平的共线性:基于基因组的全部DNA序列,常用软件Mummer 关注整个基因组或大型基因组区域的结构保守性,适用于大尺度的进化分析和物种比较
  2. 基因水平的共线性:基于编码蛋白序列,保守性较高,常用软件McscanX/JCVI 关注个别基因或小基因簇的保守性,适用于具体基因功能和调控机制的研究

将gff转换成bed

方法一:(—primary_only 每个基因只提取一个转录本,但好像不是最长转录本?????) github上提到的方法 https://github.com/tanghaibao/jcvi/wiki/MCscan-(Python-version)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
##--type=mRNA 只提取mRNA
##--key=transcript_id 提取transcript_id属性,作为BED文件中的名称字段
python -m jcvi.formats.gff bed --type=mRNA --key=transcript_id --primary_only Arabidopsis_thaliana.TAIR10.59.gff3.gz > ath.bed
python -m jcvi.formats.gff bed --type=mRNA --key=transcript_id --primary_only Oryza_sativa.IRGSP-1.0.44.gff3.gz > osa.bed
## 方法二:(先把每个基因的所有转录本都提取出来,再提取最长转录本。好像这个方法提取的是最长转录本??????) 该流程用这个方法
python -m jcvi.formats.gff bed --type=mRNA --key=transcript_id Arabidopsis_thaliana.TAIR10.59.gff3.gz > ath.bed
python -m jcvi.formats.bed uniq ath.bed

# 根据bed文件(ath.uniq.bed)第4列就可以用于提取cds序列和蛋白序列
##从Arabidopsis_thaliana.TAIR10.cds.all.fa 文件中提取出在 ath.uniq.bed 的第4列中出现过的序列
seqkit grep -f <(cut -f 4 ath.uniq.bed ) Arabidopsis_thaliana.TAIR10.cds.all.fa | seqkit seq -i > ath.cds
seqkit grep -f <(cut -f 4 ath.uniq.bed ) Arabidopsis_thaliana.TAIR10.pep.all.fa | seqkit seq -i > ath.pep

# 新建目录,将bed和cds文件复制到该目录下
mkdir compara
cp ath.cds ath.uniq.bed compara/
# 共线性分析(结果文件:ath.os.anchors ath.os.last.filtered ath.os.pdf ath.os.last ath.os.anchors)
python -m jcvi.compara.catalog ortholog ath os --no_strip_names
# 可视化点图(结果文件:ath.os.pdf)
python -m jcvi.graphics.dotplot ath.os.anchors

宏观共线性可视化 https://github.com/tanghaibao/jcvi/wiki/MCscan-(Python-version) 看教程

总结

wgdi是单个物种自身比较
jcvi是多个物种之间进行比较