You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用RDKit提取肽段原子对指纹时报GetAtomPairFingerprint参数类型错误

报错原因
  • 调用rdkit.Chem.AtomPairs.Pairs.GetAtomPairFingerprint()时,输入参数要求为RDKit的Mol对象,你的代码中把Chem.MolFromFASTA(item)生成的Mol对象额外用MolToSmiles转成了SMILES字符串,传入字符串和要求的参数类型不匹配,因此触发类型错误。
修正后的代码
pos = "/content/drive/MyDrive/pepfun/Training_format_pos (1).txt"

# pos sequences extract into list
with open(pos, 'r') as f:
    data = f.read()
newdatapos = data.splitlines()
print(newdatapos)

!pip install rdkit-pypi
import rdkit
from rdkit import Chem
from rdkit.Chem.AtomPairs import Pairs

fingerprintpos = []
for item in newdatapos:
    # 直接生成Mol对象,无需转SMILES
    mol = Chem.MolFromFASTA(item)
    # 增加合法性校验,避免FASTA解析失败返回None导致后续报错
    if mol is None:
        print(f"警告:序列 {item} 解析失败,已跳过")
        continue
    atompos = Pairs.GetAtomPairFingerprint(mol)  
    fingerprintpos.append(atompos)

print(fingerprintpos)
额外优化建议
  • 用with open语法读取文件,可以自动关闭文件句柄,避免手动关闭遗漏的问题
  • 增加Mol对象非空校验,避免部分无效FASTA序列解析失败后触发空值调用报错

内容的提问来源于stack exchange,提问作者Ash Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:45:03