如何在使用R分析数据时从affy芯片中选择人类miRNA?

时间:2012-02-26 14:34:08

标签: r bioinformatics bioconductor genetics

我是R的新手,想要从3组数据集中分析miRNA表达。谁能帮我吗。

在这种情况下,我得到了其他miRNA(在affy芯片上)作为顶部表达的基因。现在我想只选择人类miRNA。请帮帮我

提前致谢

1 个答案:

答案 0 :(得分:4)

摘要

我不完全确定您的数据框是什么样的,因为我之前没有使用过Affy芯片。让我试着总结一下我认为你告诉我们的内容。您有一个数据框,其中包含Affy芯片上所有microRNA的列表及其表达数据。您想要选择人类独有的这些microRNA的子集。

可能的解决方案1 ​​

您没有说明您的数据框是否包含一个变量,用于识别这些microRNA是否确实来自人类。如果它确实包含此信息,那么您需要做的就是根据此标识符对数据进行分组。键入help(subset)help(Extract),了解有关如何执行此操作的详细信息。

可能的解决方案2

如果您的数据框不包含此类标识符,则首先需要列出所有已知的人类microRNA。您可以从在线miRBase网站手动检索这些(然后将它们导入R),或者您可以使用R包biomaRt从Ensembl下载它们。要执行后者,在加载biomaRt后,您可以键入以下命令:

miRNA <- getBM(c("mirbase_id", "ensembl_gene_id", "start_position", "chromosome_name"), filters = c("with_mirbase"), values = list(TRUE), mart = ensembl)

上述代码要求R下载miRBase目录中所有microRNA的mirbase标识符,基因ID,起始位置和染色体名称。 (请注意,您必须在之前的命令中指定人类Ensembl集市,我尚未显示)。

下载此信息后,您可以使用merge命令或which命令从Affy芯片数据中提取相应的microRNA。

推荐

这一切听起来有点复杂。如果您还没有,我建议您花一些时间在biomaRtbioconductor上完成练习。有关这些软件包的信息以及如何安装它们,请访问以下链接:

  1. Bioconductorhttp://www.bioconductor.org/install/
  2. 使用biomaRthttp://www.stat.berkeley.edu/~sandrine/Teaching/PH292.S10/Durinck.pdf
  3. 进行数据库挖掘

    您可以考虑将此问题迁移到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 
    

    上面我已经粘贴了listAttributes()命令输出的 part ,它显示了相关的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数据框。再次阅读mergeExtractwhich函数的帮助文件,首先尝试自己尝试。