苟利国家生死以,岂因祸福避趋之

0%

2018-09-23

1.安装Intel® MPI Library并激活,如source /share/apps/intel/compilers_and_libraries/linux/bin/compilervars.sh intel64
2.编译LAMMPS前,make yes-user-intel激活USER-INTEL package。
3.用make intel_cpu_intelmpi编译LAMMPS。
4.用KMP_BLOCKTIME=0 mpirun -np 36 lmp_intel_cpu_intelmpi -pk intel 0 omp 2 -sf intel -in in.script运行LAMMPS。
5.在in.script的开头加入processors * * * grid numa
参考资料:https://lammps.sandia.gov/doc/Speed_intel.html

2018-08-20

conda install --channel "anaconda" package

安装Anaconda

使用conda install需要安装Anaconda,安装方式见 #18 。
但也可以用我写的一键脚本安装:
wget https://raw.githubusercontent.com/njzjz/ChemAutoInstaller/master/ChemAutoInstaller.sh && bash ChemAutoInstaller.sh --anaconda

添加清华镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes

经测试,在华东师范大学校园网下可以满速下载。

常用软件

一些最常用的软件,如numpy、scipy已经预装在Anaconda中。剩下一些常用的软件(其实是我常用的)安装命令(-y可以跳过确认):
TensorFlow(含cuDDN)
conda install tensorflow-gpu
OpenBabel
conda install openbabel
RDkit
conda install rdkit
高版本GCC
conda install libgcc
DeePMD
conda install -c deepmd.kit deepmd

搜索软件

anaconda.org可以搜索安装包,资源非常丰富。

2018/08/07

环境准备

1.安装酷Q和HTTP API插件

酷Q:https://cqp.cc/
CoolQ HTTP API 插件:https://github.com/richardchien/coolq-http-api
将HTTP API插件放置于app文件夹中,启动并登陆酷Q,在菜单中启用插件。
HTTP API插件的默认地址为http://localhost:5700/

2.安装cqhttp

pip install cqhttp
安装后在Python中使用:

from cqhttp import CQHttp
bot = CQHttp(api_root='http://219.228.63.56:5700/')
bot.send_group_msg(group_id=599070209,message='hello world')

default

第二行定义了一个机器人,第三行让这个机器人发一条hello world的消息。

开始编写程序

1.获取任务状态

import subprocess as sp
class CQJobMonitor():
    def jobstate(self):
        states=sp.check_output(self.command.split()).decode('utf-8').split("\n")
        states=[' '.join(line.split()) for line in states if any([keyword in line for keyword in self.keywords])]
        return states

这里self.command为获取任务状态的命令,如qstatself.keywords为关键词,如['jzzeng']。如此即可返回含有关键词的任务状态。

2.发送消息

import time
from cqhttp import CQHttp
class CQJobMonitor():
    def sendstate(self):
        localtime = time.asctime(time.localtime(time.time()))
        message=localtime+"\n"+self.tip+"\n"
        message+="\n".join(self.jobstate())
        self.bot.send_group_msg(group_id=self.group_id,message=message)

调用定义好的CQHttp类发送消息,顺便带上当前时间。

3.循环发送

设置每300秒发送一次:

from threading import Timer
import os
class CQJobMonitor():
    def loopmonitor(self):
        while not os.path.exists("pause"):
            timer=Timer(self.timeinterval,self.sendstate)
            timer.start()
            timer.join()
        print("Exit per signal.")

这里self.timeinterval设置为300.

运行

完整的程序如下:

import os
import subprocess as sp
from cqhttp import CQHttp
import time
from threading import Timer

class CQJobMonitor():
    def __init__(self,command="qstat",cqroot='http://219.228.63.56:5700/',group_id=312676525,keywords=['jzzeng'],timeinterval=300):
        self.tip="JobMonitor"
        print(self.tip)
        self.command=command
        self.group_id=group_id
        self.keywords=keywords
        self.bot = CQHttp(api_root=cqroot)
        self.timeinterval=timeinterval

    def jobstate(self):
        states=sp.check_output(self.command.split()).decode('utf-8').split("\n")
        states=[' '.join(line.split()) for line in states if any([keyword in line for keyword in self.keywords])]
        return states

    def sendstate(self):
        localtime = time.asctime(time.localtime(time.time()))
        message=localtime+"\n"+self.tip+"\n"
        message+="\n".join(self.jobstate())
        self.bot.send_group_msg(group_id=self.group_id,message=message)

    def loopmonitor(self):
        while not os.path.exists("pause"):
            timer=Timer(self.timeinterval,self.sendstate)
            timer.start()
            timer.join()
        print("Exit per signal.")

