Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
大数据文件的循环函数i r代码_R_Loops_Biomart - Fatal编程技术网

大数据文件的循环函数i r代码

大数据文件的循环函数i r代码,r,loops,biomart,R,Loops,Biomart,我有同样的问题,但数据是巨大的,并创造了一定的问题。 我的数据就像 1 10000 11000 1 20000 21000 . . . . . . . . . 1 1000000 1001000 densembldb将创建一个本地ensembl数据库,该数据库非常容易查询。我也非常喜欢plyranges,它允许我们使用类似SQL(和dplyr)的语言对genomarranges对象进行连接,这是基因组坐

我有同样的问题,但数据是巨大的,并创造了一定的问题。 我的数据就像

1    10000    11000
1    20000    21000
.    .       .
.    .       .
.    .       .
1    1000000    1001000


d
ensembldb
将创建一个本地ensembl数据库,该数据库非常容易查询。我也非常喜欢
plyranges
,它允许我们使用类似SQL(和dplyr)的语言对
genomarranges
对象进行连接,这是基因组坐标的默认Bioconductor类

首先,我们将调用/安装必要的软件包:

if(!require(tidyverse)) install.packages("tidyverse")
if(!require(AnnotationHub)) BiocManager::install("AnnotationHub")
if(!require(ensembldb)) BiocManager::install("ensembldb")
if(!require(plyranges)) BiocManager::install("plyranges")
在这里,我查询
AnnotationHub
,找到我们想要下载的特定数据库,然后下载它

ah <- AnnotationHub()
#> snapshotDate(): 2020-04-27
query <- query(ah, "EnsDb", "Sus scrofa")
tibble(id = query$ah_id, title = query$title) %>%
    dplyr::filter(str_detect(title, "Sus scrofa"))
#> # A tibble: 7 x 2
#>   id      title                           
#>   <chr>   <chr>                           
#> 1 AH64991 Ensembl 94 EnsDb for Sus scrofa 
#> 2 AH68020 Ensembl 95 EnsDb for Sus scrofa 
#> 3 AH69274 Ensembl 96 EnsDb for Sus scrofa 
#> 4 AH73969 Ensembl 97 EnsDb for Sus scrofa 
#> 5 AH75101 Ensembl 98 EnsDb for Sus scrofa 
#> 6 AH78892 Ensembl 99 EnsDb for Sus scrofa 
#> 7 AH79797 Ensembl 100 EnsDb for Sus scrofa
edb <- ah[["AH79797"]]
#> loading from cache
最后,一步是连接我们的基因组区域和注释基因信息:

