前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >现代生物学领域的生物信息学权重高吗

现代生物学领域的生物信息学权重高吗

作者头像
生信技能树
发布2023-09-04 15:53:04
1520
发布2023-09-04 15:53:04
举报
文章被收录于专栏:生信技能树生信技能树

出版社希望我们《生信技能树》团队帮忙翻译整理一些相关领域(生物信息学)的书籍,我想起来了《现代生物学》系列书籍:《Methods in Molecular Biology》,就先系统性刷了一下这些标题,但是肉眼看过去,琳琅满目,很难掌握全貌。就想起来了爬虫+词云这两个神器,现在让我们试试看吧

首先是爬虫获取全部的书籍的大标题和小标题

页面的网页规则是从1到272(截止日期:2023年07月09日):

代码语言:javascript
复制
https://www.springer.com/series/7651/books?page=2
https://www.springer.com/series/7651/books?page=272

书籍的数量一直在更新。。。

简单的使用谷歌浏览器的检查功能,就可以看到每个页面的书籍列表里面的书籍大标题是:

代码语言:javascript
复制
<a href="https://www.springer.com/book/9781071634165" data-track="click" data-track-action="clicked article" data-track-label="article-8">RNA Nanostructures
                    </a>
                    
<a href="https://www.springer.com/book/9780896033191" data-track="click" data-track-action="clicked article" data-track-label="article-0">Yeast Protocols
                    </a>                    

而每个书籍还有一个次级标题是:

代码语言:javascript
复制
<p class="u-text-md u-mb-8" data-test="book-sub-title">
                        Methods in Cell and Molecular Biology
                    </p>

接下来就是使用 rvest 包进行这些网页的解析而已,全部的代码如下所示:

代码语言:javascript
复制
# 安装和加载rvest包
if (!require(rvest)) {
  install.packages("rvest")
}
library(rvest)

# 定义要爬取的URL
urls <- paste0("https://www.springer.com/series/7651/books?page=",1:272)

titles_txt <- lapply(urls, function(url){
  print(url)
  # 读取网页内容
  tryCatch(    webpage <- read_html(url) ,      
             error = function(e) print(paste0('error:',url)) )
  
  Sys.sleep(sample(1:10,1))
  # 使用CSS选择器或XPath来定位和提取你想要的信息 
  # 你可能需要根据实际的HTML结构来调整这个选择器
  # data-track-action="clicked article"
  main_text <- webpage %>% html_nodes("a[data-track-action='clicked article']") %>% html_text(trim = TRUE)
  # 打印提取到的文本
  # print(main_text)
  # data-test="book-sub-title"
  sub_text <- webpage %>% html_nodes("p[data-test='book-sub-title']") %>% html_text(trim = TRUE)
  # 打印提取到的文本
 # print(sub_text)
  return(list(
    main_text=main_text,
    sub_text=sub_text
  ))
})
 

上面的代码获取全部的书籍的大标题和小标题,接下来就是针对它们的标题内容进行一个简单的汇总整理。简单的看了看生物信息学相关非常少:

代码语言:javascript
复制
 [1] "Plant Bioinformatics"                                     
 [2] "RNA Bioinformatics"                                       
 [3] "Translational Bioinformatics for Therapeutic Development" 
 [4] "Bioinformatics for Cancer Immunotherapy"                  
 [5] "Structural Bioinformatics"                                
 [6] "Microarray Bioinformatics"                                
 [7] "Cancer Bioinformatics"                                    
 [8] "Bioinformatics and Drug Discovery"                        
 [9] "Bioinformatics in MicroRNA Research"                      
[10] "Protein Bioinformatics"                                   
[11] "Proteome Bioinformatics"                                  
[12] "Bioinformatics"                                           
[13] "Bioinformatics"                                           
[14] "RNA Bioinformatics"                                       
[15] "Bioinformatics and Drug Discovery"                        
[16] "Bioinformatics for Comparative Proteomics"                
[17] "Bioinformatics for Omics Data"                            
[18] "Clinical Bioinformatics"                                  
[19] "Next Generation Microarray Bioinformatics"                
[20] "Plant Bioinformatics"                                     
[21] "Proteome Bioinformatics"                                  
[22] "Bioinformatics Methods in Clinical Research"              
[23] "Bioinformatics"                                           
[24] "Bioinformatics"                                           
[25] "Bioinformatics and Drug Discovery"                        
[26] "Bioinformatics for DNA Sequence Analysis"                 
[27] "Microbial Gene Essentiality: Protocols and Bioinformatics"
[28] "Plant Bioinformatics"                                     
[29] "Bioinformatics Methods and Protocols"     

