因为流程需要,需要对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…
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