R

2021-01-02根据vcf文件计算SNP密度并用circli

2021-01-02  本文已影响0人  麦冬花儿

转载自:https://www.cnblogs.com/triple-y/p/10331449.html

收集vcftools所有用法

命令

vcftools --vcf snp.bialles.vcf --SNPdensity100000--outStatResults/SNPdensity

100000 是指定窗口长度

--out 是输出文件的前缀

使用R语言中的circlize包画图

参考

用circlize包绘制circos plot

https://www.jianshu.com/p/a87bcc1cb67b

代码

df<-read.table("SNPdensity.snpden",sep="\t",header=T)

head(df)

df<-df[,c(1,2,4)]

colnames(df)<-c("Chr","X","Y")

head(df)

df$X<-df$X/1000000

options(scipen=999)

library(circlize)

library(RColorBrewer)

col<-RColorBrewer::brewer.pal(12,"Paired")

circos.initialize(factors=df$Chr,x=df$X)

circos.trackPlotRegion(factors=df$Chr,y=df$Y,

                                     panel.fun=function(x,y){

                                     circos.axis()

                                     },track.height =0.05)

for(i in1:12){

  highlight.sector(sector.index = paste0("Chr",i),col=col[i])

  circos.text(CELL_META$xcenter, CELL_META$ycenter,

                   labels = paste0("Chr",i),

                   sector.index = paste0("Chr",i),cex=0.5)

}

circos.trackPlotRegion(factors=df$Chr,y=df$Y)

circos.trackLines(df$Chr,df$X,df$Y,col=col)

circos.trackPlotRegion(factors=df$Chr,y=df$Y)

circos.trackPoints(df$Chr,df$X,df$Y,col=col,cex=0.5)

circos.trackHist(df$Chr,df$X,col=col)

circos.clear()

结果

image.png

还想实现的其他功能:

想开一个口子用俩给每一圈添加文字标签,如何用代码实现还不太清楚,想到一个解决办法是多加一条染色体,然后出图后手工编辑将这条染色体删除掉,然后添加文字标签

如何填加一圈柱形图呢?

vcftools计算SNP密度的时候是否可以设置滑动窗口?

上一篇下一篇

猜你喜欢

热点阅读