2015-04-03 2 views
0

У меня есть два файла, и я хочу выполнить grep, где file1 - это шаблон. Я хочу извлечь строки из файла2, соответствующие строкам в файле1. Строки из файла1 находятся в столбце: «Target.Gene» в файле2. Я не знаю, как использовать этот тип моделейgrep между двумя файлами с использованием шаблона

file1

> head(a) 
    symbol 
1 AGER 
2 TCF21 
3 CLDN5 
4 CDH5 
5 CA4 
6 RAMP3 

file2

> head(MTI) 
     miRTarBase.ID   miRNA Species..miRNA. Target.Gene Target.Gene..Entrez.ID. Species..Target.Gene. 
    1 MIRT006481 hsa-miR-181a-5p Homo sapiens  DUSP6     1848   Homo sapiens 
    2 MIRT000002 hsa-miR-20a-5p Homo sapiens  HIF1A     3091   Homo sapiens 
    3 MIRT000006 hsa-miR-146a-5p Homo sapiens  CXCR4     7852   Homo sapiens 
    4 MIRT000006 hsa-miR-146a-5p Homo sapiens  CXCR4     7852   Homo sapiens 
    5 MIRT006511 hsa-miR-200b-3p Homo sapiens  RND3      390   Homo sapiens 
    6 MIRT006477 hsa-miR-328-3p Homo sapiens  PTPRJ     5795   Homo sapiens 
                  Experiments   Support.Type References..PMID. 
    1       Luciferase reporter assay//Western blot  Functional MTI   17382377 
    2 Luciferase reporter assay//Western blot//Northern blot//qRT-PCR  Functional MTI   18632605 
    3    qRT-PCR//Luciferase reporter assay//Western blot  Functional MTI   18568019 
    4              Microarray Functional MTI (Weak)   20375304 
    5          Luciferase reporter assay  Functional MTI   20683643 
    6           qRT-PCR//Western blot  Functional MTI   22564856 

ответ

1

Я думаю merge, что вам нужно здесь. Придает ли это вам результат вы хотите:

mergedDat = merge(file1, file2, by.x="symbol", by.y="Target.Gene", all.x=TRUE) 

Это возвратит все строки file1 независимо от того, имеет ли данное значение в file1 матч в file2. Если вам нужны только строки со спичками, просто удалите all.x=TRUE. См. Справку для merge для всех параметров, касающихся функции, когда нет совпадения.

2

Вы также можете найти это прямо подмножество путем индексирования и с помощью оператора %in%. Приведенный ниже код будет фильтровать MTI, чтобы в кадре данных результата были только строки MTI, где Target.Gene является одним из генов в a и всех столбцах.

result <- MTI[MTI$Target.Gene %>% a, ] 
Смежные вопросы