其次是词云对标题进行汇总

简单的使用bing搜索一下关键词:word clound in r ,就可以找到解决方案,第一个链接就是:http://www.sthda.com/english/wiki/text-mining-and-word-cloud-fundamentals-in-r-5-simple-steps-you-should-know,代码分成5个步骤。

  • Step 1: Create a text file
  • Step 2 : Install and load the required packages
  • Step 3 : Text mining
  • Step 4 : Build a term-document matrix
  • Step 5 : Generate the Word cloud

一般来说,会R基础的朋友们很容易看懂,如果你还不会R语言,建议看:

把R的知识点路线图搞定,如下:

  • 了解常量和变量概念
  • 加减乘除等运算(计算器)
  • 多种数据类型(数值,字符,逻辑,因子)
  • 多种数据结构(向量,矩阵,数组,数据框,列表)
  • 文件读取和写出
  • 简单统计可视化
  • 无限量函数学习

核心代码就是wordcloud函数,但是这个wordcloud函数要求的输入数据格式,就需要懂R语言的才能认真做出来。

代码语言:javascript
复制

library("tm")
library("SnowballC")
library("wordcloud")
library("RColorBrewer")
wd <- function(text){
  # Load the data as a corpus
  docs <- Corpus(VectorSource(text))
  toSpace <- content_transformer(function (x , pattern ) gsub(pattern, " ", x))
  docs <- tm_map(docs, toSpace, "/")
  docs <- tm_map(docs, toSpace, "@")
  docs <- tm_map(docs, toSpace, "\\|")
  # Convert the text to lower case
  docs <- tm_map(docs, content_transformer(tolower))
  # Remove numbers
  docs <- tm_map(docs, removeNumbers)
  # Remove english common stopwords
  docs <- tm_map(docs, removeWords, stopwords("english"))
  # Remove your own stop word
  # specify your stopwords as a character vector
  docs <- tm_map(docs, removeWords, c("blabla1", "blabla2")) 
  # Remove punctuations
  docs <- tm_map(docs, removePunctuation)
  # Eliminate extra white spaces
  docs <- tm_map(docs, stripWhitespace)
  # Text stemming
  # docs <- tm_map(docs, stemDocument)
  
  dtm <- TermDocumentMatrix(docs)
  m <- as.matrix(dtm)
  v <- sort(rowSums(m),decreasing=TRUE)
  d <- data.frame(word = names(v),freq=v)
  head(d, 10)
  set.seed(1234)
  wordcloud(words = d$word, freq = d$freq, min.freq = 1,
            max.words=200, random.order=FALSE, rot.per=0.35, 
            colors=brewer.pal(8, "Dark2"))
}
wd(unlist(lapply(titles_txt, '[[',1)))
wd(unlist(lapply(titles_txt, '[[',2)))

值得注意的是,如果并没有指定随机数种子,那么词云绘图结果每次布局都不一样哦。

基本上可以看到《现代生物学》所涉及的内容:

《现代生物学》是一个广泛的概念,它涵盖了生物学的许多不同领域,包括但不限于分子生物学、细胞生物学、生物化学、遗传学、生物物理学、生物信息学、生态学、进化生物学等。这些领域都在不断地发展和进步,以适应科学和技术的快速发展。在《现代生物学》中,有几个关键的主题和趋势:

  1. 分子和细胞生物学:这是现代生物学的核心,包括研究生命的基本单位——细胞,以及细胞内的分子过程。
  2. 遗传学和基因组学:随着测序技术的发展,我们现在可以快速、准确地测定个体的基因组,这为研究遗传疾病、进化和生物多样性提供了强大的工具。
  3. 生物信息学和计算生物学:随着生物数据的爆炸性增长,如何有效地存储、分析和解释这些数据成为了一个重要的问题。生物信息学和计算生物学就是解决这些问题的学科。
  4. 系统生物学:这是一个试图理解生物系统的整体行为的领域,而不仅仅是研究单个的基因或蛋白质。
  5. 生态学和环境生物学:随着人类对地球环境的影响越来越大,理解生态系统的结构和功能,以及我们如何影响它们,变得越来越重要。
  6. 生物技术和合成生物学:利用生物系统来解决实际问题,如生产药物、生物燃料和其他有用的化合物,以及设计和构建新的生物系统。

这些只是现代生物学的一部分领域,实际上,现代生物学的范围和深度远超这些。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先是爬虫获取全部的书籍的大标题和小标题
  • 其次是词云对标题进行汇总
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档