内容

注意:本教程的最新版本在这里和一个简短的概述幻灯片在这里

1介绍

最大公共子结构(MCS)算法跻身最敏感和准确的方法来测量结构的小分子之间的相似之处。这个工具是至关重要的许多研究领域的药物发现和化学基因组学。MCS的问题是一个基于相似性的概念被定义为最大的子结构(子图指出)之间共享两个化合物(王et al . 2013;曹、江和Girke 2008)。它从根本上不同于结构descriptor-based策略如指纹或结构的钥匙。MCS方法的另一个优点是实际MCS的识别可以映射回源化合物以精确的共同和独特的特征结构。这个输出通常是更直观的解释和化学比纯粹的数字更有意义的信息返回descriptor-based方法。因为MCS是np完全问题,一个有效的算法是至关重要的减少计算时间的极其复杂的搜索过程。的fmcsR包实现了一个高效的回溯算法,引入了一个新的灵活的MCS(设施)匹配策略来识别MCS化合物中含有原子和/或债券不匹配。相比之下,其他MCS算法只找到确切的MCS完全包含在两个分子。描述的细节设施管理算法的补充材料部分相关的出版物(王et al . 2013年)。包提供了一些实用程序使用设施管理成对复合算法比较,结构相似性搜索和集群。为了最大化性能,耗时的计算步骤fmcsR在c++中实现。集成与ChemmineR包提供了可视化功能的mcs和一致的结构和子结构数据处理例程(曹et al . 2008;后方,曹和Girke 2011)。以下概述所提供的最重要的功能fmcsR

2安装

