vcf to ped format: переопределить не-dbSNP
Когда я конвертирую файл vcf в формат ped (с помощью vcftools или с vcf в конвертер ped 1000G), я сталкиваюсь с проблемой, что идентификаторы вариантов, у которых нет идентификатора dbSNP, получают позицию базовой пары этого варианта. в качестве удостоверения личности. Пример пары вариантов:
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 получили формат "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
Было бы здорово, если бы кто-нибудь мог помочь мне объяснить, какую команду или какой сценарий я должен использовать, чтобы изменить этот 2-й столбец для вариантов без идентификатора dbSNP.
Спасибо!
2 ответа
Это можно сделать с помощью 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:]] для работы с вкладкой).
Это можно сделать с помощью plink2. Вам просто нужно использовать параметр --set-missing-var-ids ( https://www.cog-genomics.org/plink2/data) соответственно:
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]
Однако обратите внимание, что вы могли бы иметь несколько вариантов, которым были назначены одинаковые идентификаторы с использованием этого метода, и plink2 не допустит варианты с одним и тем же идентификатором. Чтобы узнать больше о преобразовании файлов VCF в plink, у следующего ресурса есть дополнительная информация: http://apol1.blogspot.com/2014/11/best-practice-for-converting-vcf-files.html