根据这个网站一步步尝试的Installation — Frustratometer documentationhttps://frustratometer.readthedocs.io/en/latest/installation.html
一、安装Frustratometer
1、安装Git,前往官网
Githttps://git-scm.com/ 在安装过程中选择“Git from the command line and also from 3rd-party software”选项,这样可以确保 Git 被添加到环境变量中。(我当时忘记添加这个选项,所以后来自己添加环境变量的:
-
- 打开“设置”,搜索并选择“环境变量”。
- 在“系统变量”中找到并双击“Path”变量。
- 点击“新建”,然后添加 Git 的安装路径(如
C:\Program Files\Git\bin
)。 - 点击“确定”保存设置。
-
重启 PowerShell,然后再次尝试运行
git
命令。) - 安装完成后,重新打开 PowerShell。
- 输入
git --version
,如果安装成功,你会看到 Git 的版本信息。
2、安装主模块
- 使用
git clone
命令克隆项目仓库到本地。 - 进入项目目录后,使用
conda
和pip
安装项目所需的依赖包。
git clone https://github.com/HanaJaafari/Frustratometer.git
cd Frustratometer
conda install -c conda-forge --file requirements.txt
pip install -e .
这里因为我用的是python2.5的环境,所以好像pip和setuptools不太兼容的亚子。。。最后一句我就换成了
conda develop .
不嫌麻烦的话也可以一步一步手动安装兼容版本的pip和setuptools
3、安装可选依赖项
1) 安装 pydca
支持从多个序列比对计算 DCA Potts 模型
git clone https://github.com/cabb99/pydca.git
cd pydca
pip install -e .
2) 安装 pdbfixer
PDBFIXER 是用于修复不完整 PDB 的可选依赖项。
conda install -c conda-forge openmm pdbfixer
二、使用Frustratometer
1、加载蛋白质结构
1)检查并安装prody
pip install prody
2)运行python脚本(和官网不太一样,因为我的python环境不是最新的)
在 Python 2.5 中,你需要用双反斜杠(\\
)或者正斜杠(/
)来表示路径,确保它们不会被误解为转义字符。
python
import frustratometer
pdb_path = 'E:\\AAAAASPRJ\\Frustratometer\\Frustratometer\\work\\NVVC.pdb'
structure = frustratometer.Structure(pdb_path)
structure.sequence
调用Structure的时候也不是用的官网的full_pdb模块了,可能是弃用了
至此就是成功加载蛋白质结构了
2、创建 AWSEM 模型
根据不同的需求,你可以创建不同的 AWSEM 模型
- 单个残基的挫折(包含静电作用)
model_singleresidue = frustratometer.AWSEM(structure, min_sequence_separation_contact=0, dtype=np.float32)
参数:min_sequence_separation_contact=2
表示只有序列分离大于或等于 2 的接触才会被计 算。
- 单个残基的挫折(不包含静电作用)
model_singleresidue_noelectrostatics = frustratometer.AWSEM(structure, min_sequence_separation_contact=2, k_electrostatics=0)
参数:
k_electrostatics=0
表示静电作用的权重设为 0。 -
突变/构象挫折(包含静电作用)
model_mutational = frustratometer.AWSEM(structure, k_electrostatics=0, dtype=np.float32)
默认参数会被使用。
-
突变/构象挫折(不包含静电作用)
model_mutational_noelectrostatics = frustratometer.AWSEM(structure, k_electrostatics=0, dtype=np.float32)
与上一个模型相同,但不考虑静电作用。
-
突变挫折(序列分离为 12)
model_mutational_seqsep12 = frustratometer.AWSEM(structure, min_sequence_separation_rho=13)
参数:
min_sequence_separation_rho=13
指定最小序列分离。 -
典型的 openAWSEM 模型
model_openAWSEM = frustratometer.AWSEM(structure, min_sequence_separation_contact=10, distance_cutoff_contact=None)
参数:
min_sequence_separation_contact=10
表示最小接触分离为 10。
1)构建单个残基模型尝试一下
构建模型的时候还会遇到内存不足的情况,可以将参数调低
model_singleresidue = frustratometer.AWSEM(structure, min_sequence_separation_contact=0, dtype=np.float32)
如果还是构建不出来,可能是python环境垃圾太多了,清理一下
import gc
gc.collect()
就成功了
2)计算残基密度(只有在第一步构建的是单个残基的模型才可以计算)
calculated_densities = model_singleresidue.rho_r
print(calculated_densities)
3)计算挫折指数
- 单个残基指数
single_residue_frustration = model_singleresidue.frustration(kind='singleresidue') print(single_residue_frustration)
-
单个残基的诱变波动(快速计算所有单个残基的能量和诱变)
decoy_fluctuation = model_singleresidue.decoy_fluctuation(kind='singleresidue') print(decoy_fluctuation)
-
突变的挫折指数(这个要构建了突变模型才可以做)
mutational_frustration = model_mutational.frustration(kind='mutational') print(mutational_frustration)
3)能量计算