gene_overlap <- join_overlap_left(gen_regions, genes)
gene_overlap
#> GRanges object with 12 ranges and 8 metadata columns:
#>        seqnames          ranges strand |            gene_id   gene_name
#>           <Rle>       <IRanges>  <Rle> |        <character> <character>
#>    [1]        1     10000-11000      * | ENSSSCG00000037372            
#>    [2]        1     20000-21000      * | ENSSSCG00000037372            
#>    [3]        1 1000000-1001000      * |               <NA>        <NA>
#>    [4]        2        0-100000      * | ENSSSCG00000014554            
#>    [5]        2        0-100000      * | ENSSSCG00000014555        ODF3
#>    ...      ...             ...    ... .                ...         ...
#>    [8]        2        0-100000      * | ENSSSCG00000014565            
#>    [9]        2        0-100000      * | ENSSSCG00000014558       SIRT3
#>   [10]        2        0-100000      * | ENSSSCG00000014559      PSMD13
#>   [11]        2        0-100000      * | ENSSSCG00000014561       NLRP6
#>   [12]        2        0-100000      * | ENSSSCG00000025023       PGGHG
#>          gene_biotype seq_coord_system
#>           <character>      <character>
#>    [1] protein_coding       chromosome
#>    [2] protein_coding       chromosome
#>    [3]           <NA>             <NA>
#>    [4] protein_coding       chromosome
#>    [5] protein_coding       chromosome
#>    ...            ...              ...
#>    [8] protein_coding       chromosome
#>    [9] protein_coding       chromosome
#>   [10] protein_coding       chromosome
#>   [11] protein_coding       chromosome
#>   [12] protein_coding       chromosome
#>                                                                                 description
#>                                                                                 <character>
#>    [1]                                                                                 NULL
#>    [2]                                                                                 NULL
#>    [3]                                                                                 <NA>
#>    [4]                    secretoglobin family 1C member 1 [Source:NCBI gene;Acc:100517148]
#>    [5]                  outer dense fiber of sperm tails 3 [Source:NCBI gene;Acc:100499231]
#>    ...                                                                                  ...
#>    [8]          interferon-induced transmembrane protein 1 [Source:NCBI gene;Acc:100127358]
#>    [9]                                           sirtuin 3 [Source:NCBI gene;Acc:100125971]
#>   [10]               proteasome 26S subunit, non-ATPase 13 [Source:NCBI gene;Acc:100517815]
#>   [11]                NLR family pyrin domain containing 6 [Source:NCBI gene;Acc:100519245]
#>   [12] protein-glucosylgalactosylhydroxylysine glucosidase [Source:NCBI gene;Acc:100518005]
#>             gene_id_version      symbol            entrezid
#>                 <character> <character>              <list>
#>    [1] ENSSSCG00000037372.2                              NA
#>    [2] ENSSSCG00000037372.2                              NA
#>    [3]                 <NA>        <NA>                    
#>    [4] ENSSSCG00000014554.4                       100517148
#>    [5] ENSSSCG00000014555.4        ODF3           100499231
#>    ...                  ...         ...                 ...
#>    [8] ENSSSCG00000014565.3             100519082,100127358
#>    [9] ENSSSCG00000014558.4       SIRT3           100125971
#>   [10] ENSSSCG00000014559.4      PSMD13           100517815
#>   [11] ENSSSCG00000014561.5       NLRP6           100519245
#>   [12] ENSSSCG00000025023.3       PGGHG           100518005
#>   -------
#>   seqinfo: 2 sequences from an unspecified genome; no seqlengths
gene\u重叠GRanges对象,包含12个范围和8个元数据列:
#>seqnames范围链|基因_id基因_名称
#>                     |         
#>[1]1 10000-11000*| ENSSCG00000037372
#>[2]1 20000-21000*| ENSSCG00000037372
#>    [3]        1 1000000-1001000      * |                       
#>[4]2 0-100000*| ENSSCG00000014554
#>[5]2 0-100000*| ENSSCG00000014555 ODF3
#>    ...      ...             ...    ... .                ...         ...
#>[8]2 0-100000*| ENSSCG00000014565
#>[9]2 0-100000*| ENSSCG00000014558 SIRT3
#>[10]2 0-100000*| ENSSCG00000014559 PSMD13
#>[11]2 0-100000*| ENSSCG00000014561 NLRP6
#>[12]2 0-100000*| ENSSCG00000025023 PGGHG
#>基因型seq_-coord_系统
#>                 
#>[1]蛋白质编码染色体
#>[2]蛋白质编码染色体
#>    [3]                        
#>[4]编码蛋白质的染色体
#>[5]蛋白质编码染色体
#>    ...            ...              ...
#>[8]编码蛋白质的染色体
#>[9]编码蛋白质的染色体
#>[10]蛋白质编码染色体
#>[11]编码蛋白质的染色体
#>[12]编码蛋白质的染色体
#>描述
#>                                                                                 
#>[1]无效
#>[2]空
#>    [3]                                                                                 
#>[4]分泌珠蛋白家族1C成员1[来源:NCBI基因;Acc:100517148]
#>[5]精子尾部的外层致密纤维3[来源:NCBI基因;Acc:100499231]
#>    ...                                                                                  ...
#>[8]干扰素诱导的跨膜蛋白1[来源:NCBI基因;Acc:100127358]
#>[9]sirtuin 3[来源:NCBI基因;Acc:100125971]
#>[10]蛋白酶体26S亚单位,非ATP酶13[来源:NCBI基因;Acc:100517815]
#>[11]NLR家族pyrin结构域包含6个[来源:NCBI基因;Acc:100519245]
#>[12]蛋白质葡萄糖基半乳糖基羟基赖氨酸葡萄糖苷酶[来源:NCBI基因;Acc:100518005]
#>基因id版本符号entrezid
#>                                
#>[1]ENSSCG00000037372.2 NA
#>[2]ENSSCG00000037372.2 NA
#>    [3]                                             
#>[4]ENSSCG00000014554.4 100517148
#>[5]ENSSCG00000014555.4 ODF3 100499231
#>    ...                  ...         ...                 ...
#>[8]ENSSCG00000014565.3 100519082100127358
#>[9]ENSSCG00000014558.4 SIRT3 100125971
#>[10]ENSSCG00000014559.4 PSMD13 100517815
#>[11]ENSSCG00000014561.5 NLRP6 100519245
#>[12]ENSSCG00000025023.3 PGGHG 100518005
#>   -------
#>seqinfo:来自未指定基因组的2个序列;没有长度
此表已采用“整洁”格式,但您可能希望对其进行汇总,使每个区域都有一行。以下是如何做到这一点的建议:

