3 个不稳定版本

0.1.0 2024年7月28日
0.0.2 2024年7月5日
0.0.1 2024年6月23日

#59 in 生物学

Download history 163/week @ 2024-06-22 52/week @ 2024-06-29 46/week @ 2024-07-06 2/week @ 2024-07-13 122/week @ 2024-07-27 4/week @ 2024-08-03

每月下载量 129 次

MIT/ApacheLGPL-3.0-or-later

1MB
2K SLoC

logo

分子科

分子科代表“分子到颜色”。它根据给定物质的InChI符号生成独特的颜色色卡。它还可以使用MInChI符号生成混合物的颜色识别。

如何运行

moleco generate "InChI=1S/C8H10N4O2/c1-10-4-9-6-5(10)7(13)12(3)8(14)11(6)2/h4H,1-3H3" --print

这将生成咖啡因的颜色色卡。

caffeine

安装

目前您只能通过 Cargo,Rust 包管理器 安装它。

cargo install moleco

混合物支持

当然,在自然界中,更有可能看到混合物而不是单一物质,因此也支持MInChI。您可以生成 牙膏

moleco generate "MInChI=0.00.1S/C12H26O4S.Na/c1-2-3-4-5-6-7-8-9-10-11-12-16-17(13,14)15;/h2-12H2,1H3,(H,13,14,15);/q;+1/p-1&C3H8O3/c4-1-3(6)2-5/h3-6H,1-2H2&C7H5NO3S.Na/c9-7-5-3-1-2-4-6(5)12(10,11)8-7;/h1-4H,(H,8,9);/q;+1/p-1&Ca.H3O4P.2H2O/c;1-5(2,3)4;;/h;(H3,1,2,3,4);2*1H2/q+2;;;/p-2&FH2O3P.2Na/c1-5(2,3)4;;/h(H2,2,3,4);;/q;2*+1/p-2&H2O/h1H2/n{6&2&&5&3&4&1}/g{215wf-3&25wf-2&1wf-2&8wf-3&2wf-3&5wf-1&15wf-3}" --print

toothpaste

注意:可能不是所有终端都支持(很好地)打印,因此结果可能会有所不同,但保存的图像将是正确的。

或者 洗碗液

moleco generate "MInChI=0.00.1S/C12H26O4S.Na/c1-2-3-4-5-6-7-8-9-10-11-12-16-17(13,14)15;/h2-12H2,1H3,(H,13,14,15);/q;+1/p-1&C18H30O3S.Na/c1-2-3-4-5-6-7-8-9-10-11-12-17-13-15-18(16-14-17)22(19,20)21;/h13-16H,2-12H2,1H3,(H,19,20,21);/q;+1/p-1&ClH.Na/h1H;/q;+1/p-1&H2O/h1H2/n{4&{2&4}&&{1&4}&3}/g{807wf-3&{6pp1&4pp1}117wf-3&1wf-2&{27pp0&73pp0}66wf-3&}" --print

dishwashing liquid

或者 9-硼杂环[3.3.1]壬烷 在未定义量的己烷中的溶液

moleco generate "MInChI=0.00.1S/C6H12/c1-6-4-2-3-5-6/h6H,2-5H2,1H3&C6H14/c1-3-5-6-4-2/h3-6H2,1-2H3&C6H14/c1-4-5-6(2)3/h6H,4-5H2,1-3H3&C6H14/c1-4-6(3)5-2/h6H,4-5H2,1-3H3&C8H15B/c1-3-7-5-2-6-8(4-1)9-7/h7-9H,1-6H2/n{5&{2&3&4&1}}/g{4mr-1&{&&&}}" --print

borabicyclononane in hexanes

或者,如果您是粉丝,您可以生成 奶油酱

