前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用bedtools的getfasta功能来获取指定坐标上下游的序列

使用bedtools的getfasta功能来获取指定坐标上下游的序列

作者头像
生信技能树
发布2020-02-20 14:49:12
4.2K1
发布2020-02-20 14:49:12
举报
文章被收录于专栏:生信技能树

前些天给学徒演示了猪狗的参考基因组构建索引 就顺便布置了作业,有意思的是她下载的时候,在两个参考基因组文件里面犹豫不决:

代码语言:javascript
复制
<species>:   The systematic name of the species.
<assembly>:  The assembly build name.
<sequence type>:
 * 'dna' - unmasked genomic DNA sequences.
  * 'dna_rm' - masked genomic DNA.  Interspersed repeats and low
     complexity regions are detected with the RepeatMasker tool and masked
     by replacing repeats with 'N's.
  * 'dna_sm' - soft-masked genomic DNA. All repeats and low complexity regions

就是参考基因组是否带上rm后缀,我让她试一下,找一个fastq测序数据比对到两个参考基因组,结果她告诉我居然比对率很不一样,在rm后缀的参考基因组比对率比没有rm的参考基因组低10%。我仔细想了想,因为rm后缀的参考基因组意味着里面很多序列实际上是被NNNN占用了,所以一些在正常参考基因组里面比对成功的reads在rm后缀参考基因组比对失败很正常。

所以我让她提前了其中一个序列的比对坐标,然后去两个参考基因组里面看这个坐标里面的序列,是不是rm后缀的,被NNNN了。就发现她不会,所以提示了她getfasta可以根据BED/GFF/VCF文件提供的feature在染色体上的位置信息,从fasta中提取feature的碱基序列!

比如我想验证一些NGS得到的突变位点,需要获取位点上下游序列这样可以去设计引物做一代测序,位点坐标如下:

代码语言:javascript
复制
chr17    43045748
chr17    43045761
chr17    43057069
chr17    43057116
chr17    43094853

简单脚本做出bed格式文件:

代码语言:javascript
复制
$awk '{print $1,$2-300,$2+300}' tmp.pos
chr17 43045448 43046048
chr17 43045461 43046061
chr17 43056769 43057369
chr17 43056816 43057416
chr17 43094553 43095153
jianmingzeng 10:20:57 ~/tmp
# awk '{print $1"\t"$2-300"\t"$2+300}' tmp.pos > tmp.bed

标准用法是:bedtools getfasta -fi test.fa -bed test.bed -fo test.fa.out

代码语言:javascript
复制
bedtools getfasta -fi  ~/reference/genome/hg38/hg38.fa  -bed  tmp.bed -fo tmp.fa

写在最后,还有她下载的不是我曾下载过toplevel版本的基因组,比如人类的Homo_sapiens.GRCh38.dna.toplevel.fa.gz,文件大小1G,解压后54G!!!实际上用它对应的primary版本就够了:这个文件Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz是正常的, primary的版本中是不包括haplotype info的,而top level中会包含大量的变异信息,而这部分是很冗余并且一般也用不太到。

还有更多例子

所以说,bedtools 是能取代普通生信工程师的,更多实用小例子:

  • Coverage analysis for targeted DNA capture. Thanks to Stephen Turner.
  • Measuring similarity of DNase hypersensitivity among many cell types
  • Extracting promoter sequences from a genome
  • Comparing intersections among many genome interval files
  • RNA-seq coverage analysis. Thanks to Erik Minikel.
  • Identifying targeted regions that lack coverage. Thanks to Brent Pedersen.
  • Calculating GC content for CCDS exons.
  • Making a master table of ChromHMM tracks for multiple cell types.
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 还有更多例子
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档