基因家族分析群体遗传学R语言

手把手教你计算旁系同源基因ka/ks值

2022-04-14  本文已影响0人  R语言数据分析指南

欢迎关注R语言数据分析指南

最近在做一个基因家族的数据分析,整理了一下以前的笔记,本节通过水稻的案例来介绍如何计算该物种旁系同源基因的ka/ks值

软件安装

conda install clustalw
conda install blast

数据下载

http://rice.uga.edu/pub/data/Eukaryotic_Projects/o_sativa/annotation_dbs/pseudomolecules/version_7.0/all.dir/

除了上述2款软件外,还需要mcscanxParaAT,KaKs_Calculator三款软件,需要自己官网下载编译,并添加环境变量

1.整理gff文件

第一步需要根据自己研究的物种gff文件将其进行整理,不同的物种gff文件略有不同,下面以水稻为例子

library(tidyverse)
read_tsv("Oryza_sativa.IRGSP.gff",comment = "#",col_names = F) %>% 
  filter(X3=="mRNA") %>% 
  mutate_at(vars(c(X9)),~str_split(.,";",simplify=T)[,1]) %>% 
  mutate(across("X9",str_replace,"ID=:","")) %>% 
  select(1,9,4,5) %>% 
  write.table(.,file="Os.gff",sep="\t",quote = F,row.names = F,col.names = F)
Chr1    LOC_Os01g01010.1    2903    10817
Chr1    LOC_Os01g01010.2    2984    10562
Chr1    LOC_Os01g01019.1    11218   12435
Chr1    LOC_Os01g01030.1    12648   15915
Chr1    LOC_Os01g01040.1    16292   20323
Chr1    LOC_Os01g01040.2    16321   20323
Chr1    LOC_Os01g01040.3    16321   20323
Chr1    LOC_Os01g01040.4    16292   18304
Chr1    LOC_Os01g01050.1    22841   26971

2.对蛋白序列做blast比对

# 对蛋白序列构建索引
makeblastdb -in data/protein.fa -dbtype prot -title protein.fa

# 进行序列比对
blastp -query ~/data/protein.fa -out Os.blast -db ~/data/protein.fa -outfmt 6 -evalue 1e-5 -num_threads 30

3.mcscanx进行共线性分析

注:两个文件放到同一个文件夹中 Os.blast & Os.gff,通过mcscanx找到同源基因

mcscanx ./kaks/Os
sed -i s'/,/\t/g' *.tandem

4.计算水稻全部ka/ks

  • 输出写绝对路径,输出文件夹无需先创建,需要先整理CDS序列与蛋白序列格式
  • 需要在ParaAT中执行 chmod 777 Epal2nal.pl

数据整理

touch proc;echo 30 > proc # 设置线程数

# 将序列多行变一行
awk '/^>/&&NR>1{print "";}{printf "%s",/^>/?$0"\n":$0}' ../data/cds.fa > cds.fasta 
awk '/^>/&&NR>1{print "";}{printf "%s",/^>/?$0"\n":$0}' ../data/protein.fa > protein.fasta

计算ka/ks值

ParaAT.pl -h ./kaks/Os.tandem -n ./cds.fasta -a ./protein.fasta -m clustalw2 -p proc -f axt -g -k KaKs_Calculator -o ./ka-ks

合并ks/ks文件

find . -name "*.kaks " -exec cat '{}' ';' > Os.kaks
less Os.kaks|sort|uniq > Os.rename.kaks.xls

数据获取

根据个人电脑性能需要耗费时间不同,blast比对 & ka/ks计算此两步最耗费时间;一般对于小基因组物种个人电脑需要耗费几十小时不等;今天的介绍到此结束

上一篇 下一篇

猜你喜欢

热点阅读