扩展连通性指纹(ECFP/Morgan Fingerprint)介绍

扩展连通性指纹(Extended Connectivity Fingerprints,ECFP)是当下最广受使用用于构建化合物
定量构效关系(QSAR)模型的分子指纹。在 RDKit 中,ECFP 指纹又叫 Morgan 指纹,正因为 ECFP
的核心想法来自于 Morgan 算法,该算法可以为每个原子分配一个唯一的识别符,该标识符会经过几轮迭代。

Read More

使用 K-means 方法对化合物库进行聚类

在药物筛选过程中,我们时常面临一个问题:我有太多有意思的分子,但资源或预算有限,我该如何挑选最合适的分子去进一步测活等?如果全选择理论最优(如对接打分最高、QSAR 预测结果最好等),那么很有可能由于缺乏多样性,测试结果差不多,意义不大。此时我们可以通过聚类的方法减少待测样本的同时尽可能大的保留化合物的多样性。K-means 是一个古老却又最常用的一种聚类方法,速度非常快。Patrick Walter 博士写了一篇博客介绍了使用 K-means 聚类方法的环境、目的与具体实现方法。由于谷歌的 Blogspot 在国内无法正常访问,我就在下面附上原文。Patrick 将它的工具放在了 Github,我们可以直接使用命令行对化合物进行聚类。

Read More

用于博客上传图片的图床网站汇集

之前本博客的图床都采用七牛云,可惜现在可能由于国家的管控,必须使用备案的域名才可以绑定,
否则只给一个为期30天的测试域名,显然是不能用这个域名作为图床的,无奈之下只能另辟蹊径。

网上看到一些介绍 Hexo 上传图片的方法,比如可以使用本身的插件post_asset_folder
可我仍然偏好使用图床,可能觉得源码就应该是纯粹的源码吧。

Read More

使用强化学习生成模型产生新的分子

在药物设计、化学信息学领域,深度学习并不一定能比传统机器学习领域有更好的表现,尤其是在学术界,由于有标签的数据很少,数据噪音较大,往往用深度学习只会导致过拟合降低模型的预测能力。但是,生成学习用于药物设计却完全发挥了当前深度神经网络的优势。虽然有标签的数据很少,但是药物设计数据库诸如CHEMBL不乏质量较高的“化合物信息”。这里说的质量较高指的是他们的类药性较强,往往此类数据库中的化合物都是早期药物设计中已经合成出且具有一定生物活性的分子。这些化合物可以统统拿来构建一个模型用于生成新的小分子。

Read More

使用Python或Bash统计文件行数方法与性能测试

当统计大文件的行数时,除了要考虑便捷性,自然也会想到要考虑其计算性能(主要是时间尺度)。网上搜了下有很多种方法可以实现,那么到底应该选择哪种?首先明确方向,需要统计结果的环境是python,那么除了使用python本身的方法外,利用bash也是个很不错的选择,毕竟bash里有很多快速处理文本的工具。

Read More

Facebook面试题-求硬币概率

无意中看到一个面试题,号称是Facebook出的(出处

You randomly draw a coin from 100 coins — 1 unfair coin (head-head), 99 fair coins (head-tail) and roll it 10 times. If the result is 10 heads, what is the probability that the coin is unfair?

Read More

Nodejs下使用gm圆形裁剪并合成图片

说到Nodejs下的图片处理可能第一想到就是gm,gm底层可以是GraphicsMagic(其实也是gm的由来),也可以是ImageMagick(其实GraphicsMagic本身也是从ImageMagic分割而来,现在独立了)。虽然这两个工具本身都不是js实现,所以需要额外安装,不过此工具非常常见,可能已经预装在linux系统下,而且安装也很方便,所以不用因为看到是“第三方”就放弃。虽然说这两个软件都只是底层,无需关心,可笔者在实践中发现必须得用GraphicsMagic,所以这里就只介绍GraphicsMagics的安装与使用。

Read More

使用flask + uwsgi + supervised 使用虚拟python环境搭建网站

flask是个轻量级的网站框架,如果网站仅仅是几个简单的页面与功能接口的话,使用它比其他诸如django等框架要方便很多。然而当网站构建好后,需要部署到服务器,此时需要另外两个工具:用于让python与网站服务器相连的uwsgi,以及用于自动启动并守护的supervisor。

flask和uwsgi都支持python2和python3,但supervisor只支持python2,所以如果网站app一定要用python3的话则一定会出现他们装在不同的虚拟环境下。不过不怕,这是可以解决的。

Read More

信息增益与主成分分析在化学信息学中的应用

摘要:信息增益一般用在数据挖掘中的决策树方法领域,它是指当前熵与两个新群组经加权平均后的熵之间的差值。
在化学信息学中,我们可以利用信息增益判断分子指纹的每个子结构对分子活性的影响程度。
主成分分析是数理统计中的一种技术,意在降低变量的维度,防止过拟合现象以提高模型的准确度。
在化学信息学中,我们可以利用主成分分析技术解决分子描述符太多且可能存在相关性的问题。
本文简单介绍上述两种方法的原理,并描述他们在化学信息学中的具体应用。

Read More

在Docker中使用GUI环境,解决cannot connect to X server问题

Docker 因为其部署、迁移方便而广为受到关注。我们使用 DockerFile 进行环境搭建与配置,用户只需要下载 Docker 并安装,下拉镜像docker pull TheImage即可仿佛下载了一个已经配置好的虚拟环境,然后docker run 即可实现程序。
可当它处理GUI程序的时候就不那么方便,如果直接执行GUI程序会得到“cannot connect to X server”错误。因为 Docker 程序也像在另一个虚拟机一样,无法直接输出图像到宿主的显示器,而是需要在某个隧道下进行 X 传输。

Read More