moleco generate "MInChI=0.00.1S/C12H17N4OS.ClH/c1-8-11(3-4-17)18-7-16(8)6-10-5-14-9(2)15-12(10)13;/h5,7,17H,3-4,6H2,1-2H3,(H2,13,14,15);1H/q+1;/p-1&C17H20N4O6/c1-7-3-9-10(4-8(7)2)21(5-11(23)14(25)12(24)6-22)15-13(18-9)16(26)20-17(27)19-15/h3-4,11-12,14,22-25H,5-6H2,1-2H3,(H,20,26,27)/t11-,12+,14-/m0/s1&C19H19N7O6/c20-19-25-15-14(17(30)26-19)23-11(8-22-15)7-21-10-3-1-9(2-4-10)16(29)24-12(18(31)32)5-6-13(27)28/h1-4,8,12,21H,5-7H2,(H,24,29)(H,27,28)(H,31,32)(H3,20,22,25,26,30)/t12-/m0/s1&C20H30O/c1-16(8-6-9-17(2)13-15-21)11-12-19-18(3)10-7-14-20(19,4)5/h6,8-9,11-13,21H,7,10,14-15H2,1-5H3/b9-6+,12-11+,16-8+,17-13+&C27H44O/c1-19(2)8-6-9-21(4)25-15-16-26-22(10-7-17-27(25,26)5)12-13-23-18-24(28)14-11-20(23)3/h12-13,19,21,24-26,28H,3,6-11,14-18H2,1-2,4-5H3/b22-12+,23-13-/t21-,24+,25-,26+,27-/m1/s1&C27H46O/c1-18(2)7-6-8-19(3)23-11-12-24-22-10-9-20-17-21(28)13-15-26(20,4)25(22)14-16-27(23,24)5/h9,18-19,21-25,28H,6-8,10-17H2,1-5H3/t19-,21+,22+,23-,24+,25+,26+,27-/m1/s1&C6H5NO2/c8-6(9)5-2-1-3-7-4-5/h1-4H,(H,8,9)&C8H10NO6P/c1-5-8(11)7(3-10)6(2-9-5)4-15-16(12,13)14/h2-3,11H,4H2,1H3,(H2,12,13,14)&C9H17NO5/c1-9(2,5-11)7(14)8(15)10-4-3-6(12)13/h7,11,14H,3-5H2,1-2H3,(H,10,15)(H,12,13)/t7-/m0/s1&Ca/q+2&Na/q+1/n{{{{&}&6&11&&4}&{{&}&&&1&2&7&9&8&3&}}&{{&}&6&11&&&4&5&10}}/g{{{{56wf-2&25wf-3}8wf-1&3wf-3&1wf-2&125wf-4&}466wf-3&{{56wf-4&168wf-3}725wf-3&187wf-4&137wf-3&447wf-8&215wf-8&6365wf-8&1008wf-8&341wf-8&49wf-8&9wf-3}534wf-3}1pp1&{{6wv-1&2wv-2}2wv-2&8wv-5&48wv-5&48wv-3&36wv-3&&&}9pp1}" --print

bechamel sauce

动机

想法是为含有特定物质的容器创建颜色代码,使其易于区分

Cylinders with technical gases

...如果更改形状 - 如果您知道颜色代码,仍然很容易

Cans with technical gases

(如您所注意到的 - 氧气和氩气有类似的外观 - 基本色和互补色,因此您必须小心这两者;这种冲突是不可避免的,因此请发挥创意进行设计,创建图案并使用强调色,这样您就不会引起混淆)。

如何生成InChI或MInChI?

对于简单物质,您可以使用PubChem,也可以尝试搜索“物质名称 IhChI” - 您应该能找到。对于混合物,您可以使用MInChI 演示

混合物条形尺寸的计算方法

首先 - 混合物条形(混合物底部)的值是以对数刻度显示的。这可能是个问题,因为如果您考虑两种乙醇溶液,一种40%,另一种70%,就很难区分它们。

ethanol 40%

ethanol 70%

实际上并没有太大差别。

但这不是目的 - 目的是快速区分含有少量有害化学物质的溶液。再次以乙醇溶液为例 - 一种40%的水溶液,另一种40%的乙醇和0.1%的比特雷(苯甲酸苯佐卡因)水溶液。

ethanol 40%

ethanol 40% with bitrex

现在,即使有微量的额外物质,也可以轻松区分。

颜色样本的顺序

顺序不能保证。Moleco将尽可能保留混合物中物质的原始顺序 - 命令中给出的顺序(MInChi 演示(见下文链接)有特定物质的顺序)。然而,也可能发生这种情况,其中一个物质在表示法中间有缺失或未估算的浓度 - 在这种情况下,其样本将移动到条形的末尾,以便使物质的主色与条形颜色相匹配

一个很好的例子是洗洁精的图像 - 如果您解码表示法,您将看到第三种物质(氯化钠)的浓度缺失,因此它被移动到条形的末尾,位于水样本之后。(您可以在上面的示例中找到完整的表示法)。

dishwashing liquid

未知和未估算的容量

有时您可能无法在混合物中传递所有浓度,就像这个37%的水合甲醛溶液一样。

