生成hg38 外显子区域侧翼100bp的bed文件

212 阅读1分钟

因为流程需要,需要对hg38的GTF文件中的外显子区域上下10obp生成BED文件,以供后续的软件使用,这里对BED文件生成的过程进行记录。

1、安装需要的软件

conda install bedtools -c bioconda

下载完成后,检查bedtools是否正常安装。这里下载bedtools是为了使用bedtool提供的slop功能。bedtools slop 是 bedtools 工具集中用于扩展基因组区间大小的命令。bedtools slop 网页地址:bedtools.readthedocs.io/en/latest/c…

image.png

betools slop提供的参数

# 使用方式
bedtools slop [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> [-b or (-l and -r)]
  • ​**-b**​
    在 BED/GFF/VCF 条目的起始和终止位置各增加相同数量的碱基对(整数参数)。
  • ​**-l**​
    从起始坐标减去指定的碱基对数量(整数参数)。
  • ​**-r**​
    在终止坐标增加指定的碱基对数量(整数参数)。
  • ​**-s**​
    根据链的方向(正链/负链)调整 -l-r 的行为。例如,负链特征使用 -l 500 时,会向终止坐标(而非起始坐标)添加 500 碱基对。
  • ​**-pct**​
    -l-r 的值视为特征长度的百分比。例如,-l 0.50 对 1000bp 的特征会添加 500bp(50%)。默认为 false
  • ​**-header**​
    在输出结果前保留输入文件的标题行。

2、下载需要的文件

# genome fasta文件
wget https://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/analysisSet/hg38.analysisSet.fa.gz
gunzip hg38.analysisSet.fa.gz

# 下载GTF文件
wget https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_38/gencode.v38.annotation.gtf.gz
gunzip gencode.v38.annotation.gtf.gz

# 下载染色体size文件
# 从 UCSC 下载
wget https://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/hg38.chrom.sizes

3、生成需要的文件

# 提取外显子(过滤非标准染色体)
awk '$3 == "exon" && $1 ~ /^(chr)?[0-9XYMT]+$/' gencode.v38.annotation.gtf | \
    awk 'BEGIN{OFS="\t"} {print $1,$4-1,$5}' > exons.bed

# 按外显子合并重叠区域(避免重复)
bedtools sort -i exons.bed | bedtools merge -i - > merged_exons.bed

# 扩展 100bp(确保不超出染色体边界)
bedtools slop -i merged_exons.bed -g hg38.chrom.sizes -b 100 > exons_100bp_flank.bed

image.png