Резюме
Я не совсем уверен, как выглядит ваш фрейм данных, учитывая, что я раньше не работал с чипами Affy. Позвольте мне попытаться обобщить то, что я думаю, что вы сказали нам. У вас есть фрейм данных со списком всех микроРНК на чипе Affy вместе с данными об их экспрессии. Вы хотите выбрать подмножество этих микроРНК, уникальных для человека.
Возможное решение 1
Вы не указываете, содержит ли ваш фрейм данных переменную, которая определяет, действительно ли эти микроРНК получены от людей. Если у него есть эта информация, все, что вам нужно будет сделать, это поднастроить ваши данные на основе этого идентификатора. Введите help(subset)
или help(Extract)
для получения дополнительной информации о том, как это сделать.
Возможное решение 2
Если ваш фрейм данных не содержит такого идентификатора, вам сначала нужно будет составить список всех известных человеческих микроРНК. Вы можете получить их вручную с онлайн-сайта miRBase (а затем импортировать их в R) или загрузить из Ensembl, используя пакет R biomaRt
. Для этого, после загрузки biomaRt, вы можете набрать следующую команду:
miRNA <- getBM(c("mirbase_id", "ensembl_gene_id", "start_position", "chromosome_name"), filters = c("with_mirbase"), values = list(TRUE), mart = ensembl)
Приведенный выше код требует, чтобы R загрузил идентификатор mirbase, идентификатор гена, начальную позицию и имя хромосомы для всех микроРНК в каталоге miRBase. (Обратите внимание, что вам нужно было бы указать человеческий ансамбль в более ранней команде, которую я не показывал).
Как только вы загрузите эту информацию, вы можете использовать команду merge
или, возможно, команду which
, чтобы извлечь соответствующие микроРНК из данных вашего чипа Affy.
Рекомендации
Все это может показаться немного сложным. Если вы еще этого не сделали, я рекомендую вам потратить некоторое время на выполнение упражнений на biomaRt
и bioconductor
. Информация об этих пакетах и о том, как их установить, доступна по ссылкам ниже:
Bioconductor
, http://www.bioconductor.org/install/
- Анализ базы данных с
biomaRt
, http://www.stat.berkeley.edu/~sandrine/Teaching/PH292.S10/Durinck.pdf
Возможно, вы захотите перенести этот вопрос на Biostar . Я думаю, что вы получите лучшие ответы там. Также рассмотрите возможность редактирования вашего вопроса, чтобы предоставить больше информации о ваших данных. Удачи.
Изменить на мой оригинальный ответ
В отношении вашего комментария, сделанного в 2012-02-26 22:08:02, попробуйте следующее:
## Load biomaRt package
library(biomaRt)
## Specify which "mart" (i.e., source of genetic data) that you want to use
ensembl <- useMart("ensembl")
ensembl <- useDataset("hsapiens_gene_ensembl", mart = ensembl)
## You can then ask the system what attributes are available for download
listAttributes(ensembl)
name description
58 mirbase_accession miRBase Accession(s)
59 mirbase_id miRBase ID(s)
60 mirbase_gene_name miRBase gene name
61 mirbase_transcript_name miRBase transcript
Выше я вставил part выходных данных из команды listAttributes()
, которая показывает соответствующие параметры miRBase. Теперь вы можете попробовать следующий код:
## Download microRNA data
miRNA <- getBM(c("mirbase_id", "ensembl_gene_id", "start_position", "chromosome_name"), filters = c("with_mirbase"), values = list(TRUE), mart = ensembl)
## Check how much we downloaded
> dim(miRNA)
[1] 715 4
## Peak at the head of our data
> head(miRNA)
mirbase_id ensembl_gene_id start_position chromosome_name
1 hsa-mir-320c-1 ENSG00000221493 19263471 18
2 hsa-mir-133a-1 ENSG00000207786 19405659 18
3 hsa-mir-1-2 ENSG00000207694 19408965 18
4 hsa-mir-320c-2 ENSG00000212051 21901650 18
5 hsa-mir-187 ENSG00000207797 33484781 18
6 hsa-mir-1539 ENSG00000222690 47013743 18
## Check which chromosomes are contributing to our data
> table(miRNA$chromosome_name)
1 10 11 12 13 14 15 16 17 18 19 2 20 21 22 3 4 5 6 7 8 9 X
50 27 26 25 15 59 26 15 35 7 85 23 32 5 16 31 23 30 17 33 27 28 80
Теперь ваша задача будет использовать эти загруженные данные для анализа вашего исходного фрейма данных Affy. Снова, прочитайте файлы справки для функций merge
, Extract
и which
, чтобы сначала попробовать.