[R|数据库] m6A数据库总结(上)

需求描述

随着网上数据库的增多,我们在做科研的时候,经常可以通过数据库来对对研究点进行提前的预测。但是数据库应该怎么寻找呢?

设计思路

由于数据库的建立也会伴随着发表一篇类似的文章来介绍数据库。因此我们可以通过pubmed来检索相关发表的数据库,再提取相关数据库信息即可。

数据操作

检索表达式的构建

由于所有网络数据库都是网页形式的,另外在发表文章的时候,肯定都会附数据库的具体网址,因此我们只需要检索网址的特殊关键词,同时再加想要检索的关键词即可。同时,一般数据库的文章在摘要当中就会提到数据库的网址,所以我们检索范围放到摘要上会更加准确一些。这样的话,我们要检索和m6A相关的数据库的话,那么检索方就是:

term <- "(https|http|ftp|file[Title/xx zAbstract]) AND m6A[Title/Abstract]"

其中https|http|ftp|file代表网址的固定开头格式。m6A则是我们想要检索的相关数据库

数据检索

我们使用rentrez来抓取m6A数据库相关的信息。 其中通过

library(rentrez)
## 获取相关检索式的结果,返回最多100个结果
pmid <- entrez_search(db = "pubmed", term = term, retmax = 100)
## 检索到相关文章的信息
pub_sum <- entrez_summary(db = "pubmed", id = pmid$ids)
## 提取我们想要的信息。我们这里提取pubmid, 发表日期,文章题目,杂志名称以及被引次数
extract_pub <- extract_from_esummary(pub_sum, 
                                     c("uid", ## pembmed id
                                       "pubdate", #发表日期
                                       "title", #文章题目
                                       "source", # 杂志简写
                                       "pmcrefcount"#被引次数
                                       ))
## 转换成data.frame
result <- data.frame(t(extract_pub)) 
head(result)

##               uid     pubdate
## 31624092 31624092 2019 Oct 17
## 31510685 31510685 2019 Jul 15
## 31504168 31504168 2019 Aug 28
## 31147718 31147718  2019 Jul 2
## 30993345 30993345 2019 Apr 23
## 30598068 30598068 2018 Dec 31
##                                                                                                                                     title
## 31624092                       Direct RNA sequencing enables m6A detection in endogenous transcript isoforms at base specific resolution.
## 31510685                               FunDMDeep-m6A: identification and prioritization of functional differential m6A methylation genes.
## 31504168                                                  CROSSalive: a web server for predicting the in vivo structure of RNA molecules.
## 31147718                                                           RNAmod: an integrated system for the annotation of mRNA modifications.
## 30993345 WHISTLE: a high-accuracy map of the human N6-methyladenosine (m6A) epitranscriptome predicted using a machine learning approach.
## 30598068                                     DeepM6ASeq: prediction and characterization of m6A-containing sequences using deep learning.
##                      source pmcrefcount
## 31624092                RNA            
## 31510685     Bioinformatics            
## 31504168     Bioinformatics            
## 31147718  Nucleic Acids Res            
## 30993345  Nucleic Acids Res           3
## 30598068 BMC Bioinformatics           2

进一步精简

通过对于结果的查看,我们发现虽然通过网址关键词来限定检索条件了,其实很多数据库相关的文章都是以数据库名:来开头的。虽然这样可能会丢掉一些不舒服这个原则的数据库,但是也是一种精简的办法。

## 提取含有:为标题的文章。
NewDatIndex <- stringr::str_detect(result$title, ":")
result1 <- result[NewDatIndex,]
### 把文章的题目替换成数据库名称
result1$title <-  stringr::str_extract(result1$title, ".+?(?=:)")
result1

##               uid     pubdate                title             source
## 31510685 31510685 2019 Jul 15        FunDMDeep-m6A     Bioinformatics
## 31504168 31504168 2019 Aug 28           CROSSalive     Bioinformatics
## 31147718 31147718  2019 Jul 2               RNAmod  Nucleic Acids Res
## 30993345 30993345 2019 Apr 23              WHISTLE  Nucleic Acids Res
## 30598068 30598068 2018 Dec 31           DeepM6ASeq BMC Bioinformatics
## 30416381 30416381        2018                BERMP     Int J Biol Sci
## 30201554 30201554 2018 Nov 15     iRNA(m6A)-PseDNC       Anal Biochem
## 29880878 29880878    2018 Aug Publisher Correction       Nat Neurosci
## 29850798 29850798  2018 Nov 1                  PEA     Bioinformatics
## 29340952 29340952    2018 Feb             RFAthM6A     Plant Mol Biol
## 29126312 29126312  2018 Jan 4          MeT-DB V2.0  Nucleic Acids Res
## 29040692 29040692  2018 Jan 4          RMBase v2.0  Nucleic Acids Res
## 29036329 29036329  2018 Jan 4               m6AVar  Nucleic Acids Res
## 28724534 28724534    2017 Oct            m6aViewer                RNA
## 27723837 27723837        2016           RNAMethPre           PLoS One
## 26896799 26896799  2016 Jun 2                SRAMP  Nucleic Acids Res
##          pmcrefcount
## 31510685            
## 31504168            
## 31147718            
## 30993345           3
## 30598068           2
## 30416381           1
## 30201554           9
## 29880878           1
## 29850798           2
## 29340952           5
## 29126312          18
## 29040692          19
## 29036329           9
## 28724534           3
## 27723837           6
## 26896799          41

