寫在前面
通常我們碰到的是,根據(jù)gff文件提取cDNA序列,這個(gè)比較容易滿足,但是有時(shí)候我們需要構(gòu)建native promoter 載體的時(shí)候,就需要提取cDNA前面的序列,真核生物大約是3k,原核大約是0.5k。這個(gè)時(shí)候就需要稍微繞一下彎,但是思路還是基本一致的。
1.準(zhǔn)備的東西
工具:samtools,bedtools,bedops,都可以通過conda一鍵安裝。
序列文件:基因組文件fasta,注釋文件gff。
2.提取
2.1 提取gff文件的所有基因位置,并轉(zhuǎn)換成bed格式
awk '{if($3~/^gene$/)print}' file.gff > genes.gff
gff2bed <genes.gff> genes.bed
2.2 計(jì)算染色體長(zhǎng)度
samtools faidx file.fasta
cut -f 1,2 file.fa.fai > sizes.chr
2.3 創(chuàng)建包含promoter位置的bed文件
bedtools flank -i genes.bed -g sizes.chr -l 3000 -r 0 -s > promoters.bed
# -l 基因起始位置前多少bp
# -r 基因后多少bp
# -s
2.4 根據(jù)promoter的位置信息,在基因組序列中抓取promoter的序列
bedtools getfasta -s -fi file.fa -bed promoters.bed -fo promoters.fa -name