# ARIP **Repository Path**: yuye_rainleaf/arip ## Basic Information - **Project Name**: ARIP - **Description**: 定量计算蛋白质或核酸中残基相互作用的Python软件,支持Windows/Linux/MacOS等平台。 可同时计算接触面积和体积,并支持分析包含多个构象的PDB文件。 支持绝大部分非标准残基、配体。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2023-07-09 - **Last Updated**: 2024-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ARIP3 定量计算蛋白质或核酸中残基相互作用的Python软件,支持Windows/Linux/MacOS等平台。 可同时计算接触面积和体积,并支持分析包含多个构象的PDB文件。 支持绝大部分非标准残基、配体。 ---- ### 开始使用 - 确保你的Python版本是3.6或更高。你可以通过运行`python --version`来检查你的Python版本 - 下载后即可使用 - `pip install -r requirements.txt` - `python3 run.py your/file/or/dir` - 支持输入文件或路径 - 输入的文件需为PDB格式,压缩或未压缩均可,有无后缀名均可 - 输入的路径需仅含格式正确的文件且不含次级路径 - 如果输入的是路径,会自动使用多线程 - 读取非标准残基时会自动舍弃水分子 ### 可选参数 - 自定义输出路径 - `python3 run.py your/file/or/dir -o your/output/path` - 增强精度模式,耗时更多 - `python3 run.py your/file/or/dir -e` - 使用最低阈值,小于阈值的接触面积和体积会被舍弃。默认是0.5和0.2 - `python3 run.py your/file/or/dir -c` # 面积小于0.5的接触和体积小于0.2的接触会被舍弃 - `python3 run.py your/file/or/dir -c 1.0 0.5` # 面积小于1.0的接触和体积小于0.5的接触会被舍弃 - 注意,这会作用在所有的蛋白质、核酸、非标准残基、配体上 - 使用自定义距离判断两个原子是否接触,当两个原子最近距离小于自定义距离时才判定为接触。默认是0 - `python3 run.py your/file/or/dir -d` # 两原子最近距离小于0时才有接触 - `python3 run.py your/file/or/dir -d 0.5` # 两原子最近距离小于0.5时才有接触 - 最近距离指的是将两个原子视为以范德华半径为半径的球时,它们之间的最小距离 - 自定义多线程数量 - `python3 run.py your/file/or/dir -t threads_number` - 如果未指定--t参数,或者输入的线程数大于CPU数,则会自动按照CPU数设置多线程 - 按照亲水性原子通过水分子介导的相互作用的算法计算面积和体积 - `python3 run.py your/file/or/dir -p` - 该模式只计算至少有一个原子是N、O、P、S的原子对,两原子最近距离>0且<2.8 - N、O、P、S的最大嵌入深度分别是0.1、0.2、0.3、0.5,若超过该阈值则自动修正为该阈值 - 如果两原子只有一个是N、O、P、S,则这样计算的面积和体积,是该原子和1个水分子接触的面积和体积 - 如果两原子都是N、O、P、S,则这样计算的面积和体积,是这两个原子分别和1个水分子接触的面积和体积的均值 - 由于数值通常较小,该模式会进一步提高计算体积的点阵的点数,以达到更高的精度 - 该模式下不可再使用自定义距离判断两个原子是否接触,且不会考虑多原子同时接触的影响 - 计算溶剂可及表面积(SASA,Solvent Accessible Surface Area) - `python3 run.py your/file/or/dir -a` - 该模式会统计残基中每个原子上不与任何原子接触的表面积,然后加和 - SASA的计算结果在_SUM开头的CSV文件中 - 按照原子重叠加权算法计算体积 - `python3 run.py your/file/or/dir -w` - 重合的原子越多,体积权重就会越大 - 具体来说,每个点代表的体积乘以了这个点被包含的原子数,如果同时位于N个原子中就会被×N - 将输出结果保存为.gz压缩格式以节省存储空间 - `python3 run.py your/file/or/dir -z` - 这样创建的文件夹名字会带有_z后缀以示区分 - 为每个残基输出一个.csv文件 - `python3 run.py your/file/or/dir -r` - 在大规模运行时,这可能会占用存储空间并降低写入速度 - 不计算体积,仅计算表面积和其它参数 - `python3 run.py your/file/or/dir -s` - 不需要体积数值时可以使用,速度会大大提高 ### 输出样式 ##### 文件夹 - 对于成功分析的每一个PDB文件都会新建一个同名文件夹用于存放分析结果 - 如果PDB文件包含多个构象,则在同名文件夹下还会建立子文件夹单独存放 ##### 相互作用类型 - 蛋白质 - 非共价相互作用(NC, Non-Covalent) - HB:氢键(Hydrogen Bond) - AROM:芳香族相互作用(Aromatic-Aromatic Contact) - PHOB:疏水相互作用(Hydrophobic-Hydrophobic Contact) - DC:不稳定相互作用(Distabilizing Contact) - OTHER:其它的范德华相互作用 - 共价相互作用(Cova, Covalent) - SS:二硫键(Disulfide Bond) - PB:肽键(Peptide Bond) - 核酸 - 非共价相互作用 - DD:DNA-DNA - DR:DNA-RNA - RR:RNA-RNA - 共价相互作用 - PD:磷酸二酯键(Phosphodiester Bond) - 其它 - SASA:Solvent Accessible Surface Area,溶剂可及表面积,残基上不与任何原子接触的表面积 - Surf:Surface area,接触表面积,残基中各个原子参与接触的表面积之和 - Volu:Volume,接触体积 - AOWV:基于原子重叠算法的的加权体积,Atomic Overlap Weighted Volume - UNDEF:与非标准残基有关的、未判断类型的相互作用,Undefined ##### 汇总信息 - 以_ALL开头的文件包含了所有的原子接触信息,包括原子类型、接触距离、表面积、体积等 - 以_RES开头的文件包含了残基之间两两接触的汇总信息 - 以_SUM开头的文件包含了每个残基的二面角(仅限蛋白质)、SASA(如果有)、共价和非共价的接触面积及接触体积等 ##### 成功信息 - 如果PDB文件只有一个构象 - “The PDB {name} run OK, time cost: {time}s” - 如果PDB文件包含多个构象 - “The PDB {name}MODEL{num} run OK, time cost: {time}s” #### 错误信息 - 输入的不是有效的文件或路径 - “{input} is not a valid file or directory” - 指定了阈值,但没有输入格式正确的数字 - “Lower cutoff must be TWO values like 1.0 0.5, or leave it blank to use the default values 0.5 0.2” - PDB文件不完整 - “The file {name} may be corrupted or contain incomplete MODEL” - PDB格式不正确 - “The file {name} is unsupported format” - 内存不足或输入的文件不含有效的原子 - “Required memory: {required_memory_GB} GB. Skipping file {name} due to insufficient memory or no valid atoms” - 其它原因导致无法分析 - “The file {name} cannot be analyzed, perhaps it contains unsupported format, or no valid atoms” ### 可视化 - 提供简便的可视化重原子空间位置的功能 - `python3 vis.py your/file` - 支持输入pdb文件或xyz文件 - PDB文件压缩或未压缩均可,有无后缀名均可 - 不支持输入路径 - 对于包含多个构象的PDB,可以输出每一个构象的图片 - 如果输入了不支持的格式,会输出`unsupported file: {name}` - 对于已分析完成的结构,可以画出有多个构象的PDB的残基间接触的热图 - `python3 heatmap.py your/dir column` - 输入的路径需包含ARIP的分析结果 - 只适用于有多个构象的PDB - 输入的colume是希望绘制热图的列,一般是以下之一,也可以同时输入多个: - Surface_max, Surface_min, Surface_range, Surface_mean, Surface_rmsd, Surface_cv, Volume_max, Volume_min, Volume_range, Volume_mean, Volume_rmsd, Volume_cv, AOWV_max, AOWV_min, AOWV_range, AOWV_mean, AOWV_rmsd, AOWV_cv - 如果不指定column,则默认为每一列绘制热图 - 热图的x轴和y轴均按照残基的顺序排列,从A1开始 - 如果输入了不支持的格式,会输出`The heatmap could not be successfully generated due to an error` ### 联系方式 邮箱:xiangtao312@outlook.com 微信:communist21 ---- 2024/02/10