美文网首页组学学习
使用Agora/ANGEs构建祖先核型

使用Agora/ANGEs构建祖先核型

作者: 深山夕照深秋雨OvO | 来源:发表于2023-12-14 19:11 被阅读0次

0.忘了是在那篇文献看到的,用了Agora,再把Agora的输出结果喂给ANGEs
Agora和ANGEs都是构建祖先核型的软件
个人实测是Agora构建的结果太碎了, ANGEs运行速度又太慢(大于半个月)
所以用Agora将同源基因初步聚类, 以这些blocks喂给ANGEs能大幅提高运行速度

软件的安装参考官方文档
Agora: https://github.com/DyogenIBENS/Agora
ANGEs: https://cchauve.github.io/ANGES/index.html

这里仅作一个流程的记录, 所有疑问最好去官方的manual中寻找答案


1.Orthofinder (这里也可以用序列比对的结果而不是基因的结果, 但是亲测用基因的结果gap会比较少)

输入文件是各个物种的 .pep文件,以运行orthofinder,最好给各个物种的序列重新命名,以便区分不同物种,图方便物种树也用orthofinder的结果。当然自己重新构建物种树也可以
可以参考https://www.jianshu.com/p/336b65ca1b67

物种树的枝长不会影响Agora,ANGEs不清楚
这一步骤略


2.将OrthoFinder的结果处理为Agora要求的输入格式
Agora的输入文件有三类:
2.1 第一个是物种树
并对进化树的每个节点进行命名, 由于我的物种数量比较少, 所以命名是我手动加的
如图:


将三个节点分别命名为A0/A1/A2

同理对应的进化树的文本格式就是:
((sppA:0.1, sppB:0.2)A1:0.2, (sppC:0.3, sppD:0.4)A2:0.2)A0;
((sppA, sppB)A1, (sppC, sppD)A2)A0; 将枝长省略更为直观

2.2 第二个是每个末端节点(每个物种)对应的blocks的位置信息, 这里我们用的是每个同源基因的bed文件
前三列是位置信息, 第四列是正负链(1是正链/-1是负链), 第五列是基因名


gene.sppA.list

文件命名为 gene.sppA.list
这个文件很容易通过gff文件获取
比如对应我手里的这个gff文件:


sppA.gff
grep -w 'mRNA' sppA.gff > tmp1
awk 'BEGIN{ FS="\t";OFS="\t" }{print $1,$4,$5,$7,$9}' | awk -F ";" '{print $1}' | sed 's/ID=//g' > tmp2
sed 's/-/-1/g' tmp2 | sed 's/+/1/g'  > gene.sppA.list
#对每个物种重复此操作
#为了方便管理, 把这类输入文件都专门放到一个GeneList的文件夹中

2.3 第三个是每个节点包括祖先节点对应的blocks, 这里我们用的是每个节点的同源基因
文件内容也很简单, 每一行都是一个基因家族(OG)所包含的基因,空格分隔符, 如下图:


orthologyGroups.A1.list

获取方法有两种
2.3.1 OrthoFinder的运行结果Phylogenetic_Hierarchical_Orthogroups文件夹中有按照节点划分的基因家族, 我在前文中命名为A1的节点, 被OrthoFinder命名为了N1节点. 也可以在前面命名节点的时候就按照OrthoFinder的来, 这样省去一些文本处理的工作
这个文件已经符合要求了, 只需要把无关的列删除, 并把分隔符转为空格分隔符即可

PS: 不知道 竖线 "|" 会不会产生影响, 这里 "物种名" + "|" + "基因名" 的命名格式是做其他分析用到的, 真实运行的时候是没有这个格式
PS: 只要确保不同物种的基因名独一无二即可


OrthoFinder的输出结果 - N1.tsv
sed 's/^\([^ \t]\+[ \t]\+\)\{3\}//' N1.tsv | sed 's/,/ /g' > tmp1 #去除文件的前三列并删除多余的逗号
sed 's/[ \t]\+/ /g'  tmp1  | sed '1d' > orthologyGroups.A1.list #将多个tab/空格转换为一个空格, 并去除第一行
rm tmp1
sed -i '/^[[:space:]]*$/d' orthologyGroups.A1.list  #删除空白行
sed -i 's/^[\t ]\+//' orthologyGroups.A1.list  #删除行首多余的空格/tab
#对每个节点重复这个操作

#为了方便管理, 把这类输入文件都专门放到一个orthologyGroup的文件夹中

