首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从原子和键列表绘制分子的2D和/或3D图

绘制分子的2D和3D图可以使用多种工具和库。以下是一些常用的方法和库,帮助你从原子和键列表绘制分子的2D和3D图。

使用 RDKit 绘制 2D 分子图

RDKit 是一个用于化学信息学的开源工具包,支持分子的2D绘制。你可以使用 RDKit 从原子和键列表生成分子对象,并绘制其2D图。

安装 RDKit

首先,确保你已经安装了 RDKit。你可以使用 conda 安装:

代码语言:javascript
复制
conda install -c conda-forge rdkit

使用 RDKit 绘制 2D 分子图

以下是一个示例代码,展示如何使用 RDKit 绘制2D分子图:

代码语言:javascript
复制
from rdkit import Chem
from rdkit.Chem import Draw

# 创建分子对象
mol = Chem.MolFromSmiles('CCO')  # 例如,乙醇

# 绘制2D分子图
img = Draw.MolToImage(mol)
img.show()

使用 Py3Dmol 绘制 3D 分子图

Py3Dmol 是一个用于3D分子可视化的Python库。你可以使用 Py3Dmol 从原子和键列表生成分子对象,并绘制其3D图。

安装 Py3Dmol

你可以使用 pip 安装 Py3Dmol:

代码语言:javascript
复制
pip install py3Dmol

使用 Py3Dmol 绘制 3D 分子图

以下是一个示例代码,展示如何使用 Py3Dmol 绘制3D分子图:

代码语言:javascript
复制
import py3Dmol

# 创建3D分子对象
view = py3Dmol.view(query='molecule:CCO')  # 例如,乙醇
view.setStyle({'stick': {}})
view.show()

使用 Open Babel 绘制 2D 和 3D 分子图

Open Babel 是一个用于化学信息学的开源工具包,支持分子的2D和3D绘制。你可以使用 Open Babel 从原子和键列表生成分子对象,并绘制其2D和3D图。

安装 Open Babel

你可以使用 conda 安装 Open Babel:

代码语言:javascript
复制
conda install -c conda-forge openbabel

使用 Open Babel 绘制 2D 和 3D 分子图

以下是一个示例代码,展示如何使用 Open Babel 绘制2D和3D分子图:

代码语言:javascript
复制
import openbabel

# 创建分子对象
obConversion = openbabel.OBConversion()
obConversion.SetInAndOutFormats("smi", "mol")
mol = openbabel.OBMol()
obConversion.ReadString(mol, "CCO")  # 例如,乙醇

# 绘制2D分子图
obConversion.SetOutFormat("svg")
svg = obConversion.WriteString(mol)
with open("molecule_2d.svg", "w") as f:
    f.write(svg)

# 绘制3D分子图
obConversion.SetOutFormat("xyz")
xyz = obConversion.WriteString(mol)
with open("molecule_3d.xyz", "w") as f:
    f.write(xyz)

使用 JSmol 绘制 3D 分子图

JSmol 是一个用于3D分子可视化的JavaScript库。你可以使用 JSmol 在网页中嵌入3D分子图。

使用 JSmol 绘制 3D 分子图

以下是一个示例代码,展示如何使用 JSmol 绘制3D分子图:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="https://chemapps.stolaf.edu/jmol/jsmol/JSmol.min.js"></script>
</head>
<body>
    <script type="text/javascript">
        var Info = {
            width: 500,
            height: 500,
            use: "HTML5",
            j2sPath: "https://chemapps.stolaf.edu/jmol/jsmol/j2s",
            script: "load data/mol/ethanol.mol; wireframe only; spacefill 20%;",
            debug: false
        };
        Jmol.getApplet("jmolApplet0", Info);
    </script>
    <div id="jmolApplet0" style="width: 500px; height: 500px;"></div>
</body>
</html>
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券