R软件运行fmcsRChemmineR可以下载从凹口(http://cran.at.r-project.org/)。的fmcsR包从一个开放的R会话可以安装使用BiocManager:安装()命令。

如果(!requireNamespace (“BiocManager”,悄悄地= TRUE)) install.packages (“BiocManager”) BiocManager::安装(“fmcsR”)

3快速概述

演示的主要功能fmcsR包,它可以加载一个存储为示例数据SDFset对象。通用情节函数可用于可视化相应的结构。

库(fmcsR)数据(fmcstest)情节(fmcstest[1:3],打印= FALSE)

设施管理函数计算MCS /设施之间共享两种化合物,可以突出显示在它们的结构plotMCS函数。

测试< -设施管理(fmcstest [1], fmcstest[2],非盟= 2,bu = 1) plotMCS(测试,regenCoords = TRUE)

4文档

库(fmcsR) #加载方案
库(帮助= " fmcsR”) #列表fmcsR库提供的函数/类(帮助=“ChemmineR”) #列表函数/类从ChemmineR建树(fmcsR) #打开PDF手册装饰图案(ChemmineR) #打开ChemmineR PDF手册

不同功能的帮助文档和容器类可以访问标准的R帮助语法。

设施管理“MCS-class”?“SDFset-class”

5MCS的两种化合物

5.1数据导入

以下提供的样本数据集fmcsR包中。它包含了SD文件(SDF)存储在一个3分子SDFset对象。

数据(fmcstest) sdfset < - fmcstest sdfset
# #的实例与3“SDFset”分子

自定义复合数据集可以导入和导出read.SDFsetwrite.SDF函数,分别。下面演示了通过出口sdfset对象文件命名sdfset.sdf。后者是湾区(为Rread.SDFset函数。

write.SDF(sdfset, file="sdfset.sdf") mysdf <- read.SDFset(file="sdfset.sdf")

5.2计算MCS

设施管理函数接受两个分子作为输入提供自卫队SDFset对象。它的输出是一个S4的对象类MCS。默认打印行为总结了MCS的结果通过提供MCS发现的数量,总数查询中原子的化合物\ \ (),总数量的原子在目标化合物\ (b \)MCS,原子的数量\ (c \)和相应的Tanimoto系数。后者是一种广泛使用的相似性度量,定义在这里\ (c / (a + c) \)。此外,重叠系数提供,它被定义为\ (c /分钟(a, b) \)。这个系数通常是用于检测相似化合物与大尺寸之间的不同点。

mcsa < -设施管理(sdfset [[1]], sdfset [[2]]) mcsa
# # # #“主持人”的一个实例的MCS数量:7 # # CMP1: 14原子# # CMP2: 33 # # MCS原子:8 # # Tanimoto原子系数:0.20513 # #重叠系数:0.57143
mcsb < -设施管理(sdfset [[1]], sdfset [[3]]) mcsb
# # # #“主持人”的一个实例的MCS数量:1 # # CMP1: 14原子# # CMP2: 25 # # MCS原子:14 # # Tanimoto原子系数:0.56 # #重叠系数:1

如果设施管理运行与快= TRUE然后它返回一个命名的数字摘要信息向量

sdfset设施管理(sdfset[1],[2],快= TRUE)
# # Query_Size Target_Size MCS_Size Tanimoto_Coefficient # # 14.0000000 33.0000000 8.0000000 0.2051282 0.5714286 # # Overlap_Coefficient # #

5.3类的使用

MCS类包含三个组件命名统计数据,mcs1mcs2。的统计数据槽存储数字摘要信息,而结构性MCS信息查询和存储在目标结构mcs1mcs2分别插槽。后两个每个包含一个插槽列表有两个子组件:原始查询/目标结构SDFset对象,以及一个或多个数字索引向量(s)指定的MCS信息形式行原子块对应的位置SDFset。调用设施管理通常会返回多个索引向量。在这种情况下该算法已经确定的替代mcs大小相等。

slotNames (mcsa)
# #[1]“统计数据”“mcs1”“mcs2”

访问器方法提供返回的不同数据组件MCS类。

统计(mcsa) #或mcsa[["统计"]]
# # Query_Size Target_Size MCS_Size Tanimoto_Coefficient # # 14.0000000 33.0000000 8.0000000 0.2051282 0.5714286 # # Overlap_Coefficient # #
mcsa1 < - mcs1 (mcsa) #或mcsa [[“mcs1”]] mcsa2 < - mcs2 (mcsa) #或mcsa [[“mcs2”]] mcsa1[1] #返回SDFset组件
# # # # $查询与1分子“SDFset”的一个实例
mcsa1[[2]][1:2] #返回前两个索引向量
# # $ CMP1_fmcs_1 # # 11 [1] 3 9 8 7 4 5 1 # # # # $ CMP1_fmcs_2 # # [1] 3 9 8 7 4 5 1 13

mcs2sdfset函数可以返回存储在一个子结构MCS实例作为SDFset对象。如果类型=“新”新的原子数量将会分配给子集的自卫队,类型= '老'将从源头维护原子数量。详情请参考帮助文档mcs2sdfset ?atomsubset ?

mcstosdfset < - mcs2sdfset (mcsa、类型=“新”)情节(mcstosdfset[[1]],打印= FALSE)

构建一个MCS手动对象,一个可以提供所需的数据组件列表

mylist < -列表(统计=统计(mcsa) mcs1 = mcs1 (mcsa) mcs2 = mcs2 (mcsa)), (mylist, MCS)
# # # #“主持人”的一个实例的MCS数量:7 # # CMP1: 14原子# # CMP2: 33 # # MCS原子:8 # # Tanimoto原子系数:0.20513 # #重叠系数:0.57143

6设施管理的两种化合物

如果设施管理运行的默认参数然后它返回两种化合物的MCS,因为不匹配参数都设置为零。确定设施,必须增加上限原子的数量不匹配非盟和/或债券不匹配值高于零浮点数值用。

sdfset plotMCS(设施管理(sdfset[1],[2],非盟= 0,bu = 0))

sdfset plotMCS(设施管理(sdfset[1],[2],非盟= 1,bu = 1))

sdfset plotMCS(设施管理(sdfset[1],[2],非盟= 2,bu = 2))

sdfset plotMCS(设施管理(sdfset[1],[3],非盟= 0,bu = 0))

7设施管理搜索功能

fmcsBatch函数提供了化合物集合存储在设施管理搜索功能SDFset对象。

数据(sdfsample) #负荷更大样本数据集自卫队< - sdfsample fmcsBatch (sdf[1],自卫队(1:30),非盟= 0,bu = 0)
# # Query_Size Target_Size MCS_Size Tanimoto_Coefficient Overlap_Coefficient 33 # # CMP1 33 33 1.0000000 - 1.0000000 # # CMP2 33 26 11 0.2291667 - 0.4230769 # # CMP3 33 26日十0.2040816 - 0.3846154 # # CMP4 33 32 9 0.1607143 - 0.2812500 # # CMP5 33 23日14日0.3333333 - 0.6086957 # # CMP6 33 19 13 0.3333333 - 0.6842105 # # 33次缔约方21 9 0.2000000 - 0.4285714 # # CMP8 33 31 8 0.1428571 - 0.2580645 # # CMP9 33 21 9 0.2000000 - 0.4285714 # # CMP10 33 21 8 0.1739130 - 0.3809524 # # CMP11 33 36 15 0.2777778 - 0.4545455 # # CMP12 33 26 12 0.2553191 0.4615385 # # CMP13 33 26 11 0.2291667 - 0.4230769 # # CMP14 33 16 12 0.3243243 0.7500000 # # CMP15 33 34 15 0.2884615 - 0.4545455 # # CMP16 33 25 8 0.1600000 - 0.3200000 # # CMP17 33 19 8 0.1818182 - 0.4210526 # # CMP18 33 24 10 0.2127660 - 0.4166667 # # CMP19 33 25 14 0.3181818 - 0.5600000 # # CMP20 33 26日十0.2040816 - 0.3846154 # # CMP21 33 25 15 0.3488372 - 0.6000000 # # CMP22 33 21 11 0.2558140 - 0.5238095 # # CMP23 33 26 11 0.2291667 - 0.4230769 # # CMP24 33 17 6 0.1363636 - 0.3529412 # # CMP25 33 27 9 24 13 0.2954545 - 0.5416667 0.1764706 - 0.3333333 # # CMP26 33 # # CMP27 33 26 11 0.2291667 - 0.4230769 # # CMP28 33 20 10 0.2325581 - 0.5000000 # # CMP29 33 20 8 0.1777778 - 0.4000000 # # CMP30 33 18 7 0.1590909 - 0.3888889

8集群与设施管理

fmcsBatch函数可以用来计算一个相似矩阵与各种聚类算法中可用r .下面的例子使用了设施管理算法来计算相似度矩阵用于分层聚类的hclust功能和结果绘制在系统树图。

自卫队< -自卫队[1:7]d < -酸式焦磷酸钠(cid (sdf),函数(x) fmcsBatch (sdf [x],自卫队,非盟= 0,bu = 0, matching.mode = "芳香")(" Overlap_Coefficient "]) d
# # CMP1 CMP2 CMP3 CMP4 CMP5 CMP6次缔约方# # CMP1 1.0000000 0.2307692 0.2307692 0.2812500 0.5217391 0.6842105 0.2857143 # # CMP2 0.2307692 1.0000000 0.4230769 0.5384615 0.2173913 0.4736842 - 0.2857143 # # CMP3 0.2307692 0.4230769 1.0000000 0.3076923 0.2173913 0.4736842 0.9047619 # # CMP4 0.2812500 0.5384615 0.3076923 1.0000000 0.3043478 0.5263158 - 0.2857143 # # CMP5 0.5217391 0.2173913 0.2173913 0.3043478 1.0000000 0.5789474 0.2380952 # # CMP6 0.6842105 0.4736842 0.4736842 0.5263158 0.5789474 1.0000000 - 0.3157895 # #次缔约方0.2857143 0.2857143 0.9047619 0.2857143 0.2380952 0.3157895 - 1.0000000
hc < - hclust (as.dist(一维),方法=“完整”)情节(as.dendrogram (hc)、edgePar =列表(col = 4, lwd = 2),水平的= TRUE)

设施共享中化合物对感兴趣的可以被可视化plotMCS,这里的两个最相似的化合物从以前的树:

plotMCS(设施管理(sdf [3], sdf[7],非盟= 0,bu = 0, matching.mode = "芳香"))

9版本信息

sessionInfo ()
# # R版本4.0.3(2020-10-10)# #平台:x86_64-pc-linux-gnu(64位)# #下运行:Ubuntu 18.04.5 LTS # # # #矩阵产品:默认# #布拉斯特区:/home/biocbuild/bbs - 3.12 - bioc / R / lib / libRblas。所以# # LAPACK: /home/biocbuild/bbs - 3.12 - bioc / R / lib / libRlapack。# # # #语言环境:# # [1]LC_CTYPE = en_US。utf - 8 LC_NUMERIC = C而= en_US。utf - 8 # # [4] LC_COLLATE = C LC_MONETARY = en_US。utf - 8 LC_MESSAGES = en_US。utf - 8 # # [7] LC_PAPER = en_US。utf - 8 LC_NAME C = C LC_ADDRESS = # # [10] LC_TELEPHONE = C LC_MEASUREMENT = en_US。utf - 8 LC_IDENTIFICATION = C附加基本包:# # # # # #[1]统计图形grDevices跑龙套数据集方法基础# # # #其他附加包:# # [1]fmcsR_1.32.0 ChemmineR_3.42.0 BiocStyle_2.18.0 # # # #通过加载一个名称空间(而不是附加):# # [1]Rcpp_1.0.5 compiler_4.0.3 pillar_1.4.6 BiocManager_1.30.10 # # [5] base64enc_0.1-3 bitops_1.0-6 tools_4.0.3 digest_0.6.27 # # [9] evaluate_0.14 lifecycle_0.2.0 tibble_3.0.4 gtable_0.3.0 # # [13] png_0.1-7 pkgconfig_2.0.3 rlang_0.4.8 DBI_1.1.0 # # [17] magick_2.5.0 parallel_4.0.3 yaml_2.2.1 xfun_0.18 # # [21] gridExtra_2.3 stringr_1.4.0 dplyr_1.0.2 knitr_1.30 # # [25] htmlwidgets_1.5.2 generics_0.0.2 vctrs_0.3.4 DT_0.16 # # [29] tidyselect_1.1.0 grid_4.0.3 glue_1.4.2 R6_2.4.1 # # [33] rmarkdown_2.5 bookdown_0.21 purrr_0.3.4 ggplot2_3.3.2 # # [37] magrittr_1.5 codetools_0.2-16 scales_1.1.1 htmltools_0.5.0 # # [41] ellipsis_0.3.1 colorspace_1.4-1 rsvg_2.1 stringi_1.5.3 # # [45] rcurl_1.98 - 1.2 munsell_0.5.0 crayon_1.3.4 rjson_0.2.20

引用

后方,T W, Y曹,T Girke》2011。“ChemMine工具:一个在线服务分析和聚类小分子。”核酸Res39 (Web服务器问题):486 - 91。https://doi.org/10.1093/nar/gkr320

曹,Y, Charisi江T, T L C Cheng Girke》2008。“ChemmineR:综采r框架”生物信息学24 (15):1733 - 4。https://doi.org/10.1093/bioinformatics/btn307

江曹,Y, T, T Girke》2008。“最大共同substructure-based搜索算法和预测药物类化合物。”生物信息学24 (13):366 - 74。https://doi.org/10.1093/bioinformatics/btn186

王,Y, T W后方,K霍兰,T Girke》2013。“fmcsR:宽容不匹配最大常见的子结构检索>生物信息学,8月。https://doi.org/10.1093/bioinformatics/btt475