跳转至

LAI是一种新的评估基因组组装质量的评价标准。 LTR讲解 部分转载自https://www.jianshu.com/p/f962d5c40fdf LTR_retriever github LTR_retreiver是一个整合工具,整合其他的LTR鉴定工具的结果,并且给出LAI值。

LTR-RTs 长末端重复反转录转座子的鉴定 目前推荐的是LTR_FinderLTR_harvest组合鉴定,之后使用LTR_retreiver整合两者的结果。

安装软件LTR_Finder

Install LTR_Finder

git clone https://github.com/xzhub/LTR_Finder.git
cd LTR_Finder/source/
make

2021/09/19更新不要再使用LTR_finder了,oushujun最新优化出了支持多进程版的LTR_FINDER_parallel.用来替代LTR_finder。

直接从github下载即可使用

wget -c https://github.com/oushujun/LTR_FINDER_parallel/archive/refs/tags/v1.1.tar.gz
tar -zxvf v1.1.tar.gz
cd LTR_FINDER_parallel-1.1
perl LTR_FINDER_parallel

LTR_FINDER_parallel使用方法:

perl LTR_FINDER_parallel -seq ${genome} -threads 36 -harvest_out
#输出是${genome}.finder.combine.scn
genomefile="`basename ${genome}`"
mv ${genomefile}.finder.combine.scn ${species}.finder.scn