PS:
通过查看结果,我们看到有一个结果叫做Publisher Correction这个和m6A数据库好像没有关系,所以这一步的精简还是需要修改的呀。

提取数据库文章

数据库在摘要当中都会提供他们的数据库网址。因此我们可以通过摘要的内容来提取数据库的网址即可。
PS:关于正则表达式匹配相关的网址,使用的是别人总结好的代码

DatUrl <- sapply(result1$uid, function(x){
    pub_ab <- entrez_fetch(db = "pubmed", id = x, rettype = "abstract")
    stringr::str_extract(pub_ab, "(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;()]+[-A-Za-z0-9+&@#/%=~_|]")
})

PS:有时候摘要里面会包括多个网址,但是基本上都会指向同一个网址,所以我们只取其中一个即可。

整合结果

result1$URL <- DatUrl
result1

##               uid     pubdate                title             source
## 31510685 31510685 2019 Jul 15        FunDMDeep-m6A     Bioinformatics
## 31504168 31504168 2019 Aug 28           CROSSalive     Bioinformatics
## 31147718 31147718  2019 Jul 2               RNAmod  Nucleic Acids Res
## 30993345 30993345 2019 Apr 23              WHISTLE  Nucleic Acids Res
## 30598068 30598068 2018 Dec 31           DeepM6ASeq BMC Bioinformatics
## 30416381 30416381        2018                BERMP     Int J Biol Sci
## 30201554 30201554 2018 Nov 15     iRNA(m6A)-PseDNC       Anal Biochem
## 29880878 29880878    2018 Aug Publisher Correction       Nat Neurosci
## 29850798 29850798  2018 Nov 1                  PEA     Bioinformatics
## 29340952 29340952    2018 Feb             RFAthM6A     Plant Mol Biol
## 29126312 29126312  2018 Jan 4          MeT-DB V2.0  Nucleic Acids Res
## 29040692 29040692  2018 Jan 4          RMBase v2.0  Nucleic Acids Res
## 29036329 29036329  2018 Jan 4               m6AVar  Nucleic Acids Res
## 28724534 28724534    2017 Oct            m6aViewer                RNA
## 27723837 27723837        2016           RNAMethPre           PLoS One
## 26896799 26896799  2016 Jun 2                SRAMP  Nucleic Acids Res
##          pmcrefcount
## 31510685            
## 31504168            
## 31147718            
## 30993345           3
## 30598068           2
## 30416381           1
## 30201554           9
## 29880878           1
## 29850798           2
## 29340952           5
## 29126312          18
## 29040692          19
## 29036329           9
## 28724534           3
## 27723837           6
## 26896799          41
##                                                                               URL
## 31510685                               https://github.com/NWPU-903PR/DMDeepm6A1.0
## 31504168                http://service.tartaglialab.com/new_submission/crossalive
## 31147718                                      https://bioinformatics.sc.cn/RNAmod
## 30993345                                      http://whistle-epitranscriptome.com
## 30598068                                   https://github.com/rreybeyb/DeepM6ASeq
## 30416381                                           http://www.bioinfogo.org/bermp
## 30201554                          http://lin-group.cn/server/iRNA(m6A)-PseDNC.php
## 29880878 https://www.southernbiotech.com/?catno=4030-05&type=Polyclonal#&panel1-1
## 29850798                                       https://hub.docker.com/r/malab/pea
## 29340952                               https://github.com/nongdaxiaofeng/RFAthM6A
## 29126312                                      http://compgenomics.utsa.edu/MeTDB/
## 29040692                                           http://rna.sysu.edu.cn/rmbase/
## 29036329                                                 http://m6avar.renlab.org
## 28724534                                              http://dna2.leeds.ac.uk/m6a
## 27723837                     http://bioinfo.tsinghua.edu.cn/RNAMethPre/index.html
## 26896799                                              http://www.cuilab.cn/sramp/

至此,我们找到了16个和m6A相关的数据库。下一篇我们将对这16个数据库进行总结

关于数据库的具体介绍可见:[m6A|数据库] m6A数据库总结(下)

你可能感兴趣的:([R|数据库] m6A数据库总结(上))