molstar 选中指定的原子序号

更多内容请查看

最终效果:

selectAtom

/**
 * @function 选中所指定的原子序号
 */
function atomSelectionOfIndex(index: ElementIndex) {
  const atom = StructureSelectionQuery(
    "Atom",
    MolScriptBuilder.struct.modifier.union([
      MolScriptBuilder.struct.generator.atomGroups({
        "atom-test": MolScriptBuilder.core.rel.eq([
          MolScriptBuilder.acp("sourceIndex"),
          index,
        ]),
      }),
    ]),
    { category: StructureSelectionCategory.Atom }
  );
  plugin.managers.structure.selection.fromSelectionQuery("add", atom);
}
在 RDKit 中,原子序号(Atomic Number)具有重要含义和用途。原子序号是元素在元素周期表中的序号,它唯一地标识了一种化学元素。例如,氢的原子序号是 1,碳是 6,氧是 8 等。 在 RDKit 里,原子序号可用于多个方面。以下是一些常见的使用场景和示例代码: ### 从分子中获取原子原子序号 ```python from rdkit import Chem # 创建一个分子对象 mol = Chem.MolFromSmiles('CCO') # 遍历分子中的每个原子 for atom in mol.GetAtoms(): atomic_number = atom.GetAtomicNum() print(f"原子序号: {atomic_number}, 元素符号: {Chem.PeriodicTable.GetElementSymbol(Chem.GetPeriodicTable(), atomic_number)}") ``` ### 根据原子序号构建分子 ```python from rdkit import Chem # 创建一个空的分子对象 mol = Chem.RWMol() # 添加一个碳原子原子序号 6) carbon_atom = Chem.Atom(6) mol.AddAtom(carbon_atom) # 添加一个氢原子原子序号 1) hydrogen_atom = Chem.Atom(1) mol.AddAtom(hydrogen_atom) # 添加键 mol.AddBond(0, 1, Chem.BondType.SINGLE) # 转换为只读分子 final_mol = mol.GetMol() # 输出 SMILES print(Chem.MolToSmiles(final_mol)) ``` ### 根据原子序号筛选原子 ```python from rdkit import Chem mol = Chem.MolFromSmiles('CCO') # 筛选出所有碳原子原子序号 6) carbon_atoms = [atom for atom in mol.GetAtoms() if atom.GetAtomicNum() == 6] print(f"分子中碳原子的数量: {len(carbon_atoms)}") ``` 原子序号在 RDKit 中是一个基础且关键的属性,它使得在分子操作、结构构建和分析等方面能够准确地识别和处理不同的化学元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值