recos软件绘制不同类型TE在染色体的分布热图

1、前期准备

第一步, 获取repeat注释结果,使用RepeatMasker对基因组进行repeat分析,可以得到以out结尾的文件,命令行如下:

#genome.fa:为进行repeat分析的基因组文件
#denovo.lib:从头repeat分析得到的repeat库
RepeatMasker genome.fa  -lib denovo.lib -s  -nolow  -norna  -gff  -engine  ncbi  -parallel  8  -no_is  -dir  ./ 
# 输出文件会在-dir指定的路径下生成 genome.fa.out

第二步,获取关心TE类型在基因组的分布

#通过模式匹配获取位置分布,下面命令行以LTR/Gypsy为例进行展示,
#   后面我们还依次得到LTR/Copia、LINE、DNA的分布
sed 's/^\s*//' genome.fa.out|awk 'BEGIN{OFS="\t"}{if($11~/LTR\/Gypsy/){print $5,$6,$7,$11}}' | sort -k1,1 -k2,2n >LTR_Gypsy.bed
bedtools merge  -i  LTR_Gypsy.bed >LTR_Gypsy.merged.bed

第三步,生成基因组的配置文件

#计算染色体长度
samtools faidx genome.fa -o genome.fai
#删除冗余列,只保留序列名称和长度列,并且只保留染色体水平的序列
grep "^Chr" genome.fai|cut -f1,2 >genome.length.txt
#以100Kb为窗口,生成基因组的bed文件
bedtools makewindows -g genome.length.txt -w 100000 >genome.bed
#生成绘图用到的基因组信息文件
cat genome.length.txt|while read chr len;do index=$[index + 1]; echo -e "$chr\t$len\t12\t1\t1\t0\tblack\tblack\tblack\t$index";done >genome.list 

第四步,计算不同类型TE在基因组以100Kb为窗口中的覆盖度

#还是以LTR/Gypsy为例(该文件来自第二步),计算窗口中的覆盖度,
#其中genome.bed来自第三步,其他类型操作类似依次得到LTR_Copia.BED、LINE.BED、DNA.BED
bedtools coverage -a genome.bed -b LTR_Gypsy.merged.bed| awk 'BEGIN{OFS="\t"}{print $(1),$(2),$(3),$(7)}' >LTR_Gypsy.BED

2、生成配置文件

首先从整体上看下配置文件(example.ini)的内容,后面我们详细说明ref_in*中color_file 、lab、lab_color 、lab_size 、min、max参数。

[canvas]                                                                                                                                       
width  = 1000
height = 1500
direction = horizontal
axis_ratio = 0.05
name_ratio = 0.1
margin = 10,10,5,20
inner_ratio = 0.1,0.85,0.05,0,0

[axis]
canvas_position = bottom
ticks_minor = 2Mb
ticks_major = 10Mb
ticks_minor_len = 5
ticks_major_len = 10
axis_line = 0.4
axis_color = rgb(0,0,0)
axis_label = 0.85
axis_label_size = 12
axis_label_color = rgb(0,255,255)
axis_width = 1
axis_opacity = 1
label_unit = Mb

[chromosome]
canvas_position = left
chromosome_list = min_ref.list
chroms = 1,2,3,4,5,6,7,8,9,10
name_position = topleft
round = 0

[ref_in1]
file = LTR_Gypsy.BED
type = heatmap
pos0 = 0
pos1 = 0.2
color_file = color.txt
lab = LTR/Gypsy
lab_color = black
lab_size = 10
min = 0
max = 1

[ref_in2]
file = LTR_Copia.BED
type = heatmap
pos0 = 0.2
pos1 = 0.4
color_file = color.txt
lab = LTR/Copia
lab_color = black
lab_size = 10
min = 0
max = 1

[ref_in3]
file = DNA.BED
type = heatmap
pos0 = 0.4
pos1 = 0.6
color_file = color.txt
lab = DNA
lab_color = black
lab_size = 10
min = 0
max = 1

[ref_in4]
file = LINE.BED
type = heatmap
pos0 = 0.6
pos1 = 0.8
color_file = color.txt
lab = LINE
lab_color = black
lab_size = 10
min = 0
max = 1

如果type为heatmap,我们可以使用内置生成颜色的方案,这就需要设置low_color和high_color ,也可以自己生成渐变色列表。如果使用自定义的颜色方案,就需要配置color_file 参数,里面是渐变色码。颜色和值的对应关系是线性的,文件开头的颜色值对应值较小的颜色,后面的颜色值对应值较大时的颜色。如果使用自己的颜色方案,可以使用下面R代码生成渐变色列表文件,只需要修改里面的颜色值即可:

#!/usr/bin/Rscript                                                                                                                             
code <- colorRampPalette(c("blue", "orange", "red"),space = "rgb")(100)
write.table(code, file="color.txt", quote=FALSE, col.names=FALSE, row.names=FALSE)
library("RColorBrewer")
display.brewer.pal(11,"PiYG")
data<-brewer.pal(11,"PiYG")
write.table(rev(data), file="color2.txt", quote=FALSE, col.names=FALSE, row.names=FALSE)

这里的lab参数用于设置标签名称,来标注每一部分的TE类型;lab_color设置标签颜色;lab_size设定标签的字体大小。
对于一个窗口,如果没有覆盖,那么其覆盖度就是0,而如果完全被覆盖,即这个窗口都是某一类型的TE,那么其覆盖度就是1,所以我们设置min=0、max=1。

3. 运行软件生成图片

recos下载安装完成后,按照上面描述生成相关配置文件,就可以运行软件了:

#其中example.ini为配置文件名称,-o后面的sample表示输出文件名称前缀,下例输出文件为sample.svg
perl recos_wrapper.pl -c example.ini -o sample
最终生成的不同TE类型的分布热图
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容