AI4Green开源ELN(电子实验记录本)

这篇具有很好参考价值的文章主要介绍了AI4Green开源ELN(电子实验记录本)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

AI4Green是一个开源的电子实验记录本,官网:https://github.com/AI4Green/ai4green

国内镜像:

skywalk163/AI4Green - AI4Green - OpenI - 启智AI开源社区提供普惠算力!

论文地址:https://pubs.acs.org/doi/10.1021/acs.jcim.3c00306#

另一个开源的:https://github.com/epam/Indigo-ELN-v.-2.0 

https://gitee.com/mirrors_epam/Indigo-ELN-v.-2.0

AI4Green介绍

AI4Green 是一个基于 Web 的应用程序,可作为开源代码免费使用。它提供了ELN的核心功能,即能够安全地存储反应并在研究团队的不同成员之间共享它们。当用户计划他们的反应并将其记录在ELN中时,通过自动计算绿色指标和颜色编码危害、溶剂和反应条件来鼓励绿色和可持续的化学。该接口链接了一个由从 PubChem 中提取的数据构建的数据库,从而能够自动整理反应信息。该应用的设计有助于开发辅助可持续性应用,例如我们的溶剂指南。随着捕获更多的反应数据,后续工作将包括向用户提供“智能”可持续性建议。

AI4Green开源ELN(电子实验记录本),开源,生物制药,ELN

特色功能:

完成反应表后,用户将被定向到汇总表(上图)。信息会自动从反应表传递到汇总表。向用户显示反应的绿色性和可持续性的视觉评估。这些要么被标记为不可持续(红色),要么被赋予红绿灯系统(红色 = 不推荐/危险,黄色 = 有问题,绿色 = 推荐)。可以在辅助功能页面上更改这些评级的特定颜色和阴影。根据危险代码生成总体危险等级,表示为低 (L)、中 (M)、危险 (H) 或非常危险 (VH)。以下指标的可持续性水平阈值符合 CHEM21 项目。(27)其中一些指标是自动计算的,例如反应中使用的化学元素的可持续性和原子效率。其他指标必须由用户输入,例如反应温度、间歇或流动反应条件、分离方法、催化剂的使用以及该催化剂是否被回收。接下来是风险评估部分,允许用户识别标准协议、废物处理、溢出程序以及与反应相关的任何其他风险。然后,可以通过对反应的危害、风险和后果进行自我评估来计算总体风险评分。通常,此时将进行反应。反应运行后,用户可以返回汇总表并输入未反应和实际产品质量。使用这些输入,可以计算出另外四个指标:质量效率、产量、转化率和选择性。在此阶段,可以将反应标记为完成并锁定以进行进一步编辑。 为了提高数据完整性,反应修改在数据库中带有时间戳。反应当前可以按字母顺序或最近创建的内容进行搜索。

开始安装

AI4Green有两种安装方法,一种是docker,一种是普通的配置python环境安装。

docker安装适合快速展示其功能。

下面介绍python安装

先安装python

wget https://mirrors4.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh
sh Miniconda3-py38_4.9.2-Linux-x86_64.sh 

再安装需要的python库:

发现它没有requirements.txt文件,补上一个:

python-dotenv
flask_login 
flask_marshmallow
flask_migrate 
flask_mail
flask_wtf
flask_db
pytz
psycopg2-binary 
chemspipy
bs4
lxml
pyyaml
werkzeug
marshmallow_sqlalchemy
python-magic
azure-core
azure-storage-blob
plotly
toml

在docker里面找到了它的requirements.txt文件

beautifulsoup4==4.9.3
certifi==2021.10.8
ChemSpiPy==2.0.0
click==8.0.3
email-validator==1.1.3
Flask==2.0.1
Flask-Login==0.5.0
Flask-Mail==0.9.1
Flask-Testing==0.8.1
Flask-WTF==0.14.3
itsdangerous==2.0.1
Jinja2==3.0.2
lxml==4.6.3
pandas==1.4.1
pip==21.2.4
pony==0.7.14
psycopg2-binary==2.9.3
PyJWT==2.1.0
python-dateutil==2.8.2
python-decouple==3.5
pytz==2021.3
pyyaml==6.0
requests==2.26.0
selenium==3.141.0
setuptools==58.0.4
soupsieve==2.3.1
urllib3==1.26.7
Werkzeug==2.0.3
wheel==0.37.1
WTForms==2.3.3
plotly==5.9.0

