更新版本点击这里!
NCCL室间质评推荐使用的外显子bed是UCSC的hg19外显子bed,而推荐使用的TMB计算区间则是CCDS的交集。下面介绍怎么获得这两个bed。
使用UCSC Table Browser,assembly选择GRCh37/hg19,track选择NCBI RefSeq,output format选择BED,然后选择get output,再在下一个页面中选择Exons plus 0。点击get Bed即是外显子bed。需注意的是,这个bed包含同一基因的多个转录本。
对于CDS区域(即外显子区域去除UTR3),可以在上一步选择Coding Exons,然后获得bed。
另外可以从NCBI获取CCDS的bed。
对于GRCh37,最新的版本是Hs105。
wget https://ftp.ncbi.nlm.nih.gov/pub/CCDS/archive/Hs105/CCDS.current.txt
使用下面的python脚本转换为bed格式,需要注意的是,CCDS中的坐标需要加1。
ccds = open("CCDS.current.txt", "r", encoding="utf-8")
ccdsBed = open("CCDS.bed", "w", encoding="utf-8")
for line in ccds:
if not line.startswith("#"):
lines = line.split("\t")
chrom = lines[0]
gene = lines[2]
ccds_id = lines[4]
ccds_status = lines[5]
cds_strand = lines[6]
cds_locations = lines[9]
if ccds_status != "Public":
continue
n = 0
cdsList = cds_locations.replace("[", "").replace("]", "").split(", ")
if cds_strand == "-":
cdsList = cdsList[::-1]
for c in cdsList:
n += 1
exonNum = str(n)
cLoc = c.split("-")
start = str(int(cLoc[0]) + 1)
end = str(int(cLoc[1]) + 1)
name = gene + "_" + ccds_id + "_exon" + exonNum
ccdsBed.write("\t".join([chrom, start, end, name, cds_strand]) + "\n")
ccdsBed.close()
ccds.close()
结果使用bedtools进行排序
bedtools sort -i CCDS.bed > CCDS.sort.bed
由于CCDS中包含相同基因的不同转录本,因此结果文件中会包含重复的区域,最后使用bedtools来将区域进行合并
bedtools merge -i CCDS.sort.bed > CCDS.merge.bed