美文网首页基因组数据绘图R生信相关
根据vcf文件计算SNP密度并用circlize可视化结果

根据vcf文件计算SNP密度并用circlize可视化结果

作者: 小明的数据分析笔记本 | 来源:发表于2020-01-14 23:13 被阅读0次
    参考

    收集vcftools所有用法

    命令
    vcftools --vcf snp.bialles.vcf --SNPdensity 100000 --out StatResults/SNPdensity
    

    100000 是指定窗口长度
    --out 是输出文件的前缀

    使用R语言中的circlize包画图

    参考

    用circlize包绘制circos plot

    代码

    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(8,"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 in 1:8){
      highlight.sector(sector.index = paste0("LG",i),col=col[i])
      circos.text(CELL_META$xcenter, CELL_META$ycenter,
                  labels = paste0("LG",i),
                  sector.index = paste0("LG",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.trackPlotRegion(factors=df$Chr,y=df$Y)
    circos.trackHist(df$Chr,df$X,col=col)
    circos.clear()
    

    结果


    image.png

    还想实现的其他功能:

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

    • 如何填加一圈柱形图呢?

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

    欢迎大家关注我的公众号
    小明的数据分析笔记本

    公众号二维码.jpg

    相关文章

      网友评论

        本文标题:根据vcf文件计算SNP密度并用circlize可视化结果

        本文链接:https://www.haomeiwen.com/subject/dcinactx.html