用于映射一系列化学反应的Python程序,其中唯一的节点只出现一次

时间:2016-08-17 17:13:00

标签: python networkx

我已经在python中编写了一个程序来编写一个化学图,其中一个例子是以下格式的文本:reactants>产品

catId

我希望我的程序在地图上为化学中的每个物种创建节点,并在反应物和产物之间绘制路径,其中一个物种在地图上只出现一次,地图上有线条代表反应中每种反应物的反应对反应中的每种产品。

我已经编写了下面的代码,但是这段代码只是简单地将每个反应都绘制在地图上并且没有连接它们,我不确定如何最好地连接反应中的常见物种。

getContents

有没有人可以告诉我最好的方法来处理这个问题,我需要一个能够识别所有反应中反应物和产物中常见物种的功能,并为每个独特的物种创建一个单独的节点,并从每个反应物到每个反应的每个产品。

非常感谢任何帮助

非常感谢

1 个答案:

答案 0 :(得分:2)

您似乎遇到的一个问题是,您没有从您解析出来的" qstrings"中的反应物/产品周围剥离空白。反应这意味着,例如' H2''H2 '被视为不同的物种,因此在图表中获得不同的节点。

您可能希望通过以下方式处理此问题:

reactants = [s.strip() for s in new[0].split('+')]
products = [s.strip() for s in new[1].split('+')]

parse_line函数中。