per_region_genes <- gene_overlap %>%
    as_tibble() %>%
    mutate(gene_name = ifelse(gene_name == "", NA, gene_name)) %>%
    group_by(seqnames, start, end) %>%
    summarize(gene_ids = paste(na.exclude(gene_id), collapse = ", "),
              gene_names = paste(na.exclude(gene_name), collapse = ", "), .groups = "drop")
per_region_genes
#> # A tibble: 4 x 5
#>   seqnames   start    end gene_ids                         gene_names           
#>   <fct>      <int>  <int> <chr>                            <chr>                
#> 1 1          10000 1.10e4 "ENSSSCG00000037372"             ""                   
#> 2 1          20000 2.10e4 "ENSSSCG00000037372"             ""                   
#> 3 1        1000000 1.00e6 ""                               ""                   
#> 4 2              0 1.00e5 "ENSSSCG00000014554, ENSSSCG000… "ODF3, RIC8A, SIRT3,…
per_区域基因%
as_tible()%>%
突变(基因名=ifelse(基因名=“”,NA,基因名))%>%
分组依据(序号名称、开始、结束)%>%
总结(gene_id=粘贴(na.exclude(gene_id)),collapse=“,”,
基因名称=粘贴(na.exclude(基因名称),collapse=“,”,.groups=“drop”)
per_区基因
#>#A tibble:4 x 5
#>seqnames开始结束基因\u id基因\u名称
#>                                                        
#>1 10000 1.10e4“ENSSCG00000037372”
#>2 1 20000 2.10e4“ENSSCG00000037372”
#>3 1100万1.00e6“
#>4 2 0 1.00e5“ENSSCG00000014554,ENSSCG000…”ODF3,RIC8A,SIRT3,…

(1)“巨大”有多大?(2) 如果在整个帧上使用
应用
,如果其中包含非
数值
数据,则成本可能会很高:它总是将帧转换为
矩阵
,如果不是所有相同的
,则会进行转换。(对于大的ish帧,它可能会很昂贵,因为它会复制一个副本。)(3)如果您的数据真的很“大”,您可能会受益于使用
data.table
,因为它往往更节省内存(正确使用时会更快)。查询数量不会超过25000。我已经在500个查询上测试了代码,它运行得非常顺利。是指使用data.table读取我的文件?如果有错误,请纠正我
genes <- genes(edb)
gene_overlap <- join_overlap_left(gen_regions, genes)
gene_overlap
#> GRanges object with 12 ranges and 8 metadata columns:
#>        seqnames          ranges strand |            gene_id   gene_name
#>           <Rle>       <IRanges>  <Rle> |        <character> <character>
#>    [1]        1     10000-11000      * | ENSSSCG00000037372            
#>    [2]        1     20000-21000      * | ENSSSCG00000037372            
#>    [3]        1 1000000-1001000      * |               <NA>        <NA>
#>    [4]        2        0-100000      * | ENSSSCG00000014554            
#>    [5]        2        0-100000      * | ENSSSCG00000014555        ODF3
#>    ...      ...             ...    ... .                ...         ...
#>    [8]        2        0-100000      * | ENSSSCG00000014565            
#>    [9]        2        0-100000      * | ENSSSCG00000014558       SIRT3
#>   [10]        2        0-100000      * | ENSSSCG00000014559      PSMD13
#>   [11]        2        0-100000      * | ENSSSCG00000014561       NLRP6
#>   [12]        2        0-100000      * | ENSSSCG00000025023       PGGHG
#>          gene_biotype seq_coord_system
#>           <character>      <character>
#>    [1] protein_coding       chromosome
#>    [2] protein_coding       chromosome
#>    [3]           <NA>             <NA>
#>    [4] protein_coding       chromosome
#>    [5] protein_coding       chromosome
#>    ...            ...              ...
#>    [8] protein_coding       chromosome
#>    [9] protein_coding       chromosome
#>   [10] protein_coding       chromosome
#>   [11] protein_coding       chromosome
#>   [12] protein_coding       chromosome
#>                                                                                 description
#>                                                                                 <character>
#>    [1]                                                                                 NULL
#>    [2]                                                                                 NULL
#>    [3]                                                                                 <NA>
#>    [4]                    secretoglobin family 1C member 1 [Source:NCBI gene;Acc:100517148]
#>    [5]                  outer dense fiber of sperm tails 3 [Source:NCBI gene;Acc:100499231]
#>    ...                                                                                  ...
#>    [8]          interferon-induced transmembrane protein 1 [Source:NCBI gene;Acc:100127358]
#>    [9]                                           sirtuin 3 [Source:NCBI gene;Acc:100125971]
#>   [10]               proteasome 26S subunit, non-ATPase 13 [Source:NCBI gene;Acc:100517815]
#>   [11]                NLR family pyrin domain containing 6 [Source:NCBI gene;Acc:100519245]
#>   [12] protein-glucosylgalactosylhydroxylysine glucosidase [Source:NCBI gene;Acc:100518005]
#>             gene_id_version      symbol            entrezid
#>                 <character> <character>              <list>
#>    [1] ENSSSCG00000037372.2                              NA
#>    [2] ENSSSCG00000037372.2                              NA
#>    [3]                 <NA>        <NA>                    
#>    [4] ENSSSCG00000014554.4                       100517148
#>    [5] ENSSSCG00000014555.4        ODF3           100499231
#>    ...                  ...         ...                 ...
#>    [8] ENSSSCG00000014565.3             100519082,100127358
#>    [9] ENSSSCG00000014558.4       SIRT3           100125971
#>   [10] ENSSSCG00000014559.4      PSMD13           100517815
#>   [11] ENSSSCG00000014561.5       NLRP6           100519245
#>   [12] ENSSSCG00000025023.3       PGGHG           100518005
#>   -------
#>   seqinfo: 2 sequences from an unspecified genome; no seqlengths
per_region_genes <- gene_overlap %>%
    as_tibble() %>%
    mutate(gene_name = ifelse(gene_name == "", NA, gene_name)) %>%
    group_by(seqnames, start, end) %>%
    summarize(gene_ids = paste(na.exclude(gene_id), collapse = ", "),
              gene_names = paste(na.exclude(gene_name), collapse = ", "), .groups = "drop")
per_region_genes
#> # A tibble: 4 x 5
#>   seqnames   start    end gene_ids                         gene_names           
#>   <fct>      <int>  <int> <chr>                            <chr>                
#> 1 1          10000 1.10e4 "ENSSSCG00000037372"             ""                   
#> 2 1          20000 2.10e4 "ENSSSCG00000037372"             ""                   
#> 3 1        1000000 1.00e6 ""                               ""                   
#> 4 2              0 1.00e5 "ENSSSCG00000014554, ENSSSCG000… "ODF3, RIC8A, SIRT3,…