pyCADD.Dynamic package

Submodules

pyCADD.Dynamic.analysis module

pyCADD.Dynamic.cli module

pyCADD.Dynamic.common module

class pyCADD.Dynamic.common.Analyzer(traj_file_path: str | None = None, comsolvated_topfile_path: str | None = None, com_topfile_path: str | None = None, receptor_topfile_path: str | None = None, ligand_topfile_path: str | None = None, mdout_file_path: str | None = None)[source]

Bases: object

MD模拟轨迹分析器

calc_hbond(mask: str = ':*', distance: float = 3.0, angle: float = 135.0, options: str | None = None, **kwargs) None[source]

检测并追踪 Hbond 键长、键角

Parameters

maskstr

指定原子间的Amber mask 默认为自动识别 cutoff < distance 的原子

optionsstr
Hbond计算选项 默认为

avgout OUTPUTFILE 输出氢键平均信息文件 printatomnum 打印原子序号 nointramol 仅计算分子间氢键

calc_rmsd(mask: str = '@CA', ref: int = 0, **kwargs) None[source]

计算RMSD

Parameters

maskstr

计算RMSD的Amber mask

refint

参考轨迹索引号 默认第一帧0

calc_rmsf(mask: str = '@CA', options: str = 'byres', **kwargs) None[source]

计算RMSF

Parameters

maskstr

计算RMSF的Amber mask

optionsstr

RMSF计算选项 默认byres

creat_energy_inputfile(start_frame: int, end_frame: int, job_type: Literal['free', 'entropy', 'decomp'], method: Literal['pb/gbsa', 'gbsa'] | None = None, interval: int = 10) None[source]

创建能量计算任务输入文件

Parameters

job_typestr

能量计算任务类型 free : 自由能计算(MM-PB/GBSA) entropy : 熵计算(normal mode) decomp : 能量分解

methodstr

计算方法 pb/gbsa : MM-PB/GBSA gbsa : MM-GBSA only

start_frameint

计算分析起始帧索引号

end_frameint

计算分析结束帧索引号

intervalint

计算分析帧间隔 默认为10

extract_frame(frame: int, **kwargs) None[source]

提取指定帧 帧索引开始于0 结束于最大帧数量-1

Parameters

frameint

提取帧索引号

extract_frames(start: int, end: int, **kwargs) None[source]

提取指定帧范围 帧索引开始于0 结束于最大帧数量-1

Parameters

startint

开始帧索引号

endint

结束帧索引号

extract_lowest_energy_st() None[source]

提取最低能量结构

load_mdout(mdout_file_path: str) None[source]

加载MD模拟输出文件

Parameters

mdout_file_pathstr

MD模拟输出文件路径

load_topfile(comsolvated_topfile_path: str | None = None, com_topfile_path: str | None = None, receptor_topfile_path: str | None = None, ligand_topfile_path: str | None = None) None[source]
load_traj(traj_file_path: str, top_file_path: str) None[source]

加载轨迹文件

Parameters

traj_file_pathstr

轨迹文件路径

top_file_pathstr

拓扑文件路径

run_energy_calc(output_file: str | None = None, decom_output_file: str | None = None, cpu_num: int | None = None, input_file: BaseFile | None = None) None[source]

运行能量计算任务

Parameters

output_filestr

输出文件路径

decom_output_filestr

能量分解输出文件路径(仅执行能量分解有效)

cpu_numint

计算使用的CPU数量

input_fileBaseFile

能量计算任务输入文件 默认为creat_energy_inputfile建立的文件

trace_angle(mask: str, **kwargs) None[source]

追踪指定原子之间的键角

Parameters

maskstr

指定原子Amber mask

trace_distance(mask: str, **kwargs) None[source]

追踪指定原子之间的距离

Parameters

maskstr

指定原子Amber mask

class pyCADD.Dynamic.common.Processor(apo: bool = False)[source]

Bases: object

为分子动力学模拟执行预处理

add_heat_process(tgt_temp: float = 300.0, heat_step: int = 9000, total_step: int = 10000, step_length: float = 0.002, process_name: str = 'heat', **kwargs)[source]

在工作流中添加加热步骤

Parameters

tgt_tempfloat

加热目标温度(K), 默认300.0K

heat_stepint, optional

加热步数, 默认9000

total_stepint, optional