代码已上传至pypi,可用pip install CQJobMonitor安装。
编写monitor.py

from CQJobMonitor import CQJobMonitor
CQJobMonitor(command="qstat",cqroot='http://219.228.63.56:5700/',group_id=312676525,keywords=['jzzeng'],timeinterval=300).loopmonitor()

并在后台运行:

nohup python monitor.py >/dev/null &

image

即可定时发送任务情况。

2018/07/26

1.安装

可用Anaconda安装conda install openbabel -c openbabel或参照 此文 自己编译。

2.转换格式

把xyz格式文件转换成pdb格式文件:
obabel C.xyz -ixyz -opdb -O C.pdb
支持118种格式,如xyz、mol、mol2、pdb、smi,Gaussian文件gjf、log、fchk,ChemDraw文件cdx等。
可以从没有成键信息的xyz文件转换为有成键信息的mol文件。

3.转换SMILES

生成甲烷的mol文件:
obabel -:C --gen3d -omol -O C.mol
若要得到坐标,--gen3d不可少。
SMILES会默认补氢至饱和,将C补成甲烷,若要得到单个碳的mol文件:
obabel -:[C] --gen3d -omol -O C.mol
若要生成甲基的文件:
obabel -:[CH3] --gen3d -omol -O CH3.mol
或:
obabel -:"[C]([H])([H])[H]" --gen3d -omol -O CH3.mol
若SMILES有括号时,务必要加上引号。
获取C.xyz、C.pdb等多个文件的SMILES:
obabel C.mol C.mol2 C.pdb C.xyz --osmi -O C.smi

4.生成结构式的图像

cys

phosphate

obabel -:"C([C@@H](C(=O)O)N)S" -opng -O cys.png
即可生成半胱氨酸的结构式:

亦可生成矢量图像:
obabel -:"C([C@@H](C(=O)O)N)S" -osvg -O cys.svg
可以将文件直接转换为图像:
obabel phosphate.log -ilog -opng -O phosphate.png

5.配合Gaussian使用

从SMILES直接生成Gaussian输入文件:
obabel -:CC --gen3d -ogjf|sed "1c %nproc=28\n#opt b3lyp/6-31g(d,p)" >CC.gjf
从已有文件或上一步的log文件中得到下一步的输入文件:
obabel CC.log -ilog -ogjf|sed "1c %nproc=28\n#freq b3lyp/6-31g(d,p)" >CC2.gjf

2018年6月22日发表于微信公众号 (需已经安装好EndNote)

  1. 下载EndNote引用文件:①打开Google Scholar,②搜索文献,③点击文献下方的引用按钮,④点击EndNote下载,⑤打开下载好的EndNote文件:

2.在EndNote中选中刚刚导入的文献: 3.插入文献:①光标移到想插入文献的位置,②点击选项卡中EndNote X8,③点击Insert Citation,④点击Insert Selected Citation(s): 效果图: 自动插入了1. Jiang, Z.-m., Reflections on energy issues in China. Journal of Shanghai Jiaotong University (Science) 2008, 13 (3), 257-274. 注:

  1. Style一栏可以选择文献格式,大多数期刊都会提供格式文件:
  2. 可以多次加入同一文献,或在同一位置加入多个文献;
  3. 可以给Reference加个标题。

2018/06/20

免密和别名。

免密

ssh-keygen -t rsa

一路回车,将在~/.ssh/目录下生成密钥(id_rsa)和公钥(id_rsa.pub)。

<span class="c1" style="font-style: italic;color: rgb(153, 153, 153);">#以106.14.182.145这个服务器为例</span>
ssh-copy-id root@106.14.182.145

输入密码后,即把公钥信息(id_rsa.pub)拷入服务器的authorized_keys中。再次登录:

ssh root@106.14.182.145

再也不用输密码了。

别名

vi ~/.ssh/config

在config文件中输入:

Host aliyun
HostName 106.14.182.145
User root

Host xxx
HostName xxx.xxx.xx.xxx
User xxx
Port xx

保存,然后将config文件的权限设置为600:

chmod 600 ~/.ssh/config

现在,ssh可以用aliyun替代root@106.14.182.145了:

ssh aliyun

备注

这两步设置后,Ubuntu子系统是Windows最好的ssh软件。

2018/6/20

以我瞎写的四个公式为例:

在一个公式后面输#(),并且把光标放到两个括号之间:

点击插入-文档部件-域:

类别选编号,域名选AutoNum,格式选1,2,3,…,确定:

复制#(1):

光标移到#(1)后面(光标**务必要在公式里面**),按Enter回车,这时(1)自动到了公式最右边,退格键删掉这个段落符号:

