Я использую R для обработки данных секвенирования РНК, в которых я новичок. Я использую рамки данных справочного материала от BioMart, которые, когда включены GO терминов, очень плохо организованы (как показано ниже).
head(goZref)
Gene.stable.ID Transcript.stable.ID Protein.stable.ID
1 ENSDARG00000063344 ENSDART00000131829 ENSDARP00000123357
2 ENSDARG00000063344 ENSDART00000131829 ENSDARP00000123357
3 ENSDARG00000063344 ENSDART00000144883 ENSDARP00000114467
4 ENSDARG00000063344 ENSDART00000144883 ENSDARP00000114467
5 ENSDARG00000097685 ENSDART00000156963 ENSDARP00000128236
6 ENSDARG00000097685 ENSDART00000156963 ENSDARP00000128236
Gene.description Gene.name WikiGene.name
1 family with sequence similarity 162 member A [Source:NCBI gene;Acc:336363] fam162a fam162a
2 family with sequence similarity 162 member A [Source:NCBI gene;Acc:336363] fam162a fam162a
3 family with sequence similarity 162 member A [Source:NCBI gene;Acc:336363] fam162a fam162a
4 family with sequence similarity 162 member A [Source:NCBI gene;Acc:336363] fam162a fam162a
5 si:ch211-235i11.3 [Source:ZFIN;Acc:ZDB-GENE-131125-9] si:ch211-235i11.3 LOC101885363
6 si:ch211-235i11.3 [Source:ZFIN;Acc:ZDB-GENE-131125-9] si:ch211-235i11.3 LOC101885363
GO.term.name
1 membrane
2 integral component of membrane
3 membrane
4 integral component of membrane
5 nucleic acid binding
6 RNA polymerase II regulatory region sequence-specific DNA binding
Я хочу аннотировать набор данных интересующих генов (имена генов находятся в векторе символов, называемом здесь genes
), но я изо всех сил пытаюсь автоматизировать его, учитывая все повторения и дублирование строк в ссылках. Я пробовал использовать match
, но поскольку он находит только первый экземпляр чего-то, что я пропускаю в других строках. Я хотел бы, например, найти «fam162a» и получить что-то вроде «мембрана, неотъемлемый компонент мембраны», а затем автоматизировать это для списка из 100 имен генов. subset
полезен для предоставления мне нескольких строк с одним и тем же идентификатором имени гена, и я пытался передать его на ddply
, но я действительно не знаю, что делаю, и застрял здесь:
test<- ddply(.data = goZref, .variables = genes, for (x in genes) {
+ paste(unique(subset(goZref, WikiGene.name==x, select= Go.term.name)), sep = ",")})
Error in parse(text = x) : <text>:1:12: unexpected symbol
1: si:dkey-224k5.13
^
Edit: Мой желаемый результат был бы чем-то вроде матрицы моих входных 100 имен генов и соответствующей информации из всех соответствующих строк в столбце Go .description, например, если fam162a и LOC101885363, если бы в списке были гены, результат был бы следующим:
1 fam162a membrane,integral component of membrane
2 LOC101885363 nucleic acid binding,RNA polymerase II regulatory region...
Любая помощь с благодарностью приветствуется!