量子化学计算自动化

qmflows的Python项目详细描述


https://img.shields.io/github/license/SCM-NV/qmflows.svg?maxAge=2592000https://travis-ci.org/SCM-NV/qmflows.svg?branch=masterhttps://img.shields.io/badge/python-3.5-blue.svghttps://api.codacy.com/project/badge/Grade/7e95b6d4d873458daf0de5e4b3110885https://api.codacy.com/project/badge/Coverage/7e95b6d4d873458daf0de5e4b3110885

qmflows

有关教程和文档,请参见http://scm-nv.github.io/qmflows/

动机

现代计算量子化学的研究依赖于一套计算方法 进行计算的工具。计算的复杂性通常需要 上述工具之间的相互通信,这种通信通常是 通过尝试自动执行输入/输出操作的shell脚本,例如:启动 集群中的计算,读取结果输出并提供相关的 另一个程序的数值结果。这样的脚本很难维护和扩展, 需要重要的编程专业知识才能与他们合作。在那时是可取的 一套自动和可扩展的工具,允许在 异构硬件平台。

该库解决了计算化学工作流程的构建和高效执行问题。 这使得计算化学家能够在 一种简单的方式,专注于科学数据的解释,而不是单调乏味的工作提交 程序和手动数据处理。

说明

这个库由一组用python 3.5编写的模块组成 自动执行以下任务:

  1. Input generation.
  2. Handle tasks dependencies (Noodles).
  3. Advanced molecular manipulation capabilities with (rdkit).
  4. Numerical data storage and manipulation (HDF5).
  5. Jobs failure detection and recovery.
  6. Distribution in heterogeneous hardware platforms.

教程和示例

jupyter-notebook形式编写的教程可从tutorial-qmflows获得。你可以 也可以直接访问更高级的examples

安装

  • 下载miniconda for python>;=3.5:miniconda(也可以安装完整的anaconda版本)。
  • 根据installConda安装。
  • 重新打开终端(或键入source ~/.bashrc)。
  • 使用以下命令创建新的虚拟环境:
    • conda create -n qmflows python=3.5
  • 激活新的虚拟环境
    • source activate qmflows

退出虚拟环境类型^ {tT4}$。

依赖项安装

使用conda环境时,应安装以下软件包:

  • 使用以下命令安装rdkit
    • conda install -y-q--name qmflows -chttps://conda.anaconda.org/rdkit rdkit
  • 使用conda:
      安装HDF5
    • conda install -y-q--name qmflows -c anaconda h5py

包安装

  • 输入您的终端,

    source activate qmflows

  • 然后

    pip install qmflows --upgrade

现在您可以使用qmflows

最新稳定版本

如果您想直接从github安装最新的稳定版本 您可以使用以下命令:

pip install https://github.com/SCM-NV/qmflows/tarball/master#egg=qmflows

Notes:

  • Once the libraries and the virtual environment are installed, you only need to type ^{tt3}$ each time that you want to use the software.

远程/氙气设置

qmflows支持在各种集群计算调度程序上运行作业 像泥浆和扭矩。你在笔记本电脑上编程和运行你的工作流,但是 作业在远程站点上运行。为此,您需要设置qmflows 本地和远程。此外,还需要添加一个bash脚本来加载 virtualenv启动了面条远程工作者。这个远程工作者充当 一个试点工作,从输入中读取工作描述并返回结果。如果 您定义了名为qmflows的远程virtualenv,下面是bash 脚本提供了您需要的信息:

#!/bin/bash
# comment/uncomment lines that you need
# If you need ADF, and it is available in a module
module load adf/2016.102
# or if you installed it yourself
# ADFHOME=${HOME}/.local/opt/adf
# source ${ADFHOME}/bin/adfrc.sh
# Point PLAMS to its place
exportPLAMSDEFAULTS="${HOME}/.local/src/plams/utils/plams_defaults.py"# Go to the directory that contains this script
cd"$(dirname "${BASH_SOURCE[0]}")"# Activate the VirtualEnv
source activate qmflows

# Start the remote worker
python -m noodles.worker ${@:2}# Bye!
source deactivate

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
maven字段#getGenericType()抛出java。lang.TypeNotPresentException   用java绘制三角形的几何图形   java无法下载主题和发件人地址(rediff)   java如何使代码线程安全   java在尝试转换FileInputStream中的文件时,我遇到了一个FileNotFound异常   java Moxy和Jackson如何将Json映射到Pojo   在foreach循环中使用BufferedWriter生成新行的java问题   java为什么我的测试在单次执行中运行时间小于1秒,而在maven构建中运行时间大于20秒?   java如何显示下载附件的进度条   了解java rmi的良好实践   .net可以将Java portlet嵌入ASP。网页?   循环如何多次执行Java方法?   java如何确保用户输入在给定的有效范围内?   java单元测试定理   java如何在IntelliJ上运行外部构建项目?   JAVA:试图编写一个检查字符串是否为数字的方法。总是返回错误   javahadoop将特定键的所有map方法生成的所有值都发送到一个reduce方法,对吗?   在java中读取和使用文件