美文网首页R
2021-01-02根据vcf文件计算SNP密度并用circli

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

作者: 麦冬花儿 | 来源:发表于2021-01-02 17:03 被阅读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密度的时候是否可以设置滑动窗口?

    相关文章

      网友评论

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

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