总加热阶段步数, 默认10000

step_lengthfloat, optional

步长, 默认0.002 ps

process_namestr, optional

工作流步骤名称, 默认为heat

add_minimize_process(maxcyc: int = 10000, ncyc: int = 5000, process_name: str = 'minimize', restraint: bool = False, restraint_mask: str | None = None, **kwargs) None[source]

在工作流中添加能量最小化步骤

Parameters

maxcycint, optional

最大迭代次数, 默认10000

ncycint, optional

前ncyc步使用最速下降法, 之后使用共轭梯度法, 默认5000

process_namestr, optional

工作流步骤名称, 默认为minimize.

restraintbool, optional

是否添加约束, 默认为False.

restraint_maskstr, optional

约束原子的Amber Mask, 启用restraint时必须指定.

**kwargsdict

其他参数, 传入到Minimize InputFile中

add_npt_process(total_step: int = 50000000, step_length: float = 0.002, process_name: str = 'npt', is_production: bool = False, **kwargs)[source]

在工作流中添加NPT步骤

Parameters

step_numint, optional

步数, 默认50000000, 100ns

step_lengthfloat, optional

步长, 默认0.002 ps

process_namestr, optional

工作流步骤名称, 默认为npt

add_nvt_process(total_step: int = 500000, step_length: float = 0.002, process_name: str = 'nvt', is_production: bool = False, **kwargs)[source]

在工作流中添加NVT步骤

Parameters

total_stepint, optional

MD步骤步数, 默认50000000

step_lengthfloat, optional

MD步骤步长, 默认0.002

process_namestr, optional

工作流步骤名称, 默认为nvt

is_productionbool, optional

该NVT步骤是否为生产步骤, 默认为False

**kwargsdict

其他参数, 传入到NVT InputFile中

add_process(input_file: BaseFile | str, process_name: str | None = None, _type: str | None = None, _obj: MDProcess | None = None, **kwargs) None[source]

在工作流中添加单个步骤(Minimize, NVT, NPT, etc.)

Parameters

input_fileBaseFile | str

MD步骤输入文件(或路径)

process_namestr, optional

工作流步骤名称, 默认为输入文件名

_typestr, optional

工作流步骤类型, 默认为None, 可选值为minimize, nvt, npt

_objMDProcess, optional

工作流步骤对象, 默认为None, 可选值为MinimizeProcess, NVTProcess, NPTProcess, 优先级高于_type

**kwargsdict

其他参数, 写入输入文件并赋值至MDProcess属性中

static cover_to_pdb(file_path: str) None[source]

将mae结构文件转换为pdb格式

Parameters

file_pathstr

mae结构文件路径

creat_heat_input(tgt_temp: float = 300.0, heat_step: int = 9000, total_step: int = 10000, step_length: float = 0.002, file_name: str | None = None, restraint_wt: float | None = None, restraint_mask: str | None = None) BaseFile[source]

创建体系加热阶段输入文件

Parameters

tgt_tempfloat, optional

目标温度, 默认300.0

heat_stepint, optional

加热步数, 默认9000

total_stepint, optional

总步数, 默认10000

step_lengthfloat, optional

步长, 默认0.002 ps

file_namestr, optional

输入文件名, 默认heat.in

restraint_wtfloat, optional

约束力常数, 默认为None, 不使用约束

restraint_maskstr, optional

约束原子的Amber Mask, 启用restraint时必须指定.

Returns

BaseFile

加热阶段输入文件对象

creat_minimize_input(maxcyc: int = 10000, ncyc: int = 5000, cut: float = 8.0, restraint: bool = False, restraint_mask: str | None = None, restraint_wt: float = 2.0, file_name: str | None = None, **kwargs) BaseFile[source]

创建能量最小化阶段输入文件

Parameters

maxcycint, optional

最大迭代次数, 默认10000

ncycint, optional

前ncyc步使用最速下降法, 之后使用共轭梯度法, 默认5000

cutfloat, optional

非势能截断距离, 默认8.0

restraintbool, optional

是否使用约束, 默认False

restraint_maskstr, optional

约束原子的Amber Mask, 启用restraint时必须指定.

restraint_wtfloat, optional

约束力常数, 默认2.0.

file_namestr, optional

输入文件名, 默认minimize.in

**kwargsdict