moleco generate "MInChI=0.00.1S/CH2O/c1-2/h1H2&H2O/h1H2/n{1&2}/g{37wf-2&}" --print

37% formaldehyde in water

很容易计算剩余的水量(不是精确的,不是摩尔意义上的,但由于大小是以对数刻度显示的,我们可以忽略小的不确定性) - 大约为63%。但是,如果有两种溶剂(如水和甲醇)没有给出它们的浓度,那么可以估算剩余量,但不能精确地估算每种溶剂的量。在这种情况下,剩余的化合物被标记为未知

moleco generate "MInChI=0.00.1S/CH2O/c1-2/h1H2&CH4O/c1-2/h2H,1H3 &H2O/h1H2/n{1&3&2}/g{37wf-2&&}" --print

37% formaldehyde in water and methanol

此外,如果您在表示法中使用比例VP)并且没有传递至少一种成分的浓度,则剩余量被标记为未估算

moleco generate "MInChI=0.00.1S/CH2O/c1-2/h1H2&H2O/h1H2/n{1&2}/g{37vp0&}" --print

37% formaldehyde in water unestimated

类似的是摩尔/升/千克的表示法 - MBMR - 如果您使用它们,条形将显示额外的未估算未知化合物。这是因为Moleco不计算摩尔质量和体积(它不包含任何物质内部数据库),所以它假设有额外的物质作为结果。您可能会想知道为什么它与范围表示法(见下一段)的情况不同,并且不留给用户 - 这是因为MBMR目前是总是错误的 - 这就是原因。如果您想快速解决问题,只需将其替换为VP表示法,或者,走更长的路,实际上将这些表示法转换为完全支持的其他表示法。

moleco generate "MInChI=0.00.1S/CH2O/c1-2/h1H2&H2O/h1H2/n{1&2}/g{37mb0&63mb0}" --print

37% formaldehyde in water molar

额外浓度说明

在范围表示法的情况下,如“10:20”,只有更高的数值会被考虑。这是因为 moleco 正在尝试估算未知或未估算的物质,如果最大可能的解决方案超过了潜在容量,则假定 用户知道自己在做什么。如果您想展示额外的物质,因为您知道有,您始终可以将它作为单独的、未标记的物质添加。下面是示例 - 第二个示例展示了额外的物质,因为索引和浓度表示中增加了一个额外的组。

moleco generate "MInChI=0.00.1S/C2H6O/c1-2-3/h3H,2H2,1H3&H2O/h1H2/n{1&2}/g{4vp1&6vp1}" --print-only

vs

moleco generate "MInChI=0.00.1S/C2H6O/c1-2-3/h3H,2H2,1H3&H2O/h1H2/n{1&2&}/g{4vp1&6vp1&}" --print-only

结果看起来像

37% formaldehyde in water 37% formaldehyde in water open bar

问题

为什么没有支持摩尔质量和体积?

这需要整合物质及其属性的一些数据库。这远远超出了这个项目的初始范围,但可以在未来考虑。

有碰撞吗?

是的,有很多。从您可以从 https://pubchem.ncbi.nlm.nih.gov/ 获取的超过 117,000,000 个唯一的 InChI 字符串中,只有超过 8,000 万是唯一的。这些都是精确的碰撞,不包括如果给定的色调在样本中只相差 1 度 - 对人眼来说太小,即使技术上没有碰撞。请注意,如果您想区分具有相似样本的两个物质,请创意设计。

为什么没有支持 InChIKey?

最初的想法是创建一个针对每种物质的唯一系统 - 而且InChIKey已经有一些已确认的碰撞,因此没有考虑。现实更加残酷(见上文),但已经太晚了,无法包含 InChIKey。

为什么是这种形状?

将钻石分成四部分是初始想法,通常在创建颜色样本时,您将得到 4 或 5 种颜色,但为了有好的补充色调,4 种颜色易于生成,菱形形状看起来也好看。为了避免与 NFPA 704 标记 混淆 - 引入了切口 - 因此形成了这种“花朵”形状。

引入了方向标记,以免在单个化合物标记时发生混淆。

如何识别物质?

随着时间的推移,根据颜色样本识别物质可能会有所挑战,因此请确保将物质的名称或 InChI 表示法放在附近,如果您只使用样本。如果您有原始图像文件,则原始物质将保存在 EXIF 元数据中。

参考

InChI 和 MInChI

颜色空间

PubChem 资源

依赖项

~18-30MB
~438K SLoC