利用deeptools来做基因在genome上的分布图

需要做一个感兴趣的基因的测序数据在基因组上的分布profile,deeptools可以解决这个问题,记录一下过程。
1、安装deeptools
pip install deeptools

2、准备bw和bed文件
(1)bw
bw即样本测序数据的bigwig文件,之前做过,也是用deeptools的bamCoverage就可以实现。

bamCoverage -b sample.bam -o sample.bw

(2)bed
bed即感兴趣的基因在genome上的位置,我先用10个基因测试,10个基因的ensembl_id放入10.txt中。
①利用bedtools来将人类基因组注释文件中的‘gene’区域提取出来,并按照bed格式要求转换为txt。
bed格式要求:
第一列:染色体
第二列:起始位置
第三列:终止位置
第四列:基因名
第五列:基因长度
第六列:正负链
这六列在gtf中分别对应1、4、5、9、5-4、7列。其中长度通过5-4计算。

awk -F ";” '{print $1}' Homo_sapiens.GRCh38.91.gtf| awk -F "\t" '{if($3~/gene/) print  $1"\t"$4"\t"$5"\t"$9"\t"$5"-"$4"\t"$7" }'|sed 's/gene_id//g'|sed 's/"//g'> hg38.txt

②利用R,将hg38.txt和10.txt进行关联合并,从而获得10个基因在染色体上的位置信息。

hg38.bed <- read.delim("hg38.txt",sep ="",header = FALSE)
rownames(hg38.bed)<-hg38.bed$V4
10.txt <- read.delim("10.txt", header = FALSE)
rownames(10.txt)<- 10.txt$V1

10.bed <-hg38.bed[match(rownames(10.txt),rownames(hg38.bed)),c(1:6)]
10.bed$V4 <- rownames(I.bed)
write.table(10.bed,file ="10.bed",sep ="\t", quote = FALSE, col.names = FALSE,row.names=FALSE)

到此为止,获得了sample.bw以及10.bed,即可以开始作图。

3、利用deeptools作图
(1)先计算computeMatrix
输出matrix.mat.gz进入下一步

computeMatrix scale-regions -S sample.bw  -R 10.bed --beforeRegionStartLength 1000 --regionBodyLength 5000 --afterRegionStartLength 1000 --skipZeros -o matrix.mat.gz

(2)利用plotProfile绘图

plotProfile -m matrix.mat.gz  -out ExampleProfile1.png --plotTitle "Test data profile"

在这里插入图片描述

deeptools还有更多参数,参考官网即可。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个完整的R语言绘制细菌全基因组圆环图的代码,使用了`circlize`包和`GenomicFeatures`包中的`makeCircularizedDataFrame`函数,可以绘制出更为精细的基因组圆环图。 ```R library(circlize) library(GenomicFeatures) # 读入基因组注释文件(gff格式) anno <- read.table("genome.gff", header=FALSE, sep="\t", stringsAsFactors=FALSE) # 读入基因组序列文件(fasta格式) seq <- readDNAStringSet("genome.fasta") # 将注释信息和序列信息合并成一个数据框 df <- makeCircularizedDataFrame(anno, seq) # 绘制圆环图 circos.clear() circos.initializeWithIdeogram(species = "genome", order = unique(df$chrom), track.height = 0.2) circos.genomicTrackPlotRegion(df, genome="genome", ylim=c(-0.5,0.5), track.height=0.2, panel.fun = function(region, value, ...) { circos.text(mean(region), 0, value$name, facing="clockwise", niceFacing=TRUE) circos.rect(region, col=value$color, border=NA) }) circos.trackPlotRegion(ylim=c(-1,-0.6), bg.border=NA, bg.col="white") circos.genomicTrackPlotRegion(df, genome="genome", ylim=c(-1,-0.6), track.height=0.2, panel.fun = function(region, value, ...) { circos.rect(region, col=value$color, border=NA) }) circos.genomicAxis(h=1, labels=TRUE, direction="outside", major.by=1e6, track.height=0.1, genome="genome") ``` 其中,`genome.gff`是基因组注释文件,`genome.fasta`是基因组序列文件。运行代码后会生成一个细菌全基因组的圆环图,其中每个基因用不同的颜色表示,相同染色体上的基因按顺序排列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值