其他参数, 传入到InputFile中

Returns

BaseFile

能量最小化输入文件对象

creat_npt_input(temp0: float = 300.0, total_step: int = 50000000, step_length: float = 0.002, irest: int = 1, ntx: int = 5, taup: float = 2.0, file_name: str | None = None, **kwargs) BaseFile[source]

创建NPT阶段输入文件

Parameters

temp0float, optional

初始温度, 默认300.0

total_stepint, optional

总步数, 默认50000000, 100ns

step_lengthfloat, optional

步长, 默认0.002 ps

irestint, optional

重启标志, 默认1

ntxint, optional

坐标文件输入标志, 默认5

taupfloat, optional

压强控制时间, 默认2.0 ps

file_namestr, optional

输入文件名, 默认npt.in

Returns

BaseFile

NPT阶段输入文件对象

creat_nvt_input(temp0: float = 300.0, total_step: int = 500000, step_length: float = 0.002, irest: int = 1, ntx: int = 5, file_name: str | None = None, **kwargs) BaseFile[source]

创建NVT阶段输入文件

Parameters

temp0float, optional

初始温度, 默认300.0

total_stepint, optional

总步数, 默认500000, 1ns

step_lengthfloat, optional

步长, 默认0.002 ps

file_namestr, optional

输入文件名, 默认nvt.in

irestint, optional

重启标志, 默认1

ntxint, optional

坐标文件输入标志, 默认5

**kwargsdict

其他参数, 传入到NVT InputFile中

Returns

BaseFile

NVT阶段输入文件对象

get_water_resnum() list[source]

获取溶剂化文件中的水分子Residue Number列表

leap_prepare(prefix: str | None = None, box_size: float = 12.0, **kwargs) None[source]

创建leap输入文件 并执行tleap命令

Parameters

prefixstr

leap生成文件前缀 PDBID或其他 None则为当前日期

load_frcmod_file(file_path: str) None[source]

为Processor载入其他方法生成的配体分子参数frcmod文件

Parameters

file_pathstr

.frcmod 文件路径

load_processed_molfile(molfile_path: str) None[source]

为Processor载入其他方法生成的配体分子文件

Parameters

molfile_pathstr

文件路径

load_processed_profile(profile_path: str) None[source]

为Processor载入其他方法生成的蛋白结构文件

Parameters

profile_pathstr

文件路径

molecule_prepare(molecule_file_path: str, charge: int = 0, multiplicity: int = 1, cpu_num: int | None = None, solvent: str = 'water', overwrite: bool = False, method: str = 'resp', keep_origin_cood: bool = False) None[source]

为动力学模拟执行小分子结构预处理

Parameters

molecule_file_pathstr

分子结构文件路径

chargeint

电荷数 默认为0

multiplicityint

自旋多重度 默认为1

cpu_numint

计算核数 默认为CPU核数

solventstr

计算RESP电荷时液相的溶剂 默认为water

overwritebool

是否覆盖已存在的文件 默认为False

methodstr

计算方法 默认为resp电荷 option: resp, bcc

keep_origin_coodbool, optional

是否在输出结构中保留原始坐标(计算RESP时) 而不使用高斯结构优化的坐标 默认为False

protein_prepare(protein_file_path: str, keep_water: bool = False) None[source]

为动力学模拟执行蛋白质结构预处理

Parameters

protein_file_pathstr

蛋白质结构文件路径

keep_waterbool, optional

是否保留输入结构中的水分子, 默认为 False

set_comsolvate_file(file_path: str, file_type: str) None[source]

设定含水蛋白结构相关文件

Parameters

file_pathstr

文件路径

file_typestr

文件类型 pdb: 含水蛋白结构文件(_comsolvate.pdb) top: 含水蛋白拓扑文件(_comsolvate.prmtop) crd: 含水蛋白坐标文件(_comsolvate.inpcrd)

class pyCADD.Dynamic.common.Simulator(processor: Processor)[source]

Bases: object

run_simulation(cuda_device: int | None = None) None[source]

启动分子动力学模拟流程

Parameters

cuda_deviceint

GPU设备编号 默认为0

set_cuda_device(cuda_device: int) None[source]

设定模拟使用的GPU设备

Parameters

cuda_deviceint

GPU设备编号

shwo_cuda_device() None[source]