另外它还需要安装rdkit这个库!
 

在配置python环境时,发现它是使用conda的,众所周知,conda有时候会比较慢,所以换用了pip安装,但是整个项目都没有找到requirements.txt文件,于是只好手工试出来这些库。当然最终是从项目里面找到了官方的文件,发现很多库版本都是写死的,这也是为什么刚开始手工试出来这些库还是无法成功运行的原因。

数据库

数据库那边,看得不是很明白,是不是需要先安装一个postgre库呢? 还是直接使用sqlalchery就可以了呢?

先回答这个问题:

直接启动,它会提示:`Starting app in test/development mode with sqlite database`也就是使用了测试开发模式,使用了sqlite数据库。

安装过程中碰到的问题:

按照手册单步执行,数据集flask db upgrade这句没法执行,报错`Error: No such command 'db'.`

后面执行下载数据集`flask download-pubchem`,也是卡住

  for prop in model.__mapper__.attrs:
Downloading PubChem database file: http://ftp.ncbi.nlm.nih.gov/pubchem/Compound/Extras/CID-LCSS.xml.gz and saving as Pubchem-Database

关于flask数据库的操作,可以参考这个文档:在 Flask应用中使用Flask-SQLAlchemy管理数据库 - 知乎

查看docker里面,发现其执行命令为:

# init a base image
FROM continuumio/miniconda3
# Create the environment:
COPY environment.yaml .
RUN conda env create -f environment.yaml
# Make RUN commands use the new environment:
SHELL ["conda", "run", "-n", "ai4green", "/bin/bash", "-c"]
# install RDKit
RUN conda install -c conda-forge rdkit
# run pip to install the dependencies of the flask app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
# The code to run when container is started:
COPY . .
EXPOSE 80
ENTRYPOINT ["conda", "run", "--no-capture-output", "-n", "ai4green", "python", "Webapp/app.py"]

而且github中的,和docker里面的,文件都不一样。比如github里面没有requirements.txt config.py configs.yaml 等文件。

手工安装的时候,最后会报错:

(ai4green) skywalk@ub:~/work/Webapp$ python app.py 
Traceback (most recent call last):
  File "app.py", line 4, in <module>
    from sources import app
  File "/home/skywalk/work/Webapp/sources/__init__.py", line 10, in <module>
    from flask_login import LoginManager  # imports the login manager from Flask-Login
  File "/home/skywalk/py39/envs/ai4green/lib/python3.8/site-packages/flask_login/__init__.py", line 16, in <module>
    from .login_manager import LoginManager
  File "/home/skywalk/py39/envs/ai4green/lib/python3.8/site-packages/flask_login/login_manager.py", line 12, in <module>
    from flask import (_request_ctx_stack, abort, current_app, flash, redirect,
ImportError: cannot import name '_request_ctx_stack' from 'flask' (/home/skywalk/py39/envs/ai4green/lib/python3.8/site-packages/flask/__init__.py)

 将flask版本降低到2.01,搞定:

Flask==2.0.1

pip install  Flask==2.0.1

后来发现整个flask的库版本都要降低,一个个试最后放弃了。最终是在项目的docker环境里找到了requirements.txt文件,否则真不知道要试到什么时候。

安装总结:

现在采用的安装方式是一种折中的方案,即用python安装,但是使用docker里面的文件(启动docker,从里面拷贝出来),运行采用测试开发模式。

marvin需要注册的问题

注册地址:Chemicalize Professional - Hosted Cheminformatics Solutions

也就是这个系统最终需要联网使用,需要先到pro.chemicalize.com/app注册一个key,画图使用marvin的时候,都要到联网验证这个key。 因此不联网是无法使用的。

jquery加速问题:

配置好后,执行python Webapp/app.py 即可打开web服务。测试时发现网页打开很慢,尤其是jquery的代码读取,卡住好大一会儿!

解决的方法就是将jquery的js代码下到本地,修改成本地static读取

src="https://code.jquery.com/jquery-3.7.0.js" 
 
# 修改为:
 
src="/static/jquery/jquery-3.7.0.js" 
 
# 同样的jquery-2.2.4.min.js文件也做同样处理

具体参考:前端cdn、ajax、code等加速-CSDN博客

总结:

Linux下docker和python都调通。FreeBSD下python能启动,但是画图之后,提交失败,无法进入反应过程。

AI4Green是一个比较出色的开源电子实验记录本ELN,稍加修改,还是能满足创业医药公司使用的。

其它电子实验记录本还有哪些,欢迎朋友们留言提供信息!

安装过程步骤:

wget https://mirrors4.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh
sh Miniconda3-py38_4.9.2-Linux-x86_64.sh 

# 将python3.8安装到py38目录,激活pythn环境。conda安装时选择激活,则下次登录的时候自动激活。
source py38/bin/activate
# 设置pip全局镜像
pip config --global set global.index-url https://mirror.baidu.com/pypi/simple/
# 若全局报错,则添加用户镜像
pip config --user  set global.index-url https://mirror.baidu.com/pypi/simple/ 

下载ai4green源代码
mkdir github
cd github
git clone https://openi.pcl.ac.cn/skywalk163/ai4green

进入ai4green安装库
cd ai4green/Webapp
pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
# 或
pip install -r req.txt -i https://mirror.baidu.com/pypi/simple

新的requirements.txt文件,暂时还是用repo里的req.txt:

beautifulsoup4==4.9.3
certifi==2021.10.8
ChemSpiPy==2.0.0
click==8.0.3
email-validator==1.1.3
Flask==2.0.1
Flask-Login==0.5.0
Flask-Mail==0.9.1
Flask-Testing==0.8.1
Flask-WTF==0.14.3
itsdangerous==2.0.1
Jinja2==3.0.2
lxml==4.6.3
pandas==1.4.1
pip==21.2.4
# pony==0.7.14
pony
psycopg2-binary==2.9.3
PyJWT==2.1.0
python-dateutil==2.8.2
python-decouple==3.5
pytz==2021.3
pyyaml==6.0
requests==2.26.0
selenium==3.141.0
setuptools==58.0.4
soupsieve==2.3.1
urllib3==1.26.7
Werkzeug==2.0.3
wheel==0.37.1
WTForms==2.3.3
plotly==5.9.0
rdkit

好吧,还是没有弄好,想合并两个依赖库文件,但是发现效果未必好,还是先pip安装第一个,再安装第二个吧!

如果还是反复flask和sqlalchemy报错,则需要到官方的docker里面,拿里面的代码。我发现那里面的代码跟github上的不一样,官方github的代码会一直报错:  cannot import name 'app_ctx' from 'flask.globals'  ,这个地方坑了我两次! 

一次是docker里面能启动,但是pip安装环境不能启动,后来是cp了docker里面的代码才搞定。

第二次是,想尝试在新的机器安装并总结出快速安装的步骤,结果一直报错,无法启动。后来才想起来是代码不一致的问题。

调试:

FreeBSD下安装virtualbox 报错:

freebsd下pkg安装virtual box报错:pkg: cached package lzo2-2.10_1: missing or size mismatch, cannot continue Consider running 'pkg update -f'

解决的方法,是重新设定pkg的源使用latest

FreeBSD: {
  url: "http://mirrors.ustc.edu.cn/freebsd-pkg/${ABI}/quarterly",
}

放置在/usr/local/etc/pkg/repos

同样的,/etc/make.conf文件也重新写了一下

报错:

    from werkzeug.urls import url_quote
ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/home/skywalk/py39/envs/ai4green/lib/python3.8/site-packages/werkzeug/urls.py)

将werkzeug的版本也降下来

报错:

    from flask.globals import app_ctx
ImportError: cannot import name 'app_ctx' from 'flask.globals' (/home/skywalk/py39/envs/ai4green/lib/python3.8/site-packages/flask/globals.py)

究其原因是flask的版本太高了,降低到2.x, flask-sqlalchemy的版本也要降低:

pip install Flask-sqlalchemy==2.0.0

最根本原因是docker里面使用了conda常见flask环境,没有见到这些flask的版本限制。

(若还有问题,升级到2.4版本,如下)

报错:ModuleNotFoundError: No module named 'flask.ext'

    from flask.ext.sqlalchemy._compat import iteritems, itervalues, xrange, \
ModuleNotFoundError: No module named 'flask.ext'

把flask_sqlalchemy版本降低到2.4-2.5 大约问题解决。

报错:

 File "/home/skywalk/py39/envs/ai4green/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", line 79, in _include_sqlalchemy
    for key in module.__all__:
AttributeError: module 'sqlalchemy' has no attribute '__all__'

解决方法;pip install sqlalchemy==1.4.40

报错:

 self.SQLAlchemySchema.OPTIONS_CLASS.session = db.session
AttributeError: '_SQLAlchemyState' object has no attribute 'session'

先上结论:flask的sqlalchemy也是乱的一塌糊涂啊!

https://wiki.freebsd.org/VirtualBox

多亏后面找到了库依赖文件,不然一个一个试,会让人中途放弃的。

升级:pip install sqlalchemy==2.0.23

FreeBSD下画分子图后无法提交

无法提交,提交报错`Cannot process Reactant 1 structure` ,无法进入下一步反应模式,但是在Linux就正常。

这样就不能用FreeBSD平台了。

flask db upgrade数据库更新命令报错

```

Starting app in test/development mode with sqlite database
PONY_TEST
Usage: flask [OPTIONS] COMMAND [ARGS]...
Try 'flask --help' for help.

Error: No such command 'db'.

```

可能需要前面一步步慢慢来吧,中间过程没法跳过。不够关键这是flask的报错啊,版本应该是对的啊! 不过FreeBSD下因为安装RDKIT,导致只能放在系统目录,不能放在venv虚拟目录,可能这也是导致问题发生的原因。

报错cannot import name 'safe_str_cmp'

    from werkzeug.security import safe_str_cmp
ImportError: cannot import name 'safe_str_cmp' from 'werkzeug.security' (/mnt/data/work/py38/lib/python3.8/site-packages/werkzeug/security.py)

安装2.0版本解决: pip install werkzeug==2.0

报错:ImportError: libXrender.so.1: cannot open shared object file: No such file or directory

解决方法: sudo apt install libxrender1

ubuntu下wifi设置

先查看无线网卡,可以用ifconfig ,若是看不到,用ifconfig -a 

然后搜索wifi网络,用sudo iw dev wlp3s0 scan | more

然后写配置文件

$sudo -i
# wpa_passphrase mywireless secretpassphrase > /etc/wpa_supplicant/wpa_supplicant.conf
特殊说明:
1、mywireless 表示你要登录的 wifi 名字
2、secretpassphrase 表示 wifi 登录的密码 

最后是加载配置文件:wpa_supplicant -i wlp3s0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B

我使用的时候没有加-B选项

 参考这篇文档:Ubuntu使用命令行配置WIFI_ubuntu无线网-CSDN博客

 报错:libXext.so.6

from rdkit.Chem.Draw import rdMolDraw2D
ImportError: libXext.so.6: cannot open shared object file: No such file or directory

解决方法:apt install libxext6 文章来源地址https://www.toymoban.com/news/detail-768288.html

