问题标签 [cheminformatics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 从微笑文件中检索所有分子
我正在处理 .smiles 文件。.smiles 文件的文件结构是:http ://en.wikipedia.org/wiki/Chemical_file_format#SMILES
我想从微笑文件中获取所有原子。这意味着如果有单个“C”原子,则意味着将有 4 个“H”原子连接到它们。
我在搜索时发现 python 中有一些模块可以解析微笑格式,但它们不提供支持的氢原子。(例如:他们只给出'C'而不是其他4个'H'原子连接到那个'C'原子)
如何使用 python 找到所有原子,包括连接的“H”原子。
需要转换为所有原子的微笑文件示例,包括连接的“H”原子:
先感谢您。
java - 元素周期表的数据结构
我的目标是使用元素周期表(或列表)来获取有关 Java 中特定元素的信息。我想通过原子序数和符号搜索它(但转换应该很简单)。
我在这个 JQuery 插件中找到了这些信息中找到了这些信息。但它存储为 JSON 文件。
对信息进行硬编码似乎是最有效的(因为它不会经常更改并且由于性能原因),但是如何将 JSON 转换为硬编码enum
?
converter - 将标准 InChI 转换为具有固定氢层的 InChI
晚上好,
我正在尝试将标准 InChI 字符串转换为具有固定氢层的非标准 InChI 字符串:
示例:
尿嘧啶的标准 inChI : 预期
InChI=1S/C4H4N2O2/c7-3-1-2-5-4(8)6-3/h1-2H,(H2,5,6,7,8)
结果:
InChI=1/C4H4N2O2/c7-3-1-2-5-4(8)6-3/h1-2H,(H2,5,6,7,8)/f/h5-6H
尿嘧啶的 InChIkey:ISAKRJDGNUQOIC-UHFFFAOYSA-N
我的问题是,如果没有进一步的信息,这在理论上是否可行,如果没有,是否有其他方法可以实现这一目标,例如使用现有数据库?
最终目标是将带有氢层的 InChI 字符串转换为 mol 文件,以便能够根据它映射色谱峰,所以我安装了 OpenBabel,它可以做到这一点,但它无法解决上述 InChI 之间的转换。
我已经找到了仙人掌网站,该网站允许通过将 InChIkey 插入到 URL 中,将 InChI密钥(我可以从我拥有的标准 InChI 生成)转换为所需的非标准 InChI(带氢层),如下所示: http: //cactus.nci.nih.gov/chemical/structure/ISAKRJDGNUQOIC-UHFFFAOYSA-N/inchi。这里的问题是它返回了多个正确的非标准 InChI 字符串(具有固定的氢层)。其中一个是我所追求的尿嘧啶标准,但我没有找到一种方法来弄清楚如何自动选择正确的标准。您可以想象,我想以自动化方式运行它以进行数百次转换。
我感谢您的帮助。
洛迪
python - 使用python解析多列字符串
我正在尝试从名为 的化学信息学程序的文本输出中提取数据NWChem
,我已经提取了我感兴趣的输出部分(振动模式),这是我提取的字符串:
首先,我使用正则表达式将数据拆分为行。
但是我不知道如何提取垂直呈现的振动模式。我想轻松访问阵列阵列或 numpy 阵列中的每个振动模式。像这样:
arrays - 单词数组(指纹)的位匹配模拟
我正在尝试使用为每种化合物预先计算的 Avalon 指纹对化学数据库执行子结构搜索。在 RDKit 中有一种方法可以比较这些指纹:
DataStructs.AllProbeBitsMatch ( fp1, fp2 )
文档这样描述此方法:“如果第一个参数中的所有位与第二个参数中的泡菜定义的向量中的所有位匹配,则返回 True”。
他们谈论位向量,但这个指纹也可以“作为单词”计算(整数数组,通过 RDKit 中的 GetAvalonFPAsWords 方法,我可以将其存储在 MongoDB 中,并希望在没有 RDKit 的情况下执行搜索,只使用数据库的功能(必须快得多)。
所以这是我的问题:我需要对数组进行某种操作,这相当于位向量的 AllProbeBitsMatch。理想情况下,此操作应在 MongoDB 上完成,可能使用聚合功能以获得更好的性能。
这是一篇关于 RDKit 和 Avalon 指纹的文章,供我参考:http ://rdkit.blogspot.com/2013/11/fingerprint-based-substructure.html
python - 从 PubChem FTP 数据生成分子的二维图像
与其爬取 PubChem 的网站,我更愿意从 PubChem ftp 站点本地生成图像:
ftp://ftp.ncbi.nih.gov/pubchem/specifications/
唯一的问题是我仅限于 OSX 和 Linux,而且我似乎无法找到一种以编程方式生成他们网站上的 2d 图像的方法。看这个例子:
https://pubchem.ncbi.nlm.nih.gov/compound/6#section=Top
在“2D 结构”标题下,我们有这张图片:
https://pubchem.ncbi.nlm.nih.gov/image/imgsrv.fcgi?cid=6&t=l
这就是我想要生成的。
java - 从 pubchem 中提取与单同位素质量匹配的 sdf 文件
我正在尝试以 sdf 格式从 pubchem 数据库中提取与某个精确质量匹配的化合物的化学结构,并且在该精确质量的 10ppm 范围内(精确质量-cmpndmass/精确质量)* 10 ^ 6。有没有办法使用与 pubchem 交互的 python 或 java 编程语言来实现这一点。
python - 从串行输入 XML 到 CSV
我使用的是 Raspberry 3,其 CO² 分析仪与一些 USB/RS232 转换器相连。
原始数据在 /dev/ttyUSB0 上顺利传输,并且需要将这些数据记录到 .csv 中(我必须承认,此时我的工作并没有那么多)。
我发现的唯一关于转换的东西是从 xml 文件到 csv,而不是来自一些连续的数据流。
在解析和写入 .csv 之前,我是否必须将该流放入 xml 文件?
这是我的“代码”。我能够看到我的问题来自第 63 行(因此,在缓冲区解析上)。
感谢勇敢的人,他们会帮助我完成这项工作,而不是采取我所说的简单方式哈哈(在转换之前复制到 xml 文件)!
keras - RNN 变分自动编码器中的字符串输入输出表示
我在看.. 分子自动编码器让我们可以对化合物进行插值和基于梯度的优化https://arxiv.org/pdf/1610.02415.pdf
该论文采用输入的 Smiles 字符串(分子的文本表示),然后使用变分编码器将其映射到 2D 潜在空间。
hexan-3-ol "CCCC(O)CC" 的示例微笑字符串
在论文中,他们用空格将短字符串填充到 120 个字符。
该论文使用一堆一维卷积网络将字符串编码为微笑字符串的潜在表示
然后它使用 3 Gated 循环单元 GRU 将潜在空间中的位置映射回微笑字符串。
我在理解本文时遇到的问题是确定输入和输出结构是什么样的。
这篇论文对输入和输出结构有点模糊。从一维卷积网络的使用中,我怀疑输入是一个向量化的表示,类似于
在输出纸上说
RNN 解码器的最后一层定义了 SMILES 字符串中每个位置的所有可能字符的概率分布
那么对于论文中使用的最大微笑长度 120 和 35 个可能的微笑字符,这是否意味着输出是 [120x35] 数组?
向前推进该逻辑是否表明输入是一个扁平的 [120*35] 数组 - 请记住它是一个自动编码器。
我的问题是 1dConv,它使用的最大长度为 9,如果它是扁平的 [120*35] 数组,则不足以覆盖序列中的下一个原子
谢谢你的帮助...
java-stream - 去除化合物的不连贯结构
我将 3 个不同的化学文件上传到我的应用程序,一次一个。每个文件都包含SMILE
化合物,但标签名称不同。我正在IAtomContainer
通过读取文件来创建流。我想从流中删除断开的结构。有什么办法可以删除它而不是手动检查SMILES
. 我正在使用 cdk 1.5.13。