2.3.2 自己手动提一下(不建议用这个方法)
A1节点是sppA和sppB的祖先节点, 所以我们只需要把这两个物种的同源基因的信息放在一起即可
用到的是Orthofinder输出的Orthogroups/Orthogroups.tsv
这个文件内容其实差不多, 每一行都是一个基因家族(OG)以及这个基因家族对应的基因名
sppA和sppB在文件的第四列和第五列


Orthogroups.tsv
awk 'BEGIN{ FS="\t";OFS="\t" }{print $4,$5}'  Orthogroups.tsv | sed 's/,/ /g' > tmp1 #提取sppA和sppB所在的列并删除多余的逗号
sed 's/[ \t]\+/ /g'  tmp1  | sed '1d' > orthologyGroups.A1.list #将多个tab/空格转换为一个空格, 并去除第一行
rm tmp1
sed -i '/^[[:space:]]*$/d' orthologyGroups.A1.list  #删除空白行
sed -i 's/^[\t ]\+//' orthologyGroups.A1.list  #删除行首多余的空格/tab
#对每个节点重复这个操作

#同理如果是前文提到的A0节点也就是所有物种的共同祖先节点
#那就提取4个物种的信息
awk 'BEGIN{ FS="\t";OFS="\t" }{print $2,$3,$4,$5}'  Orthogroups.tsv | sed 's/,/ /g' > tmp1 #提取四个物种的信息

#为了方便管理, 把这类输入文件都专门放到一个orthologyGroup的文件夹中

3.Agora

./software/Agora-master/src/agora-vertebrates.py \ #因为我的物种是脊椎动物, 所以用这个脚本
  SpeciesTree_rerooted.txt \  #输入文件1
  orthologyGroup/orthologyGroups.%s.list \  #输入文件3
  GeneList/genes.%s.list \  #输入文件2
  -workingDir=Agora.result  #输出的文件夹
  -target=A0 \   #目标节点也就是想看哪个节点的祖先核型
  2> all.log  #日志文件

虽然命令行指定了想看哪个节点的祖先核型, 但是Agora仍然会输出每个节点的祖先核型
可以先检查Agora的结果是否符合预期,如果符合预期就不用再往下做了
Agora也自带了结果的绘制与解读,详情请参阅官方文档
我使用Agora的效果并不好, 所以并没有过多的阅读相关部分

Agora.result/ancGenomes/vertebrates-workflow这个文件夹就是最后的结果
或者说可以用作ANGEs的输入文件
输出文件长这样:


Agora的输出文件 - ancGenome.A0.list.bz2

第一列就是构建的祖先核型,CAR_1表示这是祖先核型中最长的那一条染色体
第二列/第三列是祖先染色体上基因的顺序; 第四列是正负链
第六列即祖先染色体上的这个基因在现存物种中的同源基因

这个文件继续往下翻阅
会看到我的结果已经到了CAR_316, 祖先核型当然不可能有300条染色体
也没有说祖先染色体上才个位数的基因数量
所以这个软件在我的数据集上的结果并不理想

需要进一步使用ANGEs

相关文章

  • Agora iOS SDK-开始聊天

    在上一篇Agora iOS SDK-快速入门中聊了如果配置Agora iOS SDK,这一篇将看下如何使用Agor...

  • Agora iOS SDK-多人聊天

    在上一篇Agora iOS SDK-开始聊天介绍了如何使用Agora SDK进行一对一的聊天,这篇主要介绍下如何使...

  • Agora SDK使用小结

    1.注册声网账号,创建应用,获取APPID 2.导入头文件 #import 3.初始化 创建或加入频道 Agora...

  • 单子叶祖先 7条染色体

    核型演化?????

  • 声网(Agora)视频通话-小程序

    声网(Agora) 声网 Agora 为开发者提供实时音视频 API,只需集成 Agora SDK,即可快速在应用...

  • 分子进化理论(4)

    基因组(染色体)沿进化时间的动态变化 一个模型,解释了从9染色体祖先到现存Pyreae的17染色体核型的进化,包括...

  • Agora

    看了好几分钟才记起来 Rachel Weisz 是 Enemy at the Gates (兵临城下) 的女主,当...

  • agora

    joinChannel 后,AVPlayer 播放声音变小。 情形1: joinChannel 后,AVPlaye...

  • 音视频开发

    Agora.io 社区 中文 声网[https://docs.agora.io/cn/Video/video_pr...

  • 声网 Agora Unity SDK 全功能版正式上线

    基于 Agora Native SDK 2.9.1 版本的第一个全功能版 Agora Unity SDK v2.9...

网友评论

    本文标题:使用Agora/ANGEs构建祖先核型

    本文链接:https://www.haomeiwen.com/subject/iocrgdtx.html