Уважаемое сообщество StackOverflow
Я биолог и работаю с вариантами заболевания / генетики c из официальной базы данных ClinVar. Моя цель - извлечь все имена генов, транскрипты и варианты из этого списка.
ftp: //ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/ClinVarFullRelease_2020-01.xml .gz
Однако ClinVar предлагает необходимую информацию в одном столбце под названием «Имя». (Я разделил некоторые значения с разными результатами, с которыми я хочу иметь дело в примере в таблице ниже:)
Name ClinicalSignificance
1 NG_012236.2:g.11027del Pathogenic
2 NM_018077.3(RBM28):c.1052T>C (p.Leu351Pro) Pathogenic
3 NC_012920.1:m.7445A>G Pathogenic
4 m.7510T>C Pathogenic
5 NC_000023.11:g.(134493178_134493182)_(134501172_134501176)del Pathogenic
(есть другой тип данных, однако, поскольку он не содержит информация, в которой я нуждаюсь, я буду рассматривать как мусор)
Я ищу способ разбить столбец «Имя» на 3 других столбца, используя несколько разделителей. Я пытался использовать "|" как часть моего аргумента регулярного выражения для нескольких совпадений. Однако каждый раз, когда он работает, отправляет данные, которые уже были разделены, в столбец справа. Мой код:
ClinVar_Clean <- separate(ClinVar_Clean, Name, into = c("Transcript","gene.var"),sep = "(?<=\\.[0-9]{1,2})[(]|(?<=[0-9]{3,16}\\.[0-9]{1,2}):|(?=[cmpng]\\.)")
ClinVar_Clean <- separate(ClinVar_Clean, gene.var, into = c("Gene","Variant"),sep = "\\):|(?=[cmpng]\\.)")
Мой результат:
Transcript Gene Variant ClinicalSignificance
1 NG_012236.2 <NA> Pathogenic
2 NM_018077.3 RBM28 Pathogenic
3 NC_012920.1 <NA> Pathogenic
4 m.7510T>C Pathogenic
5 NC_000023.11 <NA> Pathogenic
Как должен выглядеть результат:
Transcript Gene Variant ClinicalSignificance
1 NG_012236.2 g.11027del Pathogenic
2 NM_018077.3 RBM28 c.1052T>C (p.Leu351Pro) Pathogenic
3 NC_012920.1 m.7445A>G Pathogenic
4 m.7510T>C Pathogenic
5 NC_000023.11 g.(134493178_134493182)_(134501172_134501176)del Pathogenic
Я также попытался выполнить каждый разделитель отдельно, вместо этого смещения данных вправо, однако это также перезаписывает оставшиеся данные.
Пожалуйста, если кто-нибудь может помочь, приветствует!