不同参考基因组版本间 bed vcf文件转换

UCSC FTP path
ftp://hgdownload.soe.ucsc.edu/goldenPath/

1. 通过liftover转换bed文件坐标

1.1 下载转换的chain文件

http://hgdownload.soe.ucsc.edu/downloads.html#human
在这里插入图片描述hg19转hg38 的chain

wget http://hgdownload.soe.ucsc.edu/goldenPath/hg19/liftOver/hg19ToHg38.over.chain.gz

hg38转hg19 的chain

wget http://hgdownload.soe.ucsc.edu/goldenPath/hg38/liftOver/hg38ToHg19.over.chain.gz
1.2 下载liftover

可以参考之前的 hunman参考基因组下载及索引建立 中下载的ucsc tools ,使用里面的 liftOver

hg19 bed 转hg38

./liftOver hg19.bed  hg19ToHg38.over.chain.gz hg38.bed unmaped.bed

2. 通过 picard 转换 vcf 坐标

2.1 picard 下载,以及建立基因组索引

可以参考之前的 hunman参考基因组下载及索引建立

2.2 vcf坐标转换
java -jar picard.jar LiftoverVcf \
   I = input.vcf.gz  \
   O = output.vcf.gz \
   CHAIN = hg19ToHg38.over.chain.gz \
   REJECT = unmap_variants.vcf \
   R = hg38.fa  # ref genome
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
基于vcf文件比对到参考基因组鉴定单核苷酸变异的代码可以使用Python编写,主要包含以下步骤: 1. 解析vcf文件:使用vcfpy等Python库解析vcf文件,获取每个位点的信息,包括染色体位置、参考碱基、变异碱基等。 ```python import vcfpy # 读取vcf文件 vcf_reader = vcfpy.Reader.from_path("sample.vcf") # 遍历每个位点 for record in vcf_reader: chrom = record.CHROM # 染色体位置 pos = record.POS # 基因组位置 ref = record.REF # 参考碱基 alt = record.ALT[0] # 变异碱基 ``` 2. 比对到参考基因组:使用Bowtie2等比对软件将样本序列比对到参考基因组,得到比对结果。可以使用Python库pysam处理比对结果。 ```python import pysam # 打开bam文件 bam_file = pysam.AlignmentFile("sample.bam", "rb") # 按照染色体位置和基因组位置获取比对结果 for pileup_column in bam_file.pileup(chrom, pos-1, pos): # 遍历每个碱基 for pileup_read in pileup_column.pileups: # 判断碱基是否为参考碱基 if pileup_read.query_position is None: continue if pileup_read.alignment.query_sequence[pileup_read.query_position] != ref: # 错误碱基 else: # 参考碱基 ``` 3. 筛选单核苷酸变异:根据参考碱基和变异碱基的长度是否相同来判断是否为单核苷酸变异。 ```python if len(ref) == 1 and len(alt) == 1: # 单核苷酸变异 else: # 非单核苷酸变异 ``` 4. 鉴定变异类型:根据参考碱基和变异碱基的不同,鉴定变异类型,包括突变、同义突变、错义突变等。 ```python if ref == 'A' and alt == 'G': # A->G 突变 elif ref == 'C' and alt == 'T': # C->T 突变 elif ref == 'G' and alt == 'A': # G->A 突变 elif ref == 'T' and alt == 'C': # T->C 突变 elif ref == alt: # 同义突变 else: # 错义突变 ``` 5. 输出结果:根据变异类型输出结果,可以将结果保存到文件中。 ```python if ref == 'A' and alt == 'G': print("A->G 突变") elif ref == 'C' and alt == 'T': print("C->T 突变") elif ref == 'G' and alt == 'A': print("G->A 突变") elif ref == 'T' and alt == 'C': print("T->C 突变") elif ref == alt: print("同义突变") else: print("错义突变") ``` 以上是基于vcf文件比对到参考基因组鉴定单核苷酸变异的简单代码示例,具体根据需要进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风风是超人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值