我有一个非常简单的python脚本,它在一个分子样本和一个分子数据库之间运行Tanimoto相似性索引:
from openbabel import pybel
def get_similar(targetmol):
results = []
# calculate fingerprints of the sample
targetfp = targetmol.calcfp()
for mol in pybel.readfile("smi", "/path/to/db.smi"):
# calculate fingerprints of the db
fp = mol.calcfp()
# calculate the Tanimoto index via the "|" operator
tan = fp | targetfp
if tan[0] >= 0.8:
results.append(tan)
return results
targetmol = next(pybel.readfile("smi", "/path/to/sample.smi"))
print(get_similar(targetmol))我在这里的目标是将此功能添加到我与Django一起开发的网站中。
理想情况下,用户将提交他们自己的分子,并收到一个列表的最相似的在我的数据库中出现在一个新的网页,作为一个点击功能。
这里我需要做的是让脚本使用用户的分子作为示例,但最重要的是,我不知道如何在Django框架中部署这个函数。
因为我知道这不是一个代码商店,所以我只想得到一个清晰的解释:如何注册我的函数,如何将它称为按下函数,以及为了让脚本使用用户的分子而不是sample.smi,我必须改变什么。
作为参考,我从这个回购https://github.com/michal-stuglik/django-blastplus中获得了灵感,但是由于我对python和Django的了解很少,所以我迷路了。
感谢你花时间阅读,并最终回答我。
系统
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
Django==3.1.13
django-admin==2.0.1
openbabel-wheel==3.1.1.7发布于 2022-07-28 09:18:05
我不知道你想要实现什么。但是,如果要开发一个简单的网站,用户可以上传一个描述分子样本的文件来运行脚本并检索类似的脚本,那么我会给出以下的答案。
您应该开始使用Django创建一个小视图,它将显示一个带有文件输入的表单,使用户能够上传分子的文件。然后,在您的视图中,您应该读取由用户上传的文件,通过您的函数传递它,然后将匹配返回给用户。
您可以阅读更多有关如何创建视图(此页面上的表单:https://docs.djangoproject.com/en/4.0/topics/forms/ )的内容。
我的解释只是一个小小的概述,你应该做什么,毫不犹豫地问我更具体的问题!
https://stackoverflow.com/questions/73150169
复制相似问题