前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言实现分子SDF文件操作

R语言实现分子SDF文件操作

作者头像
一粒沙
发布2019-12-04 12:52:44
2.2K0
发布2019-12-04 12:52:44
举报
文章被收录于专栏:R语言交流中心

我们今天给大家介绍一个可以在R语言中对SDF文件进行操作的R包ChemmineR,当然这个包还包含了很多对分子分析的算法,需要通过Bioconductor安装:

代码语言:javascript
复制
BiocManager::install("ChemmineR")

如果想支持格式的转化还需要安装:

代码语言:javascript
复制
BiocManager::install("ChemmineOB")

具体的概况如下:

首先我们看下数据的读入函数read.SDFset,这个函数类似read.csv或者read.table,所以我们就不深究了,我们主要看下如何读取读入后的数据。

载入数据:

代码语言:javascript
复制
a=read.SDFset("http://faculty.ucr.edu/~tgirke/Documents/R_BioCond/Samples/sdfsample.sdf")

其中获取详细信息的函数如下:

1. atomblock 获取每一个化合物的原子矩阵。实例

代码语言:javascript
复制
  atomblock(a[1])

2. datablock 获取每一个化合物的所有信息。实例:

代码语言:javascript
复制
datablock(a[1])
代码语言:javascript
复制
 datablock(a[1])$CMP1[1:4]

3. cid 获取每一个化合物的排序的ID,方便datablock读取其详细信息。实例:

代码语言:javascript
复制
cid(a)

4. sdfid 获取化合物在数据中标注的ID。实例:

代码语言:javascript
复制
sdfid(a)

5. makeUnique 主要用来检测数据的ID是否重复,也就是可以看一个sdf文件中是否有重复的数据。

6. datablock2ma 将SDF文件转化为矩阵数据。实例:

代码语言:javascript
复制
blockmatrix <- datablock2ma(datablocklist=datablock(a))
代码语言:javascript
复制
 numchar <-splitNumChar(blockmatrix=blockmatrix) #分割字符串和数值型的数据

7. grepSDFset 检索SDF文件。检索的区域包括header, atomblock, bondblock 或者datablock;检索的模式包括index(返回位置)、subset(返回数据列表)。实例:

代码语言:javascript
复制
grepSDFset("650001", a, field="datablock", mode="index")

接下来我们看另一个重要的功能,获取分子式、分子量以及各原子数量:

代码语言:javascript
复制
propma <- data.frame(MF=MF(a), MW=MW(a),atomcountMA(a))

当然我们也可以输出我们的分子结构:

代码语言:javascript
复制
plot(a[1:4], print=FALSE)

或者写入新的sdf文件:

代码语言:javascript
复制
write.SDF(at[1:4],file="sub.sdf", sig=F)

接下来就是对分子的处理,首先我们看下分子相似性以及聚类分析,直接看实例:

代码语言:javascript
复制
apset <- sdf2ap(a)# 创建数据库:data(apset) # 载入数据 cmp.search(apset, apset[1], type=3, cutoff =0.3, quiet=TRUE)

cmp.search具体函数参数如下:

Query 指我们想要检索的分子。

Cutoff 相似打分

接下来看下聚类函数cmp.cluster其中主要的是cutoff的两个分子相似性的最小值设置,直接看实例:

代码语言:javascript
复制
cmp.cluster(db=apset, cutoff = c(0.65,0.5), quiet=TRUE)[1:4,]

CLSZ代表每一聚类的化合物数量,CLID指的类的ID。

基于Openbable的分子指纹计算以及相似性分析我们不在深入探讨,有兴趣的可以接着研究。

欢迎大家学习交流!

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

本文分享自 R语言交流中心 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档