显示GPU信息

pyCADD.Dynamic.core module

class pyCADD.Dynamic.core.BaseProcess(input_file: BaseFile, process_name: str, **kwargs)[source]

Bases: object

run(**kwargs) None[source]
class pyCADD.Dynamic.core.MDProcess(input_file: BaseFile, process_name: str, **kwargs)[source]

Bases: BaseProcess

run(toplogy_file: BaseFile, inpcrd_file: BaseFile, reference_file: BaseFile | None = None, save_dir: str | None = None, nohup: bool = False) MDProcess[source]

Run MD process.

Parameters

save_dirstr, optional

Save directory. Default is CWD.

class pyCADD.Dynamic.core.MinimizeProcess(input_file: BaseFile, process_name: str, **kwargs)[source]

Bases: MDProcess

class pyCADD.Dynamic.core.NPTProcess(input_file: BaseFile, process_name: str, is_production: bool = False, **kwargs)[source]

Bases: MDProcess

class pyCADD.Dynamic.core.NVTProcess(input_file: BaseFile, process_name: str, is_production: bool = False, **kwargs)[source]

Bases: MDProcess

pyCADD.Dynamic.core.leap_prepare(prefix: str, ligand_file: BaseFile, frcmod_file: BaseFile, protein_file: BaseFile, box_size: float = 12.0, save_dir: str | None = None) None[source]

创建LEaP输入文件并执行tleap命令

Parameters

prefixstr

生成文件的文件名前缀

ligand_fileBaseFile

小分子文件

frcmod_fileBaseFile

Amber Parameters文件

protein_fileBaseFile

蛋白质PDB文件

box_sizefloat, optional

水箱大小 默认为12.0 Angstrom

save_dirstr, optional

保存路径 默认为当前目录

pyCADD.Dynamic.core.leap_prepare_for_apo(prefix: str, protein_file: BaseFile, box_size: float = 12.0, save_dir: str | None = None) None[source]

创建Apo晶体的LEaP输入文件并执行tleap命令

Parameters

prefixstr

生成文件的文件名前缀

protein_fileBaseFile

蛋白质PDB文件

box_sizefloat, optional

水箱大小 默认为12.0 Angstrom

save_dirstr, optional

保存路径 默认为当前目录

pyCADD.Dynamic.core.molecule_prepare_bcc(ligand_file: BaseFile, charge: int, save_dir: str | None = None, overwrite: bool = False) tuple[source]

使用AM1-BCC快速计算原子电荷 并完成配体预处理

Parameters

ligand_fileBaseFile

小分子文件

chargeint

电荷数

save_dirstr, optional

保存路径 过程及结果文件保存至该目录 如为None则保存至当前目录

overwritebool, optional

是否覆盖已存在的mol2结果文件 默认为False

pyCADD.Dynamic.core.molecule_prepare_resp2(ligand_file: BaseFile, cpu_num: int | None = None, charge: int | None = None, multiplicity: int | None = None, solvent: str | None = None, save_dir: str | None = None, overwrite: bool = False, keep_origin_cood: bool = False) tuple[source]
预处理小分子文件

高斯坐标优化与RESP2(0.5)电荷计算

Parameters

ligand_fileBaseFile

小分子文件

cpu_numint, optional

CPU数量 默认为CPU总数

chargeint, optional

电荷数 默认为电荷数为0

multiplicityint, optional

自旋多重度 默认为复数为1

solventstr, optional

计算溶剂 默认为水

save_dirstr, optional

保存路径 过程及结果文件保存至该目录 如为None则保存至当前目录

overwritebool, optional

是否覆盖已存在文件 默认为False

keep_origin_coodbool, optional

是否在输出结构中保留原始坐标 而不使用高斯结构优化的坐标 默认为False

Returns

BaseFile, BaseFile

已计算电荷的mol2文件, frcmod文件

pyCADD.Dynamic.core.protein_prepare(protein_file: BaseFile, save_dir: str | None = None, keep_water: bool = False) BaseFile[source]
预处理蛋白质PDB文件

PDB文件格式化 for Amber | 去除原生H原子 | 使用rudece添加H原子 | 再次格式化

Parameters

protein_fileBaseFile

蛋白质PDB文件

save_dirstr, optional

保存路径 过程及结果文件保存至该目录 如为None则保存至当前目录

