使用R语言包RIdeogram展示blast双序列比对结果

RIdeogram 是用来展示 染色体组型 (idiogram)的一个R语言包,比如展示snp的密度分布;展示某类基因在染色体上的分布等等。
具体介绍可以参考
https://www.plob.org/article/16335.html

发表的论文是

RIdeogram: drawing SVG graphics to visualize and map genome-wide data on the idiograms
PeerJ 2020

附件中还提供了好几份数据集合代码,非常好的学习素材。
我在看这个包的帮助文档的时候也发现了展示2个或者3个基因组共线性分析的图。
需要准备的数据是两个数据框,
第一个是基因组的基本信息,包括

> head(karyotype_dual_comparison)
  Chr Start      End   fill species size  color
1  I      1 23037639 969696   Grape   12 252525
2  II     1 18779884 969696   Grape   12 252525
3 III     1 19341862 969696   Grape   12 252525
4  IV     1 23867706 969696   Grape   12 252525
5   V     1 25021643 969696   Grape   12 252525
6  VI     1 21508407 0ab276   Grape   12 252525

第二个是共线性分析的结果

> head(synteny_dual_comparison)
  Species_1  Start_1    End_1 Species_2 Start_2   End_2   fill
1         1 12226377 12267836         2 5900307 5827251 cccccc
2        15  5635667  5667377        17 4459512 4393226 cccccc
3         9  7916366  7945659         3 8618518 8486865 cccccc
4         2  8214553  8242202        18 5964233 6027199 cccccc
5        13  2330522  2356593        14 6224069 6138821 cccccc
6        11 10861038 10886821        10 8099058 8011502 cccccc

了解了基本的数据输入格式,那么我们就可以将blast的比对结果转化成这种形式。

首先是使用blast比对
构建数据库

makeblastdb -in mt.fasta -dbtype nucl -out mt

比对

blastn -query cp.fasta -db mt -outfmt 6 > output.txt

构造RIdeogram的输入数据

df1.txt文件内容

Chr,Start,End,fill,species,size,color
I,1,131478,FF9D1E,chloroplast,12,252525
I,1,444567,FF9D1E,mitochondrion,12,252525

output6.txt文件内容

NC_044701   NC_044768   96.76   1603    43  7   54477   56074   375799  374201  0.0 2663
NC_044701   NC_044768   83.69   423 37  19  68192   68587   44003   44420   2e-101  370
NC_044701   NC_044768   85.28   326 38  5   66335   66654   360145  360466  1e-88   327
NC_044701   NC_044768   74.07   891 172 45  102938  103801  332888  333746  1e-83   311
NC_044701   NC_044768   90.54   148 11  3   36180   36324   64144   64291   4e-48   193
NC_044701   NC_044768   95.56   90  3   1   49  138 406657  406745  4e-33   143
NC_044701   NC_044768   96.51   86  2   1   110947  111032  420751  420667  2e-32   141
NC_044701   NC_044768   96.43   84  3   0   31738   31821   384266  384349  5e-32   139
NC_044701   NC_044768   94.94   79  4   0   53913   53991   2926    3004    2e-27   124
NC_044701   NC_044768   96.77   62  2   0   105594  105655  110375  110314  2e-21   104
NC_044701   NC_044768   87.34   79  6   3   88210   88284   240028  240106  2e-16   87.9
NC_044701   NC_044768   100.00  31  0   0   10365   10395   63403   63373   2e-07   58.4
NC_044701   NC_044768   96.97   33  0   1   66299   66330   360093  360125  2e-06   54.7

作图代码

df1<-read.csv("df1.txt",stringsAsFactors = F)
df1
df2<-read.csv("output6.txt",header=F,sep="\t",stringsAsFactors = F)
df3<-df2[,c(3,7,8,9,10)]
df3$fill<-ifelse(df3$V3>90,"0080cc",
                 ifelse(df3$V3<80,"0ab276","e64e60"))

df3$Species_1<-1
df3$Species_2<-1
head(df3)
df4<-df3%>%
  select(Species_1,V7,V8,Species_2,V9,V10,fill)
colnames(df4)<-colnames(synteny_dual_comparison)
ideogram(karyotype =df1 ,
         synteny=df4,output = "1.svg")
rsvg_pdf("1.svg",'3.pdf')

结果


image.png

但是这个图有一个缺点是不能体现出两条序列长度的差异,不知道能不能按长度的比列来显示,如何用代码实现暂时还不知道。
想到一个办法是出图后手动加上刻度线

今天先到这里了
欢迎大家关注我的公众号
小明的数据分析笔记本

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