# banetask_server **Repository Path**: bane-dysta/banetask_server ## Basic Information - **Project Name**: banetask_server - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-07 - **Last Updated**: 2026-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 量子化学计算系统demo ## 欢迎使用 欢迎使用量子化学计算系统!本系统由笔者个人开发,为您提供了一个简单直观的UI界面,帮助您提交计算任务到高性能计算集群,而无需掌握复杂的命令行操作! ![](https://pub-ec46b9a843f44891acf04d27fddf97e0.r2.dev/2025/04/20250413122830.png) 您可以直接提交从ChemDraw中复制出的结构,也可以在本地使用Chem3D、或由笔者开发的xTB-GUI等软件进行3d化再上传,保证立体化学结构的正确性。 在你的任务被提交到集群后,笔者开发的另一套自动计算套件将接管整个任务,并在任务完成后自动调用对应工具进行分析、绘图、整理操作。 您可以随时在任务列表中检查任务的运行情况,当任务完成后,您可以在页面上下载到分析结果的压缩包。 ![](https://pub-ec46b9a843f44891acf04d27fddf97e0.r2.dev/2025/03/20250318094920.png) ## 开始使用 ### 登录系统 ![](https://pub-ec46b9a843f44891acf04d27fddf97e0.r2.dev/2025/03/20250318094955.png) 1. **连接服务器所在局域网fenxi511**,然后打开浏览器,访问系统地址: - http://192.168.1.172:10000/ 2. 在登录页面输入您的用户名和密码(默认管理员用户密码为admin) 3. 点击"登录"按钮进入系统 > 注意:如果您合成出了强大到令人嫉妒的分子,需要保密,可以联系管理员创建私人账号。 ![](https://pub-ec46b9a843f44891acf04d27fddf97e0.r2.dev/2025/04/20250413122939.png) ### 主界面概览 成功登录后,您将看到系统的主界面: ![](https://pub-ec46b9a843f44891acf04d27fddf97e0.r2.dev/2025/03/20250318095704.png) ## 提交计算任务 ### Step1:上传分子结构 您可以通过三种方式得到可以被服务器识别的分子结构: #### 使用smiles结构式 这种方法最简单,甚至不需要自行3D化。但是对于柔性较强的分子,该方法得到的构象可能会很别扭。 - 首先,您需要使用ChemDraw绘制目标分子; - 选中该分子,``Ctrl+Alt+C``复制,然后在smiles结构式栏里粘贴即可完成上传分子结构。 #### **使用ChemOffice绘制** 这种方法是笔者比较推荐的,可以预先检查生成的立体结构是否合理 - 首先,您需要使用ChemDraw绘制目标分子; - 选中该分子,``Ctrl+C``复制,``Ctrl+V``粘贴到Chem3D中; - ``Ctrl+M``使用MM2力场优化结构,然后观察结构是否合理,比如立体化学是否与预料中一致; - ``Ctrl+Shift+S``打开另存为窗口,在保存类型下拉菜单中选择**MDL MolFile 3000** (*.mol),然后保存。 该mol文件即为最终结构文件,可以上传并被量子化学计算系统识别。 #### 使用xTB-GUI优化结构 xTB的结构优化比Chem3D强得多,但原版是纯命令行运行的。笔者为其写了个简易GUI,下载方式在web应用的软件下载页面中提供了,名为xTB-GUI-v0.2.zip。介绍页面看[这里](http://bbs.keinsci.com/forum.php?mod=viewthread&tid=50434&fromuid=63020)。 ![](https://pub-ec46b9a843f44891acf04d27fddf97e0.r2.dev/2025/03/20250318101412.png) - 双击set.bat启动,点击绘制分子按钮,此时会打开一个Chemdoodle绘板; - 在绘板上绘制分子(注意Chemdoodle绘板第一笔是画一个碳,第二笔需要在那个碳上面接着画); - 若您本地有已经在chemdraw上绘制好的分子,可以选中该分子使用``Alt+Ctrl+O``复制,然后在Chemdoodle绘板里点击红圈中的按钮,``Ctrl+V``粘贴并点击Load,即可导入分子 ![](https://pub-ec46b9a843f44891acf04d27fddf97e0.r2.dev/2025/03/20250318101539.png) - 点击导出为Smiles,然后回到xTB-GUI。填好当前分子的电荷,将导出格式选为mol,并点击运行计算; - xtb的效率是相当高的,计算应当在1分钟内结束,此时打开xtb目录下molecules文件夹,找到一个名为xtbopt.mol的文件。 该mol文件即为最终结构文件。可以使用Chem3D打开该结构观察立体化学是否合适,然后上传到任务系统中。 ### Step2:提交计算任务 - 从下拉菜单中选择"计算任务类型",目前只有前线轨道可用。 - 输入一个有意义的任务名称,后续查找任务需要使用该名称 - (可选)指定"计算目录名称",或留空由系统将自动生成 - 一切设置完毕后,点击提交任务按钮,任务将上传到服务器。 ## 查看和管理任务 ### 访问任务列表 在主界面右上角点击"查看任务列表"链接即可打开任务列表页面: ![](https://pub-ec46b9a843f44891acf04d27fddf97e0.r2.dev/2025/04/20250413123214.png) ### 检查任务状态 找到你的任务,刷新列表会更新任务状态。任务可能处于以下状态: - **任务正在进行中**:任务已提交,等待系统处理 - **任务已成功已完成**:计算已成功完成,结果可供下载 - **出错**:任务处理过程中出现错误,请报告管理员 点击任务状态文字会打开“任务状态与依赖图”弹窗: - **运行概览**:保留原有任务链摘要、任务实例、状态文件和结果标记; - **依赖图**:显示 BaneTask `%source`、`guess`、`%when` 和 `@derive` 关系,并在节点上叠加待处理、排队、运行、完成、失败、等待上游等状态; - 点击节点可高亮完整上下游,并查看状态来源、时间、调度信息、状态文件和工作目录; - 依赖图标签可切换计算依赖、派生结果或全部视图,支持搜索、缩放、矩阵展开和 SVG 导出; - 依赖图标签打开时会自动刷新状态,关闭弹窗或切回概览后停止轮询。 服务端优先使用 `btool explain` 得到与 BaneTask 一致的展开视图。部署环境没有 `btool` 或解析失败时会自动使用内置轻量解析器,并在图下方给出降级诊断;轻量解析器不展开命名空间 `.btlib` 和完整矩阵变体。 ### 下载结果 - 在任务列表中找到已完成的任务 - 点击对应的"下载结果"按钮 - 系统会从计算集群同步最新结果并打包为zip文件 - 浏览器将自动下载结果文件到您的电脑 - 您也可以在查看文件界面找到任何您想要的特定文件并下载 ### 关于轨道可视化 整个计算流程均已经彻底脚本化,但机器固定模式绘图会丢失很多细节,因此可视化仍需手动进行绘制。 #### VMD 若想要比较好的视觉效果,推荐使用VMD绘制。此软件在web应用的软件下载页面提供了本地下载,操作可以参考此贴: VMD绘图教程:[使用Multiwfn+VMD快速绘制高质量分子轨道等值面图](http://sobereva.com/447) #### Orb Viewer 由于VMD的操作比较复杂,这里提供一个替代方案:使用笔者开发的Orb_Viewer一键可视化,优点是一键完成所有绘图,并提供导出工具;缺点是绘图效果可能不如VMD。 Orb_Viewer: - web应用的软件下载页面提供了本地下载,但版本可能较旧; - 如果需要最新版,可以尝试从github上下载最新的release版:[Orbital_Viewer](https://github.com/bane-dysta/Orbital_Viewer/releases/download/v1.0.1/Orbital.Viewer.exe) - 如果上述链接打不开,也可以尝试从cloudflare获取:[Orb_Viewer.exe](https://pub-ec46b9a843f44891acf04d27fddf97e0.r2.dev/2025/03/Orbital%20Viewer.exe) 下载后,双击打开。你从量子化学计算系统中下载的任务文件包中应该有一个json文件,把它拖到Orb_Viewer的窗口里,单击回车,即可自动加载所有轨道与电子空穴: ![](https://pub-ec46b9a843f44891acf04d27fddf97e0.r2.dev/2025/03/20250318113712.png) 可以手动拖动分子调整位置,直到自己满意。``Ctrl+鼠标拖动``可以拖动位置,滚轮缩放。 每个轨道组都有独立的截图按钮,可以单独截图,也可以在页面上方找到一键截图得到一张大图。如果不想要截图里带性质,可以把Note选项卡里的内容删掉。另外在轨道区域外``Ctrl+滚轮``可以改变浏览器页面缩放,大约放大到175%的时候会自适应为单行单轨道,此时截图会比单行双列效果更好。 ## Q & A ### 我可以同时提交多个任务吗? 是的,您可以提交多个任务,系统会将它们排队处理。 ### 为什么我的任务一直处于"等待处理"状态? 自动计算脚本每隔一段时间运行一次,请耐心等待。若您发现任务文件列表数小时内没有任何变化,请联系管理员检查后台脚本运行情况。 ### 计算结果会保存多久? 如果不手动删除,计算文件将永久保留。尽管如此,我们仍然建议您及时下载并备份重要结果。 ## 获取帮助 如果您在使用过程中遇到任何问题或需要进一步的帮助,请联系系统管理员。 祝您使用愉快! # 安装 ## 目录结构 - `/config` - 配置文件 - `/templates` - 计算任务模板 - `/jobs` - 任务信息和上传的文件 - `/static` - 静态资源文件 - `/js` - JavaScript文件,包括OpenBabel WebAssembly - `/templates` - HTML模板 - `/output` - 计算输出目录 - `/calculations` - 计算任务工作目录 ## docker 以Rocky Linux 8.10为例: ```bash sudo dnf update -y sudo dnf install -y dnf-utils sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo sed -i 's#https://download.docker.com#https://mirrors.aliyun.com/docker-ce#g' /etc/yum.repos.d/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo systemctl start docker sudo systemctl enable docker sudo systemctl status docker sudo docker --version sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.hpcloud.cloud", "https://docker.m.daocloud.io", "https://docker.unsee.tech", "https://docker.1panel.live", "http://mirrors.ustc.edu.cn", "https://docker.chenby.cn", "http://mirror.azure.cn", "https://dockerpull.org", "https://dockerhub.icu", "https://hub.rat.dev" ] } EOF sudo systemctl daemon-reload sudo systemctl restart docker sudo docker run hello-world sudo usermod -aG docker sun newgrp docker su sun docker run hello-world ``` ## 装载docker镜像 ```bash docker load -i /apps/dockers/local_ver/local_webchem_server.tar ########################### -v $(pwd)/calculations:/app/calculations 这个映射要映射在硬盘上 ############################## docker run -d \ --name webchem_server \ -p 5005:5000 \ -v $(pwd):/app \ -v $(pwd)/jobs:/app/jobs \ -v /data/s01_data/calculation:/app/calculations \ -v $(pwd)/config:/app/config \ -e FLASK_APP=app.py \ -e FLASK_ENV=development \ -e FLASK_DEBUG=1 \ -e PUID=1000 \ # 指定用户ID,应匹配主机上的用户ID -e PGID=1000 \ # 指定组ID,应匹配主机上的用户组ID local_webchem_server ``` ### 使用Docker Compose运行 也可以使用Docker Compose来启动服务: ```bash # 创建数据目录 mkdir -p data/config data/queue data/jobs data/output data/calculations # 启动服务 docker-compose up -d ``` Docker Compose会自动创建必要的数据目录并设置正确的权限。 ### BaneTask 依赖图配置 Compose 文件已经暴露以下可选环境变量: | 环境变量 | 默认值 | 作用 | |---|---:|---| | `WEBCHEM_TASK_GRAPH_PARSER` | `auto` | 图解析器:`auto`、`btool` 或 `builtin` | | `WEBCHEM_TASK_GRAPH_TIMEOUT` | `20` | 外部解析命令超时秒数,限制在 1–120 秒 | | `WEBCHEM_TASK_GRAPH_EXPANDED` | `0` | 默认是否展开矩阵任务;页面也可临时切换 | | `WEBCHEM_TASK_GRAPH_DERIVES` | `1` | 是否显示 `@derive` 节点 | | `WEBCHEM_TASK_GRAPH_EXACT_DERIVES` | `0` | 是否调用 `banetask --explain-derives` 获取精确依赖 | | `WEBCHEM_TASK_GRAPH_BTOOL` | 空 | 可选的 `btool` 可执行文件路径或命令名 | | `WEBCHEM_TASK_GRAPH_BANETASK` | 空 | 可选的 `banetask` 可执行文件路径或命令名 | 建议保留 `PARSER=auto` 和 `EXACT_DERIVES=0`:普通请求优先使用 `btool`,不可用时自动降级,同时避免页面请求触发额外的 banetask 分析进程。 ### 文件权限问题 容器内的文件默认由非root用户(appuser)创建,其UID和GID默认为1000。如果您需要在主机上访问这些文件,可以通过在docker-compose.yaml或docker run命令中设置PUID和PGID环境变量来匹配您主机上的用户: ```bash # 查看当前用户的UID和GID id -u # 显示用户ID id -g # 显示组ID # 然后在启动容器时指定这些值 docker run -e PUID=$(id -u) -e PGID=$(id -g) ... ``` 或者在docker-compose.yaml中修改PUID和PGID值。 ## 安装tasker ```bash git clone https://gitee.com/bane-dysta/tasks.git ``` 当前计算文件的目录为`/apps/dockers/local_ver/calculations`,修改env.sh: ```bash ## This line export AUTOTASKER_CALC_PATH="$HOME/AutoCalc/tasks" ## should be change to: export AUTOTASKER_CALC_PATH="/apps/dockers/local_ver/calculations" ## These lines should also be change export GAUSSIAN_PATH="${GAUSSIAN_PATH:-$HOME/apprepo/gaussian/16-hy/app/g16}" export AUTOTASK_EXTERNAL_SCRIPTS_PATH="${AUTOTASK_EXTERNAL_SCRIPTS_PATH:-$HOME/scripts/bin}" export MULTIWFN_PATH="${MULTIWFN_PATH:-$HOME/apprepo/Multiwfn/3.8-Updated_on_2024_Feb_20/app/Multiwfn_3.8_dev_bin_Linux}" export OMP_STACKSIZE="${OMP_STACKSIZE:-200M}" ``` 修改sges.sh: ``` input_folder="$HOME/dockers/local_webchem_server/calculations" # 根据需要修改此路径 source /etc/profile #source $HOME/apps/miniconda3/etc/profile.d/conda.sh #conda activate rdkitenv source $HOME/apps/tasks/env.sh /apps/miniconda/envs/obabel/bin/python $AUTOTASKER_BASE_PATH/task_module.py # 调用Python脚本 source /apps/gaussian16/env.sh ```