1

当我将 vcf 文件转换为 ped 格式(使用 vcftools 或使用 vcf 到 1000G 的 ped 转换器)时,我遇到了一个问题,即没有 dbSNP 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 的变体的第二列,那就太好了。

谢谢!

4

2 回答 2

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:]] 来处理选项卡)。

于 2014-01-28T15:17:49.860 回答
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

于 2015-04-06T21:36:35.757 回答