vcf到ped格式:重新定义非dbSNP

时间:2014-01-28 08:31:55

标签: bioinformatics vcftools

当我将vcf文件转换为ped格式(使用vcftools或使用vcf转换为1000G的转换器)时,我遇到的问题是没有dbSNP ID的变体的ID获得基本对位置该变体作为ID。一对变体的例子:

1   rs35819278  0   23333187
1   23348003    0   23348003
1   23381893    0   23381893
1   rs18325622  0   23402111
1   rs23333532  0   23408301
1   rs55531117  0   23810772
1   23910834    0   23910834

但是,我希望没有dbSNP ID的变体获得格式“chr:basepairposition”。所以上面的例子看起来像:

1   rs35819278  0   23333187
1   chr1:23348003   0   23348003
1   chr1:23381893   0   23381893
1   rs18325622  0   23402111
1   rs23333532  0   23408301
1   rs55531117  0   23810772
1   chr1:23910834   0   23910834

如果有人能帮我解释一下我必须使用哪个命令或哪个脚本来更改没有dbSNP ID的变体的第二列,那会很棒。

谢谢!

2 个答案:

答案 0 :(得分:1)

这可以用sed完成。由于涉及选项卡,因此确切的语法可能会有所不同,具体取决于系统上安装的sed;以下内容适用于Linux:

cat [.map filename] | sed 's/^\([0-9]*\)\t\([0-9]\)/\1\tchr\1:\2/g' > [new filename]

这会查找以[number] [tab] [digit]开头的行,并以[number] [tab] chr [number]:[digit]开头,而不改变其他行。

OS X有点痛苦(你需要使用ctrl-V或[[:blank:]]来处理标签页。)

答案 1 :(得分:1)

这可以通过plink2完成。您只需要相应地使用--set-missing-var-ids选项(https://www.cog-genomics.org/plink2/data#set_missing_var_ids):

plink --vcf [filename] \
    --keep-allele-order \
    --vcf-idspace-to _ \
    --double-id \
    --allow-extra-chr 0 \
    --split-x b37 no-fail \
    --set-missing-var-ids chr@:# \
    --make-bed \
    --out [prefix]

但是,请注意,您可以使用此方法为多个变体分配相同的ID,plink2将不允许具有相同ID的变体。要了解有关将VCF文件转换为plink的更多信息,以下资源可提供更多见解:http://apol1.blogspot.com/2014/11/best-practice-for-converting-vcf-files.html