到了这里,关于AI4Green开源ELN(电子实验记录本)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 上海AI实验室等开源,音频、音乐统一开发工具包Amphion

    上海AI实验室、香港中文大学数据科学院、深圳大数据研究院联合开源了一个名为Amphion的音频、音乐和语音生成工具包。 Amphion可帮助开发人员研究文本生成音频、音乐等与音频相关的领域,可以在一个框架内完成,以解决生成模型黑箱、代码库分散、缺少评估指标等难题。

    2024年01月21日
    浏览(55)
  • 英伟达黄仁勋发布GB200,比H100推理能力提高30倍,能耗降低25倍,将AI4S能力做成微服务

    「AI 的 iPhone 时刻已经到来。」黄仁勋在英伟达 GTC 2023 上的金句言犹在耳,这一年,AI 的发展也印证了其所言非虚。 多年来,伴随 AI 发展提速,加之英伟达的技术与生态护城河难以撼动,GTC 已经从最初的技术会议逐渐升级为全产业链共同关注的 AI 行业盛会,英伟达秀出的「

    2024年03月27日
    浏览(42)
  • gcc与green hill的比较结果

    最近在车企做汽车电子,发现使用的一款编译器Green Hill编译器,是部署在服务器上的: GreenHill是一款共享的嵌入式实时操作系统,使用需要付费,这里只介绍一些基本的东西,有用到就参考,没用到就自己看。。。。 1、设置配置文件 文件名:E:ProjectPearlSWDevMgmnt_SSsrcXL

    2024年02月05日
    浏览(40)
  • 每日一看大模型新闻(12.26下)假扮卧底,骗AI泄露代码拯救人类? 斯坦福小哥用GPT-4开发游戏惊呆网友;上海AI实验室开源医疗大模型群“浦医2.0”;“算命”AI:600万人数据训练,可预测健康

    发布日期 :2023.12.26 假扮卧底,骗AI泄露代码拯救人类? 斯坦福小哥用GPT-4开发游戏惊呆网友 主要内容 :最近,一款名为「Thus Spoke Zaranova」的AI游戏震惊了网友。这款游戏由ChatGPT、DALL·E 3和Midjourney等AI联合开发, 背景设定在一个名为The Nexus的虚拟空间,人类与AI在此发生冲

    2024年02月20日
    浏览(60)
  • NJUPT【电工电子基础实验】

    1、使用Multisim软件,对电路进行仿真,需要用到如下几种元器件 2、选择合适的参数画出4种电路,如下图 tips:ctrl+r 旋转元器件;双击元器件修改参数;点击管脚引出导线; 3、分别测量 RC电路:半功率点频率、电压比和相位差 RL电路:半功率点频率、电压比和相位差 RLC电路

    2024年04月09日
    浏览(55)
  • 电路与电子线路实验二-mutisim仿真实验——北京理工大学

    实验一 一、实验步骤 元器件的调用与参数设置 调用电阻Rg_1=400kΩ,Rg_2=200kΩ,  Rd=2kΩ,  Rs=0.5kΩ,  RL=2kΩ 电容C1=C2=C3=100μF 直流电压源Vd=12V 交流信号源Vs,其中Vpp=1mV,f=1kHz,AC=1mV,电流偏置为零 接地符,以及2N7000三极管 组成以下电路   分析类型的设置 1.直流工作点分析:DC 数

    2024年02月06日
    浏览(54)
  • HNU电路电子学实验二

    1.了解简易模型机的内部结构和工作原理。 2.熟悉译码器、运算器的工作原理。 3.分析模型机的功能,设计指令译码器。 4.分析模型机的功能,设计 ALU。 用 VERILOG 语言设计指令译码器; 用 VERILOG 语言设计ALU。 A)创建工程(选择的芯片为 family=Cyclone II;name=EP2C5T144C8)

    2024年02月05日
    浏览(47)
  • 西电电子线路实验课程设计通关模板

    # 西电电子线路实验课程设计通关模板 实验要求:改示波器为简易逻辑分析仪 该模板适用于西电计科专业大三上电子线路实验课设,一般都是给电路图和面包板,个人独立完成通用示波器改简易逻辑分析仪实验。这是一个必须过的实验,挂了需要第二年再做,所以贡献本人当

    2024年02月05日
    浏览(43)
  • HNU-电路与电子学-实验4

    班级     计XXXXX         姓名     wolf        学号      2021080XXXXX     一、实验目的 1.了解模型机中 SM 的作用。 2.熟悉指令寄存器、状态寄存器、指令计数器、寄存器的工作原理 3.学会使用 VERILOG 语言设计时序电路。 二、实验内容 1.用 VERILOG 语言设计 SM; 2.

    2024年02月05日
    浏览(40)
  • HNU-电路与电子学-实验3

    班级     计XXXXX         姓名      wolf        学号      2021080XXXXX    一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计移位逻辑。 4.分析模型机的工作原理,设计模型机控制

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包