Rosetta是基于残基模块计算,也就是说Rosetta不把原子单独对待,而是把它们看作一个完整的化学实体。为了实现这个目标,Rosetta必须知道键长、键角以及其它性质。对标准残基和小分子残基模型都是必须的。Rosetta在params文件中对残基的性质进行编码。Rosetta数据库包含常见氨基酸残基和小分子残基的parmas文件。当我们添加新的配体时,需要生成新的parms文件。
What is a Params File
params文件包含残基的几何形状和化学特征的信息,为了让Rosetta理解怎样运行这个残基,应该有一个和这个残基相关联的params文件。可在Rosetta/main/database/chemical/residue_type_sets/fa_standard/residue_types 查看标准残基的params文件
Generating the Params File
我在win10上装的openbabel-3-1-1版本,利用open babel生成配体构象簇(conformers)
D:\abc\Chem\Rosetta\prepare-ligand\UNK> obabel UNK.mol2 -O UNK_conformers.sdf --conformer --nconf 30 --score rmsd --writeconformers
Initial conformer count: 30
128 attempts, 35 duplicates, 64 failed filter.
0 0 0 0
0 0 0 6
2 2 1 6
2 0 1 0
2 0 1 11
2 1 1 11
2 1 1 4
2 2 1 4
.........
0 1 0 2
2 2 0 5
=====> Starting conformers search with a Genetic Algorithm <=====
Perform elitist generation replacement with mutation only
Mutation probability: 0.2
Will stop after 5 generations without improvement.
Generation #1 0.394971
Generation #2 0.394971
Generation #3 0.394971
Generation #4 0.394971
Generation #5 0.394971
Generation #6 0.394971
1 0 2 3
1 0 0 3
1 0 0 6
2 0 0 0
1 1 2 2
.........
2 0 1 1
GetConformers:
1 0 2 3
1 0 0 3
1 0 0 6
2 0 0 0
..........
2 0 1 1
1 molecule converted
当生成 UNK_conformers.sdf,就可利用Rosetta生成params文件
[user@localhost UNK]$ /usr/local/python-2.7.16/bin/python2 $ROSETTA/main/source/scripts/python/public/molfile_to_params.py -n UNK -p UNK --conformers-in-one-file UNK_conformers.sdf
Centering ligands at ( 33.159, 123.537, 22.683)
Atom names contain duplications -- renaming all atoms.
WARNING: structure contains double bonds but no aromatic bonds
Aromatic bonds must be identified explicitly --
alternating single/double bonds (Kekule structure) won't cut it.
This warning does not apply to you if your molecule really isn't aromatic.
Total naive charge 0.570, desired charge 0.000, offsetting all atoms by -0.025
WARNING: fragment 1 has 6 rotatable bonds; protein residues have 0 - 4
Average 23.0 atoms (11.0 non-H atoms) per fragment
(Proteins average 15.5 atoms (7.8 non-H atoms) per residue)
WARNING: no root atom specified, using NBR atom instead.
Wrote params file UNK.params
[user@localhost UNK]$ ll
total 128
-rw-rw-r-- 1 user user 56376 Aug 4 02:29 UNK_conformers.pdb
-rw-rw-r-- 1 user user 65280 Aug 4 02:15 UNK_conformers.sdf
-rw-rw-r-- 1 user user 3233 Aug 4 02:29 UNK.params
-rw-rw-r-- 1 user user 1944 Aug 4 02:29 UNK.pdb
-n:定义配体的名称
-p:定义params文件的名称
查看molfile_to_params.py其他参数:
(base) [user@localhost prepare-ligand]$ /usr/local/python-2.7.16/bin/python2 $ROSETTA/main/source/scripts/python/public/molfile_to_params.py --help
Usage: molfile_to_params.py [flags] { INPUT.mol | INPUT.sdf | INPUT.mol2 }
.......
params文件内容解析:
文件最后一行出现:PDB_ROTAMERS UNK_conformers.pdb,告诉Rosetta配体的params文件的存放位置。params文件成功生成。
(base) [user@localhost UNK]$ cat UNK.params
NAME UNK
IO_STRING UNK Z
TYPE LIGAND
AA UNK
ATOM C2 CH2 X -0.20
ATOM C1 CH2 X -0.20
ATOM P1 Phos X 1.48
ATOM O1 OH X -0.68
ATOM H1 Hpol X 0.41
ATOM O4 OOC X -0.78
.....................................
ATOM H9 Hpol X 0.41
ATOM H6 Hapo X 0.07
ATOM H4 Hapo X 0.07
ATOM H5 Hapo X 0.07
BOND_TYPE O1 P1 1
BOND_TYPE O1 H1 1
BOND_TYPE P1 C1 1
...............................
BOND_TYPE C5 H11 1
BOND_TYPE C5 H12 1
CHI 1 C1 P1 O1 H1
PROTON_CHI 1 SAMPLES 3 60 -60 180 EXTRA 1 20
CHI 2 C3 C4 O2 H7
PROTON_CHI 2 SAMPLES 2 0 180 EXTRA 1 20
CHI 3 C2 C1 P1 O1
CHI 4 C3 C2 C1 P1
CHI 5 C1 C2 C3 C4
CHI 6 C2 C3 C4 O2
NBR_ATOM C2
NBR_RADIUS 5.927369
ICOOR_INTERNAL C2 0.000000 0.000000 0.000000 C2 C1 P1
ICOOR_INTERNAL C1 0.000000 180.000000 1.537659 C2 C1 P1
...........................................................................................
ICOOR_INTERNAL H9 -118.304686 69.354124 1.012360 N1 C3 H8
ICOOR_INTERNAL H6 -119.010428 70.595842 1.087616 C3 C2 N1
ICOOR_INTERNAL H4 121.526683 71.895723 1.090501 C2 C1 C3
ICOOR_INTERNAL H5 114.865154 70.839308 1.090099 C2 C1 H4
PDB_ROTAMERS UNK_conformers.pdb
Using Params File during the Run
params文件已经生成,运行时需告知Rosetta它在哪里,所以在命令行中添加 “ -extra_res_fa ”选项
-extra_res_fa <path-to-params-file>
生成配体构象簇
在Rosetta中Ligand-docking教程,给出了生成构象簇的软件是BCL、OpenEye’s MOE、CSD Mercury,在线网站是Frog 2.1、DG-AMMOS。我尝试过这5个程序,最好用的是Open Babel,开源免费,操作简单。
参考链接 Preparing-Ligands