Как фильтровать с помощью grep - PullRequest
0 голосов
/ 06 марта 2020

У меня есть файл таксономии, который имеет следующую структуру:

enter image description here

Могу ли я использовать что-то вроде grep (у меня нет опыта здесь) для удаления элементы из столбца таксона?

Например, вместо:

D_0__Bacteria;D_1__Fusobacteria;D_2__Fusobacteriia;D_3__Fusobacteriales;D_4__Fusobacteriaceae;D_5__Fusobacterium

Могу ли я удалить все до и после "Fusobacterium", чтобы он только говорил:

Fusobacterium

Некоторые строки go до уровня вида, поэтому мне нужно будет удалить детали после 5-го уровня идентификации. Например:

Изменить :

D_0__Bacteria;D_1__Proteobacteria;D_2__Gammaproteobacteria;D_3__Pasteurellales;D_4__Pasteurellaceae;D_5__Haemophilus;D_6__Pasteurellaceae bacterium canine oral taxon 272

На :

Haemophilus

1 Ответ

1 голос
/ 06 марта 2020

Это должно сработать:

sample <- "D_0__Bacteria;D_1__Proteobacteria;D_2__Gammaproteobacteria;D_3__Pasteurellales;D_4__Pasteurellaceae;D_5__Haemophilus;D_6__Pasteurellaceae bacterium canine oral taxon 272"

sub(".*D_5__([A-Za-z]*);.*", "\\1", sample)
# [1] "Haemophilus"

Объяснение

Мы сопоставляем всю строку и фиксируем алфавитный шаблон между D_5__ и ;. Затем мы говорим sub() только чтобы вернуть захваченный шаблон.

...