美文网首页
生信数据库5: GWAS Catalog

生信数据库5: GWAS Catalog

作者: 小程的学习笔记 | 来源:发表于2024-04-23 18:23 被阅读0次

    GWAS catalog数据库于2008年由National Human Genome Research Institute (NHGRI)建立,旨在应对快速增长的全基因组关联分析(GWAS)数据。该数据库为我们检索已发表GWAS与显著相关提供了方便。

    该数据库中主要包含了已发表或未发表GWAS的Summary statistics ,截止到2024年3月28日,GWAS catalog已经收录了6,799篇文献,包括589,865 个关联和 72,655 个完整摘要的统计数据。目前该数据库采用的参考基因组与SNP数据库为Genome Assembly GRCh38.p14 与 dbSNP Build 156。

    网址https://www.ebi.ac.uk/gwas/

    GWAScatalog-1

    1. 官网下载相关数据

    1.1 首页搜索

    打开如上页面后,我们可以直接搜索表型,rsID,染色体编号,基因名等。以疾病"asthma"为例,检索结果包含了关联性状的描述,染色体位置和对应基因,关联分析的详细结果,LD等信息。

    GWAScatalog-2

    ꔷ Associations:3291个相关SNP信息

    ꔷ Studies:共有199项研究(可以找样本多,时间近的),可通过选择"Study accession",进入单独的GWAS项目,下载完整的"Full Summary Statistics"(有的未提供,显示"Not available")

    1.2 数据分类

    首页点击"\color{green}{Summary} \color{green}{statistics}" >> "\color{green}{Available} \color{green}{studies}",进入页面:https://www.ebi.ac.uk/gwas/downloads/summary-statistics,得到一个由三部分组成的界面

    1)List of published studies with summary statistics:这里的GWAS研究都是已经发表的,质量有保证,你可以在检索框里输入关键词("First author", "Study accession", "Reported trait", "Trait(s)")进行筛选

    2)List of prepublished/unpublished studies with summary statistics:自 2020 年以来,GWAS Catalog开始接受未发表(可能是来源于预印本)的 GWAS 数据的提交,质量无法保证。同样,可在检索框里输入关键词进行检索筛选。这里的表型可能会比较新,是对已发表数据的补充。

    3)Additional sources of summary statistics:这里整理汇总了目前GWAS研究协作体(consortium)的相关信息。一般这些协作体会建有自己的网站来存储数据,我们可以到它们的官网上下载完整的GWAS summary 数据。

    1.3 所有数据下载

    首页点击"\color{green}{Downloads}" >> "\color{green}{Files},进行下载界面:https://www.ebi.ac.uk/gwas/docs/file-downloads

    GWAScatalog-3.png

    2. GWAS summary数据解释

    GWAS summary数据,即GWAS汇总关联统计数据,是由一个或多个来源的个体水平的GWAS数据经过meta分析而来,反映SNP对表型影响的相关信息。一个GWAS summary数据通常包括遗传变异标识等位基因效应大小及其标准差P值样本量等信息。

    ꔷ CHR(chr):SNP位于的染色体编号
    ꔷ SNP ID(rsID):单核苷酸多态性(Single Nucleotide Polymorphism)的唯一标识符号,通常由"rs"开头。
    ꔷ Position(POS):SNP在染色体上的具体位置
    ꔷ 效应等位基因(effective allele):指与特定性状或疾病的关联显著的等位基因,通常在分析中会报告该等位基因对特定性状的影响大小
    ꔷ 非效应等位基因(non-effective allele):指与特定性状或疾病的关联不显著的等位基因
    ꔷ 参考等位基因(Reference Allele):被选定的基准等位基因,通常是指在人群中的频率较高或者是常见的。在分析中,效应大小等通常相对于参考等位基因来计算和报告
    ꔷ 非参考等位基因(Non-reference Allele):与参考等位基因相对的概念。在基因型数据中,如果某个个体在某一基因座上携带的等位基因与参考等位基因不同,那么这个等位基因就可以被称为非参考等位基因
    ꔷ Frequency:通常指效应等位基因在研究样本中的频率。
    ꔷ Effect size(β):通常指效应等位基因相对于非效应等位基因对于特定性状或疾病的影响程度。β值的正负号表示等位基因对于性状的增加或减少影响,而β值的绝对值大小则表示影响的强度。通常情况下,β值的绝对值越大,等位基因对于性状的影响越强。然后,β值通常也是标准化的,代表单位变化中特定性状的变化量
    ꔷ Standard Error(SE):β的标准误差,反映了效应大小的估计的不确定性。
    ꔷ P-value:统计学上衡量效应等位基因与特定性状关联程度的指标。P值越小,关联越显著(一般为5E-8)
    ꔷ Odds Ratio(OR):只有当表型是二分类变量时才使用,对于疾病关联研究,OR代表患病风险的比率。对于OR,值大于1表示效应等位基因增加患病风险,值小于1表示效应等位基因降低患病风险
    ꔷ 95% Confidence Interval:OR的置信区间,提供了OR估计的不确定性范围

    3. 使用\color{green}{gwasrapidd}R包获取GWAS Catalog数据库的信息

    # 安装并加载所需的R包
    # install.packages("gwasrapidd")
    library(gwasrapidd)
    
    # 查询是否有关于哮喘的文章和SNP
    my_studies <- get_studies(efo_trait = 'asthma')
    my_associations <- get_associations(study_id = my_studies@studies$study_id)
    
    # 统计相关文章和SNP的数量
    n(my_studies)
    ## 159
    n(my_associations)
    ## 2466
    
    # 获取相关文章的ID
    my_studies@studies$study_id
    ##   [1] "GCST000061"   "GCST000389"   "GCST000525"   "GCST000576"   "GCST000768"   "GCST000910"   "GCST001226"   "GCST001309"  
    ##   [9] "GCST001360"   "GCST001306"   "GCST001508"   "GCST001495"   "GCST001564"   "GCST002330"   "GCST000330"   "GCST000548"  
    ##  [17] "GCST000804"   "GCST000819"   "GCST001183"   "GCST001182"   "GCST002445"   "GCST001763"   "GCST002322"   "GCST002519"  
    ##  [25] "GCST002875"   "GCST003831"   "GCST003833"   "GCST003832"   "GCST004390"   "GCST003176"   "GCST003521"   "GCST003682"  
    ##  [33] "GCST003589"   "GCST003987"   "GCST006911"   "GCST007596"   "GCST008916"   "GCST008919"   "GCST006862"   "GCST007798"  
    ##  [41] "GCST005212"   "GCST007599"   "GCST007598"   "GCST007597"   "GCST007994"   "GCST007564"   "GCST007562"   "GCST007563"  
    ##  [49] "GCST007519"   "GCST007266"   "GCST008920"   "GCST008921"   "GCST010769"   "GCST009720"   "GCST009716"   "GCST009866"  
    ##  [57] "GCST009862"   "GCST009857"   "GCST009851"   "GCST009843"   "GCST009798"   "GCST009435"   "GCST009434"   "GCST009845"  
    ##  [65] "GCST010043"   "GCST010042"   "GCST011457"   "GCST90013679" "GCST90013721" "GCST90013756" "GCST011157"   "GCST90014325"
    ##  [73] "GCST90029018" "GCST90025849" "GCST012462"   "GCST90038616" "GCST90086043" "GCST90086044" "GCST90086045" "GCST90086046"
    ##  [81] "GCST90086047" "GCST90013888" "GCST90013938" "GCST90102599" "GCST90102598" "GCST90103427" "GCST90044071" "GCST90044072"
    ##  [89] "GCST90044363" "GCST90018575" "GCST90018795" "GCST90084127" "GCST90084126" "GCST90084123" "GCST90084121" "GCST90084122"
    ##  [97] "GCST90084125" "GCST90084124" "GCST90080135" "GCST90080139" "GCST90080138" "GCST90105078" "GCST90102597" "GCST90085432"
    ## [105] "GCST90085434" "GCST90085435" "GCST90085447" "GCST90085446" "GCST90085445" "GCST90082848" "GCST90083442" "GCST90246123"
    ## [113] "GCST90244761" "GCST90244762" "GCST90244763" "GCST90244764" "GCST90244765" "GCST90244766" "GCST90080140" "GCST90080136"
    ## [121] "GCST90080137" "GCST90255359" "GCST90255360" "GCST90103351" "GCST90103412" "GCST90081446" "GCST90080141" "GCST90104644"
    ## [129] "GCST90081460" "GCST90081461" "GCST90239642" "GCST90255667" "GCST90131434" "GCST90131435" "GCST90131436" "GCST90139387"
    ## [137] "GCST90139388" "GCST90297577" "GCST90297631" "GCST90297684" "GCST90297728" "GCST90319492" "GCST90077671" "GCST90081459"
    ## [145] "GCST90077672" "GCST90081449" "GCST90081657" "GCST90081658" "GCST90079456" "GCST90078862" "GCST90399683" "GCST90399684"
    ## [153] "GCST90399685" "GCST90399686" "GCST90399687" "GCST90399688" "GCST90399689" "GCST90399690" "GCST90081448"
    
    slotNames(my_study)
    ## [1] "studies"                  "genotyping_techs"         "platforms"                "ancestries"              
    ## [5] "ancestral_groups"         "countries_of_origin"      "countries_of_recruitment" "publications"
    
    # 提取关联 ID 列(命名为 association_id),最后将提取出来的关联 IDs 存储在一个名为 association_ids 的变量中。
    association_ids <- dplyr::filter(my_associations@associations, pvalue < 1e-8) %>% # 依据P值进行筛选
      tidyr::drop_na(pvalue) %>% #drop_na 函数去掉所有含有缺失值的记录
      dplyr::pull(association_id)  
    
    # 提取显著SNP
    my_associations2 <- my_associations[association_ids] 
    

    "my_studies" 返回的结果是一个S4对象,可以使用slotNames()函数来获取每个(8个)slot的名字:
    ꔷ "studies":研究的基本信息
    ꔷ "genotyping_techs":采取的基因分型技术
    ꔷ "platforms":使用的测序平台
    ꔷ "ancestries"和"ancestral_groups":人群所属的种族以及不同人种的样本量
    ꔷ "countries_of_origin"和"countries_of_recruitment":国别相关信息
    ꔷ "publications":发表的文章信息

    3.1 get_studies()函数

    my_study1 <- get_studies(study_id ='GCST000061') 
    my_study1@studies
    ## # A tibble: 1 × 13
    ##   study_id   reported_trait initial_sample_size                   replication_sample_s…¹ gxe   gxg   snp_count qualifier imputed pooled
    ##   <chr>      <chr>          <chr>                                 <chr>                  <lgl> <lgl>     <int> <chr>     <lgl>   <lgl> 
    ## 1 GCST000061 Asthma         994 European ancestry cases, 1,243 E… 200 European ancestry… FALSE FALSE    307328 NA        FALSE   FALSE 
    ## # ℹ abbreviated name: ¹replication_sample_size
    ## # ℹ 3 more variables: study_design_comment <chr>, full_pvalue_set <lgl>, user_requested <lgl>
    
    my_study2 <- get_studies(study_id ='GCST000061', variant_id = 'rs3772010')
    my_study2@studies
    ## # A tibble: 2 × 13
    ##   study_id   reported_trait                   initial_sample_size replication_sample_s…¹ gxe   gxg   snp_count qualifier imputed pooled
    ##   <chr>      <chr>                            <chr>               <chr>                  <lgl> <lgl>     <int> <chr>     <lgl>   <lgl> 
    ## 1 GCST000061 Asthma                           994 European ances… 200 European ancestry… FALSE FALSE    307328 NA        FALSE   FALSE 
    ## 2 GCST007521 Asthma-chronic obstructive  pul… 228 Korean ancestr… NA                     FALSE FALSE        NA NA        FALSE   FALSE 
    ## # ℹ abbreviated name: ¹replication_sample_size
    ## # ℹ 3 more variables: study_design_comment <chr>, full_pvalue_set <lgl>, user_requested <lgl>
    

    get_studies()的主要参数如下:
    ꔷ study_id:GWASCatalog里研究的accession号,前四个字母是“GCST”,可以是向量类型
    ꔷ association_id:GWAS catalog里的关联信息ID,是一个数字,可以是向量类型
    ꔷ variant_id:GWASCatalog里的遗传变异信息,一般均为rsid,可以是向量类型
    ꔷ efo_id:GWAS Catalog里性状的ID号,以“EFO”开头,可以是向量类型
    ꔷ pubmed_id:研究的PubMedID号
    ꔷ full_pvalue_set:是一个逻辑参数,代表获取是否有完整summary结果的研究(full summary statistics),如果设置为TRUE则代表只 or studies without it (FALSE)
    ꔷ 参数efo_trait:是字符串型向量,代表EFO表型描述信息,如“uric acid measurement”。

    3.2 get_associations()函数

    my_associations1 <- get_associations(study_id = my_study1@studies$study_id)
    slotNames(my_associations1)
    ## #[1] "associations""loci"        "risk_alleles" "genes"        "ensembl_ids"  "entrez_ids"
     
    as.data.frame(my_associations1@associations)
    ##   association_id pvalue pvalue_description pvalue_mantissa pvalue_exponent multiple_snp_haplotype snp_interaction snp_type risk_frequency
    ## 1           6049  9e-11               <NA>               9             -11                  FALSE           FALSE    novel           0.52
    ##   standard_error       range or_per_copy_number beta_number beta_unit beta_direction beta_description   last_mapping_date    last_update_date
    ## 1             NA [1.17-1.81]               1.45          NA      <NA>           <NA>             <NA> 2024-02-16 18:19:36 2024-02-16 18:19:36
    

    get_associations()函数的参数和get_studies()的差不多,单数参数interactive在get_associations()中是比较特殊的,它是一个逻辑型参数,表示是否反应SNP之间的交互作用,默认值为TRUE。最后,该函数会返回6个slot,分别反映关联值大小,位点信息,风险等位基因信息,基因信息,基因的ENSEMBL编码和基因的ENTREZ编码信息。

    3.3 get_variants()函数

    my_variants1 <- get_variants(study_id = my_study1@studies$study_id)
    slotNames(my_variants1)
    ## #[1] "variants"         "genomic_contexts""ensembl_ids"     "entrez_ids"     
    
    as.data.frame(my_variants1@variants)
    ##   variant_id merged functional_class chromosome_name chromosome_position chromosome_region    last_update_date
    ## 1  rs7216389      0   intron_variant              17            39913696           17q21.1 2024-02-20 02:10:55
    
    as.data.frame(my_variants1@genomic_contexts)
    ##    variant_id    gene_name chromosome_name chromosome_position distance is_mapped_gene is_closest_gene is_intergenic is_upstream is_downstream  source   mapping_method
    ## 1   rs7216389        IKZF3              17            39913696    49384          FALSE           FALSE          TRUE        TRUE         FALSE Ensembl Ensembl_pipeline
    ## 2   rs7216389        GSDMA              17            39913696    39567          FALSE           FALSE          TRUE       FALSE          TRUE Ensembl Ensembl_pipeline
    ## 3   rs7216389        ZPBP2              17            39913696    35800          FALSE            TRUE          TRUE        TRUE         FALSE Ensembl Ensembl_pipeline
    ## 4   rs7216389 LOC124904000              17            39913696    73002          FALSE           FALSE          TRUE       FALSE          TRUE    NCBI Ensembl_pipeline
    ## 5   rs7216389        PSMD3              17            39913696    67111          FALSE           FALSE          TRUE       FALSE          TRUE Ensembl Ensembl_pipeline
    ## 6   rs7216389       LRRC3C              17            39913696    14036          FALSE           FALSE          TRUE       FALSE          TRUE Ensembl Ensembl_pipeline
    ## 7   rs7216389      KRT8P34              17            39913696    77203          FALSE           FALSE          TRUE        TRUE         FALSE    NCBI Ensembl_pipeline
    ## 8   rs7216389       LRRC3C              17            39913696    14036          FALSE           FALSE          TRUE       FALSE          TRUE    NCBI Ensembl_pipeline
    ## 9   rs7216389      RPL39P4              17            39913696    74123          FALSE           FALSE          TRUE        TRUE         FALSE    NCBI Ensembl_pipeline
    ## 10  rs7216389        GSDMB              17            39913696        0           TRUE           FALSE         FALSE       FALSE         FALSE Ensembl Ensembl_pipeline
    ## 11  rs7216389 LOC124903999              17            39913696    13024          FALSE           FALSE          TRUE       FALSE          TRUE    NCBI Ensembl_pipeline
    ## 12  rs7216389        PSMD3              17            39913696    67111          FALSE           FALSE          TRUE       FALSE          TRUE    NCBI Ensembl_pipeline
    ## 13  rs7216389      KRT8P34              17            39913696    77616          FALSE           FALSE          TRUE        TRUE         FALSE Ensembl Ensembl_pipeline
    ## 14  rs7216389       ORMDL3              17            39913696     7345          FALSE            TRUE          TRUE       FALSE          TRUE    NCBI Ensembl_pipeline
    ## 15  rs7216389        IKZF3              17            39913696    49384          FALSE           FALSE          TRUE        TRUE         FALSE    NCBI Ensembl_pipeline
    ## 16  rs7216389        GSDMA              17            39913696    49308          FALSE           FALSE          TRUE       FALSE          TRUE    NCBI Ensembl_pipeline
    ## 17  rs7216389        GSDMB              17            39913696        0          FALSE           FALSE         FALSE       FALSE         FALSE    NCBI Ensembl_pipeline
    ## 18  rs7216389        ZPBP2              17            39913696    35800          FALSE            TRUE          TRUE        TRUE         FALSE    NCBI Ensembl_pipeline
    ## 19  rs7216389       ORMDL3              17            39913696     7345          FALSE            TRUE          TRUE       FALSE          TRUE Ensembl Ensembl_pipeline
    

    get_variants()函数有一个需要注意的参数genomic_range,该参数表示的是指定遗传变异在基因组上的特定位置,它是一个列表型数据,由三组向量构成,分别是染色体号,起点和终点。该函数返回的结果包含4个slot,分别表示遗传变异的信息(不包含GWAS的汇总数据),遗传变异在基因组上的信息,基因的ENSEMBL编码和基因的ENTREZ编码信息

    3.4 get_traits()函数

    my_traits1 <- get_traits(study_id = my_study1@studies$study_id)
    slotNames(my_traits1)
    ## [1] "traits"
    
    as.data.frame(my_traits1@traits)
    ##          efo_id  trait                                          uri
    1 MONDO_0004979 asthma http://purl.obolibrary.org/obo/MONDO_0004979
    

    get_traits()的参数set_operation值得我们关注,它表示对返回的trait的操作,有两个选项,分别是“union”和“intersection”,前者表示取所有的返回的trait,后者表示取交集,默认值是“union”

    相关文章

      网友评论

          本文标题:生信数据库5: GWAS Catalog

          本文链接:https://www.haomeiwen.com/subject/zcmdxjtx.html