keep_waterbool, optional

是否保留输入结构中的水分子, 默认为 False

Returns

str

处理完成的蛋白质PDB文件

pyCADD.Dynamic.template module

class pyCADD.Dynamic.template.AnalysisConstructor(state_dict: dict, type: Literal['general', 'gb', 'pb', 'decomp', 'nmode'], title: str | None = None)[source]

Bases: BaseConstructor

to_string() str[source]

Return the current state with formated template as a string.

Returns

str

Formated template as a string.

class pyCADD.Dynamic.template.BaseConstructor(state_dict: dict)[source]

Bases: ABC

add_attr(**kwargs) None[source]

Add attributes to the constructor.

del_attr(attr_name: str) None[source]

Delete the attribute from the current state.

get_attr(attr_name: str) str[source]

Get the value of the attribute.

get_state_dict() dict[source]

Return the current state of the constructor as a dict.

Returns

dict

Current state of the constructor.

save(file_path: str) None[source]

Save the current state as a file.

set_attr(**kwargs) None[source]

Set the value of the attribute.

to_dict() dict[source]

Return the current state as a dict with current state.

Returns

dict

Current state as a dict.

to_str() str[source]

Same as to_string().

abstract to_string() str[source]

Return the current state with formated template as a string.

Returns

str

Formated template as a string.

class pyCADD.Dynamic.template.HeatInput(tgt_temperature: float = 300.0, heat_step: int = 9000, total_step: int = 10000, step_length: float = 0.002, restraint_wt: float | None = None, restraintmask: str | None = None)[source]

Bases: object

HEAT_TEMPLATE = {'ISTEP1': 0, 'ISTEP2': 9000, 'TYPE': "'TEMP0'", 'VALUE1': 0.0, 'VALUE2': 300.0}
add_heat(stage_dict: dict | None = None) None[source]
add_nvt(**kwargs) None[source]
get_state_dict() dict[source]
save(file_path: str) None[source]
to_string() str[source]
class pyCADD.Dynamic.template.LeapConstructor(state_dict: dict)[source]

Bases: BaseConstructor

property base_template: str

Return the base template of the LEaP file.

to_string() str[source]

Return the current state with formated template as a string.

Returns

str

Formated template as a string.

class pyCADD.Dynamic.template.LeapInput(protein_file_path: str, ligand_file_path: str | None = None, frcmod_file_path: str | None = None, file_prefix: str | None = None, box_size: float = 12.0, box_type: str = 'TIP3PBOX', add_ions_type: str = 'Na+', **kwargs)[source]

Bases: LeapConstructor

class pyCADD.Dynamic.template.MMGBSAInput(start_frame: int, end_frame: int, step_size: int = 1)[source]

Bases: object

add_decomp(**kwargs) None[source]
add_gb(**kwargs) None[source]
add_general(title: str | None = None, **kwargs) None[source]
add_nmode(**kwargs) None[source]
add_pb(**kwargs) None[source]
save(file_path: str) None[source]
to_string() str[source]
class pyCADD.Dynamic.template.MinimizeInput(title: str | None = None, **kwargs)[source]

Bases: SimulationConstructor

class pyCADD.Dynamic.template.MultiConstructorManager(constructor_list: list | None = None)[source]

Bases: object

add_constructor(constructor: BaseConstructor) None[source]
del_constructor(constructor: BaseConstructor) None[source]
is_empty() bool[source]
save(file_path: str) None[source]
to_string() str[source]
class pyCADD.Dynamic.template.NPTInput(end_cfg: bool = True, title: str | None = None, **kwargs)[source]

Bases: SimulationConstructor

class pyCADD.Dynamic.template.NVTInput(end_cfg: bool = True, title: str | None = None, **kwargs)[source]

Bases: SimulationConstructor

class pyCADD.Dynamic.template.RestrainedMinimizeInput(restraintmask: str, restraint_wt=2.0, title: str | None = None, **kwargs)[source]

Bases: SimulationConstructor

class pyCADD.Dynamic.template.SimulationConstructor(state_dict: dict, type: Literal['cntrl', 'wt'], end_cfg: bool = True, title: str | None = None)[source]

Bases: BaseConstructor

to_string() str[source]

Return the current state with formated template as a string.

Returns

str

Formated template as a string.

Module contents