计算化学公社

 找回密码 Forget password
 注册 Register
Views: 2159|回复 Reply: 0

[综合交流] 从混沌到有序:用 Notion 管理计算化学数据的新思路

[复制链接 Copy URL]

275

帖子

7

威望

2370

eV
积分
2785

Level 5 (御坂)

发表于 Post on 2025-1-18 16:52:07 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 wxyhgk 于 2025-1-18 16:57 编辑

calc2Notion.png



说明:
系统:Ubuntu 22.04
CPU:AMD EPYC 7k62
声明:文章由 ChatGPT+Claude+Notion AI 辅助完成



0. 说明

我们先来看这样的一个场景:

假设我们用 Gaussian 这个计算化学软件来运行某个任务,计算完成后,我们需要对输出文件进行数据的提取,然后保存分析。

问题在于,如果运行了很多任务,那么短时间内你可能还记得数据的含义,但时间一长,你可能就不记得当时做了什么计算、为什么要做这些计算。而且这些数据后期也不好查询。

有些时候我们需要对计算任务有个整体把控,比如知道多少个原子的分子进行什么任务需要多长时间,内存消耗是多少,这样心里才有底。

原则上,我们可以手动复制粘贴到 Excel 进行数据保存和分析,这是个不错的方法。但问题在于手动复制粘贴太麻烦了,一旦任务多起来就很容易出错,也很耗时间。

现在我们有个更好的解决方案:

通过 Notion API 把计算数据自动保存到 Notion 数据库里。这样不仅省去了手动复制粘贴的麻烦,数据的备份和查找也变得特别方便。

比如我们想查之前某个分子的计算结果,或者想看看不同大小的分子计算耗时情况,在Notion里搜索一下就能找到。需要的时候还能直接导出成 Excel ,这样管理计算数据就轻松多了。

现在 Notion AI(需要氪金每个月 5 美元) 集成了 RAG 技术,可以直接问 ai 搜到已经计算的数据,如图

image.png


目前是一个比较粗糙的版本,很多我自己想搞的功能,我都还没放上去,只能一点点开发。

为了方便数据提取,目前是会提取下面的所有的数据

202501181632159815..png

整个项目的文件说明如下,这个是早期版本,后面会修改


文件名描述
环境变量部分

.env
包含 Notion API 的 token 和 DataBase 的 id
cclib 包提取数据部分

cclib_data.py
cclib数据处理
basic_info.py
1. 基本信息功能
get_electronic_structure_and_properties.py
2. 获取电子结构和性质
get_energies_and_thermodynamics.py
3. 获取能量和热力学数据
get_optimization_and_dynamics.py
4. 获取优化和动力学数据
get_spectra_and_transitions.py
5. 获取光谱和跃迁数据
atom_structure.py
6. 原子结构相关功能
format_calc.py
格式化计算结果(废弃功能)
get_data_from_log.py
从cclib 上面的提取部分获取数据导出为 md 文件
发送 Notion 部分

notion_begin_status.py
Notion初始状态处理
notion_update_status.py
Notion状态更新
create_page.py
创建页面功能
add_block.py
添加块功能
add_block_section1.py
废弃功能
数据转换部分

md2notion.py
发送 md 内容到 Notion

目前实现的效果:

数据库会保存当前计算状态、计算文件夹位置、计算开始日期,以及每个计算任务及其子任务的开始时间和数据提取结果


1. 准备工作

1.1 Notion API 的获取

到这个网站

https://www.notion.so/profile/integrations

新建一个 integrations

image 1.png

然后

image 2.png


配置相关的设置
image 3.png






然后按照我下面的操作
image 4.png




会得到类似于这种  :ntn_3068615*****qYJnVTX0vd18gkUZOCTEvDcuU1KG

保存这个 api token 后面我们要用

1.2 复制数据库 id

打开我这个链接

https://www.notion.so/Notion-API ... fa4e7ba168be?pvs=21

image 5.png


保存数据库后,然后获取database key

image 6.png


image 7.png

然后得到下面 database id

image 8.png


记住这个 database id,后面要用

1.3 数据库链接 api

然后还需要链接我们 1.1 中建立的 integrations

image 9.png


上面图中 中的名字是 1.1 步骤中的这个地方名字,下面的



1.4 服务器设置

首先确认你的服务器的 Python 版本是 Python 3.7 以上

  1. python3 -V
复制代码


image 10.png


安装 cclib Python 包
  1. pip3 install cclib
复制代码



1.5 SLUM 安装

可以看我这个博客

https://wxyhgk.com/article/ubuntu-slurm

3. 运行任务

3.1 移动文件到服务器
文件下载
https://pan.wxyhgk.com/d/local/tmp/Calc2Noiton.7z


Calc2Noiton.7z (8.47 KB, 下载次数 Times of downloads: 6)

评分 Rate

参与人数
Participants 9
威望 +1 eV +34 收起 理由
Reason
TretopL + 5 GJ!
wuil69 + 2
taciturn__ + 5 好物!
PLwang + 2 牛!
sobereva + 1
zsu007 + 5 谢谢分享
pikachuupup + 5 好物!
2877321934 + 5 GJ!
wal + 5 GJ!

查看全部评分 View all ratings

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-8-8 23:48 , Processed in 0.219893 second(s), 25 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list