分子对接教程 | (3) 配体分子文件格式转换

TCGA | GEO | 文献阅读 | 数据库 理论知识

R语言 | Bioconductor | 服务器与Linux



接前文:

分子对接教程 | (1) 软件安装准备

分子对接教程 | (2) 选择合适的蛋白受体


我们知道,分子文件的格式很多,比如mol,sdf等,但AutoDock这个软件不识别sdf这样的格式文件,而我们通常下载的文件就是sdf这个格式的文件。我们需要转换成mol2或者PDB格式的文件,才能被AutoDock这个软件所读入。当然,有一些分子我们是可以从一些数据库中直接下载mol2格式文件的。比如一些中药成分小分子,我们可以从TCMSP这个数据库下载(https://tcmspw.com/),比如:quercetin

然后点击图片,下载的就是mol2格式的分子文件。

还有一个数据库能下载mol2格式的文件。ZINC(http://zinc.docking.org/),这里就不介绍了,你要是能从上面的数据库下载到你配体小分子的mol2格式文件,就直接用,如果不能,那就是去PubChem数据库(https://pubchem.ncbi.nlm.nih.gov/)下载sdf文件,然后进行转换,这也是我这里要介绍的。

首先在PubChem数据库检索你的化合物,进入相应的页面,3D Conformer处点击下载,会有sdf格式文件的下载选项。

分子格式文件的转换,需要OpenBabel这个软件,这个软件能实现各种格式转换,用起来也挺简单的。

打开软件,左侧选择我们的输入文件,是什么格式的就选择什么格式的,右侧输入文件,要什么格式选择什么格式,最后点击中间的CONVERT,就会在输出路径的下产生相应的输出文件。我这里转换成了PDB,因为mol2格式的文件我们从TCMSP这个数据库下载了。

这个错误的意思是在调用OpenCV的CascadeClassifier.detectMultiScale函数时,输入的分类器为空,即`!empty()`。 这个错误可能是由以下原因之一导致的: 1. 没有正确加载分类器文件。你应该检查分类器文件路径是否正确,以及文件是否已经成功加载。你可以使用以下代码检查分类器是否为空: ```python import cv2 # 加载人脸识别分类器 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') # 检查分类器是否为空 if face_cascade.empty(): print('Error: Failed to load classifier file') else: # 加载图片 img = cv2.imread('test.jpg') # 将图片转换为灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 在灰度图像中识别人脸 faces = face_cascade.detectMultiScale(gray, 1.3, 5) # 在原始图像中标出人脸位置 for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) # 显示图像 cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 2. 图像为空。你应该检查一下图像文件路径是否正确,以及读取的图像是否为空。你可以在调用detectMultiScale函数之前,添加一个检查图像是否为空的语句,例如: ```python import cv2 # 加载人脸识别分类器 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') # 加载图片 img = cv2.imread('test.jpg') # 检查图像是否为空 if img is None: print('Error: Failed to read image') else: # 将图片转换为灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 在灰度图像中识别人脸 faces = face_cascade.detectMultiScale(gray, 1.3, 5) # 在原始图像中标出人脸位置 for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) # 显示图像 cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这样可以避免在对空图像调用detectMultiScale函数时出现错误。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值