当使用conda时候,可能conda里和外面的perl版本不一致,所以调用的时候尽量使用绝对路径调用perl执行这个脚本。 可能会报错ListUtil.c: loadable library and perl binaries are mismatched (got handshake key 0xdb00080, needed 0xdb80080,解决办法是使用你的perl的完整路径和LTR_FINDER_parallel脚本所在的绝对路径!

Install LTR_harvest

axel -n 16 http://genometools.org/pub/genometools-1.6.1.tar.gz
tar -zxvf genometools-1.6.1.tar.gz
cd genometools-1.6.1
make -j8 install prefix=/share/home/software/genometools/ cairo=no
pathadd /share/home/software/genometools/
source ~/.bashrc

Install LTR_retriever

git clone https://github.com/oushujun/LTR_retriever.git
或者使用conda安装LTR_retriever
conda create -n LTR_retriever
conda activate LTR_retriever
conda install -c conda-forge perl perl-text-soundex
conda install -c bioconda cd-hit repeatmasker
git clone https://github.com/oushujun/LTR_retriever.git
./LTR_retriever/LTR_retriever -h

开始分析

输入文件

基因组文件 genome.fa

输出文件

species.finder.scn 和species.harvest.scn

运行脚本

LTR.find.sh内容如下

#species="Pco"
#genome="/share/home/database/Pco/Pco.genome.fa"
if [ $# -eq 0 ] || [ $# -eq 1 ];then
    echo "Usage:
    bash LTR.find.sh Pco /share/home/database/Pco/Pco.genome.fa "
    exit 1
fi
species=$1
genome=$2
#LTRharvest
gt suffixerator \
  -db ${genome} \
  -indexname ${species} \
  -tis -suf -lcp -des -ssp -sds -dna
gt ltrharvest \
  -index ${species} \
  -similar 90 -vic 10 -seed 20 -seqids yes \
  -minlenltr 100 -maxlenltr 7000 -mintsd 4 -maxtsd 6 \
  -motif TGCA -motifmis 1  > ${species}.harvest.scn 
# LTR_FINDER
ltr_finder -D 15000 -L 7000 -C -M 0.9 ${genome} > ${species}.finder.scn 


# LTR_retriever 合并前两次的分析
LTR_retriever -genome $genome -inharvest ${species}.harvest.scn -infinder ${species}.finder.scn -threads 16 -u  7e10-9

运行方法:bash LTR.find.sh 物种名 物种的参考基因组文件 例如:bash LTR.find.sh TAIR /home/genome/TAIR10.fa 物种名可以是缩写,主要用于输出文件的前缀。 程序运行比较慢,主要是ltr_finder非常慢,没有找到多线程的方法。 LTR_retriever最后一行的进程数,可以根据服务器性能自行修改。-u参数是指定你的物种的进化速率,默认的是水稻的进化速率1.3e-8,此处改为拟南芥的7e-9. 如果你运行的时候没有加参数-u,可以根据计算公式T = (1 - identity) / 2µ,此处的μ就是输入的参数u的值,来反推正确的插入时间。或者是使用结果文件*.pass.list.gff3里的ltr_identity根据公式计算,identify实际是百分比,公式里的1代表100%。 手动计算LTR插入时间,使用下面的代码,只用修改genome.fa.pass.list.gff3为你实际输出的文件名即可 cat genome.fa.pass.list.gff3|awk '$3=="repeat_region"{split($9,a,";");print $1","a[3]","a[5]}'|sed 's/Classification\=LTR\///g;s/ltr_identity\=//g'|awk -F ',' '{print $1","$2","(1-$3)/((7e-9)*2)}' >LTRtime.csv

注意:

LTR_retriever要求输入的基因组文件的chr的字符串长度不超过15,如果包含scaffold,请修改为15字以内,或者是可以舍去scffold,只留下chr。

输出结果讲解

最终会输出一个genome.fa.out.LAI依据你输入的genome决定,例如:TaIR10.fa 输出结果就是TaIR10.fa.out.LAI . cat TaIR10.fa.out.LAI |head

Chr     From    To      Intact  Total   raw_LAI LAI
whole_genome    1       523245110       0.0967  0.4732  20.43   18.32
Chr01   1       3000000 0.1917  0.7771  24.67   21.56
Chr01   300001  3300000 0.1973  0.7971  24.76   21.65
Chr01   600001  3600000 0.1976  0.8249  23.96   20.85
Chr01   900001  3900000 0.2032  0.8621  23.57   20.46
Chr01   1200001 4200000 0.1981  0.8769  22.59   19.48

第7列是每个位置的LAI的值,第2行最后一个就是整个基因组的LAI值。这个基因组是18.32可以看出质量不错。0.0967代表完整LTR-RT在基因组中占比9.67% , 0.4732代表LTR在基因组中比例为47.32%. LAI的作者也给出评价标准: |LAI|category| |----|----| |0<LAI<10|draft| |10=<LAI<20|reference| |LAI>=20|Gold|

LTR_retriever最后过滤后的LTR_RTs文件是genome.fa.pass.list。这里面是过滤重复后通过的LTR_RTs.可以看出里面分为Copia和Gypsy,还有unknown。

多倍体数据,需要把亚组分开计算LAI,目前已经实现流程LTRfind

*LTRfind地址 * github.com/chaimol/bio_code/tree/master/pipline/LTRfind

植物是这种情况,动物也可以使用LTR_reviewer分析,只不过动物中LTR_RTs其他的类型不能被具体注释出来,需要自行从unknown类型中鉴定。

head genome.fa.pass.list

#LTR_loc        Category        Motif   TSD     5_TSD 3_TSD       Internal        Identity      Strand  SuperFamily  TE_type     Insertion_Time
Chr01:109718..119470    pass    motif:TGCA      TSD:AAAAC       109713..109717  119471..119475  IN:111581..117607       0.9973  -       Copia   LTR     103354
Chr01:151156..160815    pass    motif:TGCA      TSD:ACCTT       151151..151155  160816..160820  IN:152959..159011       0.9945  ?       unknown NA      214113
Chr01:259702..269481    pass    motif:TGCA      TSD:CGTTG       259697..259701  269482..269486  IN:261573..267609       0.9963  +       Copia   LTR     144256
Chr01:282588..292147    pass    motif:TGCA      TSD:CAATG       282583..282587  292148..292152  IN:284331..290404       0.9966  ?       unknown NA      132702
Chr01:406690..416424    pass    motif:TGCA      TSD:AAGGG       406685..406689  416425..416429  IN:408590..414524       0.9979  +       Copia   LTR     81086
Chr01:434887..439473    pass    motif:TGCA      TSD:GGCAA       434882..434886  439474..439478  IN:435372..438989       0.9959  -       Gypsy   LTR     159372

第1列是这个LTR-RTS的区间,包括5’LTR+INT+3'LTR. 第3列是motif:主要是TGCA,都是四个碱基,在5‘LTR和3’LTR左右各分布两个碱基。TG ...CA 图3中红色三角。 第4列TSD:重复序列,分布在5‘LTR左侧和3’LTR右侧。见图3中灰色块。 第5列5‘TSD和3’TSD的区间,这是在LTR-RTS区间的外 第6列Internal,是中间的区间。 第9列SuperFamily,植物中只有Gypsy和Copia两种类型,和unknown。unknown类型的可以自行提取序列,使用hmmer比对pfarm对应两个家族的蛋白,然后使用mafft比对,构建进化树。 第10列TE_type LTR或NA 第11列Insertion_Time,使用ggplot画出密度图,图2所示。

可视化

cat Spohua.chr.fa.out.LAI|sed 's/Chr0/Chr/' |sed 's/Chr//' |sed '2d'|tr "\t" , >species.ltr.csv 手动给左边第一行第一个添加CHR。注意:染色体如果是Chr01要替换为Chr1,species.ltr.csv里是1. 物种的LTR的年代的密度图 species.LTR.Insertion_Time.csv是genome.fa.pass.list最后一列

library("ggplot2")
#读入文件
dat<-read.csv("species.LTR.Insertion_Time.csv",header=FALSE)
#除以100万
VAF<-dat$V1 / 1000000

#画图(出图结果中x轴是以mya(百万年)为单位的。)
ggplot(dat,aes(x=VAF))+geom_density(color = "red")+xlab('Mya')+ylab('Density')+
  scale_x_continuous(expand = c(0, 0)) + 
  #scale_y_continuous(expand = c(0, 0))+ #设置横纵坐标从0开始
  theme_classic()
ggsave('Speies.LTR.density.pdf',dpi = 300)

#求峰值
y_peak <- which.max(density(VAF)$y)#找y值最大的
x_peak <- density(VAF)$x[y_peak]#找出最大的y所对应的x   


#分类可视化,LTR-RTs的密度图
#LTR.typetime.csv是genome.fa.pass.list最后一列和倒数第三列。
#读入文件
dat1<-read.csv("LTR.typetime.csv",header=FALSE)
#预处理
names(dat1) <- c("VAF1","Type")
dat1$VAF1<-dat1$VAF1 / 1000000


#画图
ggplot(dat1,aes(x=VAF1))+geom_density(aes(color = Type))+xlab('Mya')+ylab('Density')+
  scale_x_continuous(expand = c(0, 0)) + 
  #scale_y_continuous(expand = c(0, 0))+ #设置横纵坐标从0开始
  theme_classic()
ggsave('SpO_LTR_type.density.pdf',dpi = 300)


#species.ltr.csv来源于genome.fa.pass.list,其中列BP再csv文件里不存在
#可视化各个染色体上的LAI得分
install.packages("qqman")
library("qqman")
library("ggplot2")
install.packages("ggsci")
library("ggsci")
library("scales")
manhattan(gwasResults)
head(gwasResults,50)
data2 <- read.csv('species.ltr.csv')
data2$BP <- (data2$From + data2$To)/2 
show_col(pal_d3("category20")(20)) #使用ggsci来选择颜色
show_col(pal_igv("default")(51)) #51种颜色绝对够用。
show_col(pal_ucscgb("default", alpha = 0.6)(26))
show_col(pal_gsea("default", n = 30, alpha = 0.6, reverse = TRUE)(30))
##根据你的染色体的数量,灵活修改col的配色的颜色数量。
manhattan(data2,chr="CHR",bp="BP",p="LAI",logp=F,ylab="LAI",genomewideline = F,SNP= F ,suggestiveline = F,col = pal_d3("category20")(17))
ggsave('LTR.manhattan.pdf',dpi=300)
ggsave('LTR.manhattan.png')

head(data2) 
# CHR    From      To Intact  Total raw_LAI   LAI      BP
# 1   1       1 3000000 0.1917 0.7771   24.67 21.56 1500001
# 2   1  300001 3300000 0.1973 0.7971   24.76 21.65 1800001
# 3   1  600001 3600000 0.1976 0.8249   23.96 20.85 2100001
# 4   1  900001 3900000 0.2032 0.8621   23.57 20.46 2400001
# 5   1 1200001 4200000 0.1981 0.8769   22.59 19.48 2700001
# 6   1 1500001 4500000 0.1759 0.8843   19.89 16.78 3000001

By default the mutation rate is 1.3e-8 per bp per year (rice), so the unit is calendar year. You may specify a different rate by providing -u/-miu.默认的变异速率是1.3E-8.

最后注意:LTR_retriever默认已经完成了LAI的分析。在前者完成后,不要再用LAI再分析,LAI的输出会覆盖之前的输出,而且算出的LAI的值还比之前低。多倍体的数据需要把亚组分开计算,可以使用LAI单独计算。

不同基因组的相同亚组可以放到一起比较LAI. manhattan.png

Speies.LTR.density.png

LTR-RTs分类的讲解

LTR-RTs分类讲解.jpg

图中是LTR-retriever可以鉴定的LTR-RTs的种类。其中A类是主要的。植物中在5’LTR和3‘LTR的两端都有TG和CA结构。motif一般是TGCA,其他类型也能被鉴定出来。 大多数自主LTR元件的内部区域应包含引物结合位点,多嘌呤束,gag基因(即编码用于逆转录的结构蛋白)和pol基因(即起蛋白酶,逆转录酶和整合酶的作用

LTR-retriver输出文件

1.具有坐标和结构信息的完整LTR-RT 摘要表(.pass.list) GFF3格式输出(.pass.list.gff3) 包含有pass的是过滤整合后的最终的结果 2.LTR-RT库 所有非冗余LTR-RT(.LTRlib.fa) #已经删除重复的序列 所有非TGCA LTR-RT(.nmtf.LTRlib.fa) #此文件可能没有 所有(.LTRlib.redundant.fa)的LTR-RT(有冗余) #所有的LTR-TR序列 3.非冗余文库的全基因组LTR-RT注释 GFF格式输出(.out.gff) LTR系列摘要(.out.fam.size.list) LTR超家族摘要(.out.superfam.size.list) 每个染色体上的LTR分布(.out.LTR.distribution.txt) 4.LTR组装索引(.out.LAI)

回到页面顶部