将刚才复制的#(1)粘贴到第二个公式后面,发现已经变成了#(2):

同样回车,退格:

依葫芦画瓢,搞定剩下的公式,完工:

(本文中Word版本为Word 2016,版本1807,内部版本10301.20006)

参考资料

  1. 知乎. 如何解决word中公式加编号之后变为内嵌格式?. https://www.zhihu.com/question/65751973/answer/365060085
  2. 知乎. 你可能从未使用过的Word内嵌编号功能. https://zhuanlan.zhihu.com/p/22436463

2018年6月17日

本文将介绍 LAMMPS 在 Intel® MPI 、Open MPI 和 Ubuntu 下的安装方法。

#下载解压
wget http://lammps.sandia.gov/tars/lammps-stable.tar.gz
tar -vxf lammps-stable.tar.gz
cd lammps-16Mar18/src
#安装Package,例如这里安装USER-REAXC
make yes-user-reaxc
#所有Package的列表可见http://lammps.sandia.gov/doc/Section_packages.html

Intel® MPI

根据官方资料(Intel® MPI Library),Intel® MPI比Open MPI快数倍。

配置好Intel® MPI的环境变量后,只需:

make intel_cpu_intelmpi

即开始编译。

Open MPI

若已装Open MPI,可直接编译:

make mpi

若机器上没有装任何MPI,可自行安装Open MPI:

wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.0.tar.bz2
tar -vxf openmpi-3.1.0.tar.bz2
cd openmpi-3.1.0/
./configure --prefix=$(pwd)
make all install

在$HOME/.bashrc中加入环境变量:

export PATH=/home/njzjz/soft/openmpi-3.1.0/bin:$PATH
export LD_LIBRARY_PATH=/home/njzjz/soft/openmpi-3.1.0/lib:$LD_LIBRARY_PATH

然后在LAMMPS的src目录下编译:

source $HOME/.bashrc
make mpi

Ubuntu

先用管理员权限安装一些软件,再编译:

sudo apt install g++ mpi-default-bin mpi-default-dev libfftw3-dev libjpeg-dev libpng-dev
make ubuntu

最后

在当前目录下一键设置环境变量:

echo 'export PATH=$PATH:'$(pwd)>>$HOME/.bashrc
source $HOME/.bashrc

文末将介绍GaussView在Ubuntu子系统的安装方法(网不好的时候用)。

首先需要有gv6.tar.bz2,如果没有需要自行购买或所在机构购买。

tar -vxf gv6.tar.bz2

然后在$HOME/.bashrc中加入

export GV_DIR=/home/njzjz/soft/gv #GaussView的目录
export PATH=$GV_DIR:$GV_DIR/bin:$PATH

source $HOME/.bashrc后gv即可。

Windows Subsystem for Linux (Ubuntu)

Ubuntu子系统中缺少libGLU.so.1、libfreetype.so.6、libXrender.so.1、libfontconfig.so.1、libSM.so.6,需要安装:

sudo apt install libglu1-mesa libfreetype6 libxrender-dev libfontconfig libsm6

确保Xming已经运行,.bashrc已经加入

export DISPLAY=localhost:0.0

运行gv:

_2018年6月16日作_

文末将说明VMD在Ubuntu子系统上的安装方法。

#下载解压
wget http://www.ks.uiuc.edu/Research/vmd/vmd-1.9.3/files/final/vmd-1.9.3.bin.LINUXAMD64-CUDA8-OptiX4-OSPRay111p1.opengl.tar.gz
tar -vxzf vmd-1.9.3.bin.LINUXAMD64-CUDA8-OptiX4-OSPRay111p1.opengl.tar.gz
cd vmd-1.9.3/
pwd

pwd获取当前目录,比如:/home/njzjz/soft/vmd-1.9.3

打开configure,将某两行修改为:

$install_bin_dir="/home/njzjz/soft/vmd-1.9.3/bin";
$install_library_dir="/home/njzjz/soft/vmd-1.9.3/lib/$install_name";

保存。

./configure LINUXAMD64
 ./configure
cd src
make install

在$HOME/.bashrc文件中加入

export PATH=/home/njzjz/soft/vmd-1.9.3/bin:$PATH

然后source .bashrc,此时运行vmd一般来说均可正常运行。

Windows Subsystem for Linux (Ubuntu)

在Ubuntu子系统中缺少libGL.so.1、libXinerama.so.1、libXi.so.6三个库,需要安装:

sudo apt install mesa-utils libxinerama-dev libxi6

确保Xming已经运行,.bashrc已经加入

export DISPLAY=localhost:0.0

这时再输入vmd,即可打开VMD界面。