专栏名称: 生信宝典
生物信息分析入门、晋级和经验分享。Linux、R、Python学习教程;高通量测序数据分析学习教程;生信软件安装教程。所有内容均为原创分享,致力于从基础学习到提高整个过程。
目录
相关文章推荐
华大集团BGI  ·  火速报名!2025『猛犸杯』国际生命科学创新 ... ·  4 小时前  
生物学霸  ·  陆军军医大学 2025 年高分文章连发 ... ·  5 小时前  
生信宝典  ·  新课第四期,7 月 | ... ·  昨天  
51好读  ›  专栏  ›  生信宝典

盘点生信常用文件格式的坐标系统:0-based和1-based及实战代码

生信宝典  · 公众号  · 生物  · 2025-06-03 21:00

正文

请到「今天看啥」查看全文


1:1-3 ACG
提取第2到第4个碱基(应该输出CGC序列):
samtools faidx seq.fasta 1:2-4
# 输出如下>1:2-4CGC

2. 使用samtools和UCSC浏览器工具从人类参考基因组提取指定坐标的序列
2.1 使用samtools faidx从人类参考基因组提取指定坐标的序列:
samtools faidx hg38.fasta chr1:20000-20010 # 这是1-based坐标
# 输出如下>chr1:20000-20010TCCTGGTGCTC

2.2 使用 UCSC浏览器工具从人类参考基因组提取指定坐标的序列
打开UCSC的Get DNA页面: https://genome.ucsc.edu/cgi-bin/hgc?hgsid=2561378210_0SH48A2X5GjKYFwsJ8yNF3sfblHg&o=70166678&g=getDna&i=mixed&c=chr14&l=70166678&r=70166708&db=hg38
然后输入序列坐标,如下:
最后得到的序列如下:
和前面使用samtools得到的结果是一样的。

3. 使用tabix从VCF文件中提取指定坐标区域的遗传变异
这一部分会使用dbSNP155数据库中的遗传变异作为测试数据,该数据库下载链接为 https://ftp.ncbi.nih.gov/snp/archive/b155/,由于该数据很大,所以本文仅选取该数据库中前几个遗传变异进行测试。
生成示例数据(vcf文件):
vcf_file=dbSNP.test.vcf.gzecho -"##fileformat=VCFv4.2##contig=#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER1\t10001\trs1570391677\tT\tA,C\t.\t.1\t10002\trs1570391692\tA\tC\t.\t.1\t10003\trs1570391694\tA\tC\t.\t.1\t10007\trs1639538116\tT\tC,G\t.\t.1\t10008\trs1570391698\tA\tC,G,T\t.\t.1\t10009\trs1570391702\tA\tC,G\t.\t.1\t10013\trs1639538192\tT\tC,G\t.\t.1\t10013\trs1639538231\tTA\tT\t.\t.1\t10014\trs1639538207\tA\tC,G,T\t.\t." | bgzip > $vcf_file
建立索引:
tabix -p vcf dbSNP.test.vcf.gz # -p vcf表示文件是VCF格式,tabix可以从VCF文件中识别到基因组坐标信息
tabix的详细用法见: https://www.htslib.org/doc/tabix.html
接下来使用tabix来提取该vcf文件中的snps。
tabix支持两种提取方式:
  1. tabix test.vcf region :将坐标直接写到vcf文件后面,此时坐标是1-based
  2. tabix test.vcf -R region_file :将坐标存入到文件中(有三列,分别是chrom,start,end,分隔符是Tab),若文件后缀是tsv,则 tabix认为坐标是1-based;若文件后缀是bed,则tabix认为坐标是0-based

接下来使用tabix来提取该文件中 1:10008-10013区域的遗传变异。
方式1: tabix test.vcf region (1-based)
tabix dbSNP.test.vcf.gz 1:10008-10013 # 1-based坐标
# 输出如下1       10008   rs1570391698    A       C,G,T   .       .1       10009   rs1570391702    A       C,G     .       .1       10013   rs1639538192    T       C,G     .       .1       10013   rs1639538231    TA      T       .       .
方式2: tabix test.vcf -R region_file.tsv (1-based,region文件后缀是tsv)
echo -e "1\t10008\t10013" > 1_based_pos.tsv # 和方式1结果一致tabix dbSNP.test.vcf.gz -R 1_based_pos.tsv
# 输出如下1       10008   rs1570391698    A       C,G,T   .       .1       10009   rs1570391702    A       C,G     .       .1       10013   rs1639538192    T       C,G     .       .1       10013   rs1639538231    TA      T       .       .
方式3: tabix test.vcf -R region_file.bed (0-based,region文件后缀是bed)
echo -e "1\t10007\t10013" > 0_based_pos.bedtabix dbSNP.test.vcf.gz -R 0_based_pos.bed
# 输出如下 1       10008   rs1570391698    A       C,G,T   .       .1       10009   rs1570391702    A       C,G     .       .






请到「今天看啥」查看全文