OK took a while, in Open-Source PyMOLᴛᴍ you can take advantage of the Mutagenesis Wizard , pymolwiki.org Mutagenesis :
As an example , I crete a fake aa [just adding some atoms toghether . forget about the chemistry in it] let's call it HLES :
ATOM 1 N HLESA 2 3.371 1.462 0.000 1.00 0.00 N
ATOM 2 CA HLESA 2 4.047 2.756 0.000 1.00 0.00 C
ATOM 3 C HLESA 2 5.547 2.582 0.000 1.00 0.00 C
ATOM 4 O HLESA 2 6.078 1.465 -0.011 1.00 0.00 O
ATOM 5 CB HLESA 2 3.660 3.584 1.261 1.00 0.00 C
ATOM 6 CG HLESA 2 2.162 3.871 1.466 1.00 0.00 C
ATOM 7 CD HLESA 2 1.968 4.708 2.744 1.00 0.00 C
ATOM 8 CE2 HLESA 2 0.481 5.082 2.892 1.00 0.00 C
ATOM 9 S01 HLESA 2 -0.066 5.995 1.415 1.00 0.00 S
ATOM 10 S02 HLESA 2 2.968 6.225 2.635 1.00 0.00 S
END
Pay attention to the fact that this aa as a chain letter A assigned to it , it could bite you back later on.
I can use PyMOL to save it as Pickled : File Menu -> Export Molecule ->
Save with File type ChemPy Pickle (*.pkl) let's say hles.pkl .
Then You need to move such file into pymol/data/chempy/fragments folder
toghether with all the other fragments or aa.
After that You need to modify the /pymol/data/chempy/sidechains/sc_bb_ind.pkl file that
contain the backbone independent rotamers for all (not really all some dont have rotamers) fragments/aa in the previous mentioned folder.
You could also modify the /pymol/data/chempy/sidechains/sc_bb_dep.pkl file that contains the backbone dependent rotamers for all fragments/aa in the pymol/data/chempy/fragments folder , but this is going to be more tricky,
see /pymol-open-source/modules/pymol/wizard/mutagenesis.py and the file itself to grasp some notion about it. It's written somewhere that PyMOL : PyMOL now uses Dunbrack rotamers by default.
I'll be very happy if anybody could point me towards a nice python script that could calculate sc_bb_ind.pkl and sc_bb_dep.pkl for new aminoacid as per the bbind02.May.lib. I know this library is derived from a statistical analisys of the aa present in a some number of deposited protein structures (PDBs), but nevertheless the rotamers could be calculated in some other way ( theoretically ... some energy whatsoever ... etc).
Backbone-independent rotamer library May 15, 2002
*********************************************
* *
* Roland L. Dunbrack, Jr., Ph. D. *
* *
* Associate Member *
* Institute for Cancer Research *
* Fox Chase Cancer Center *
* 7701 Burholme Avenue *
* Philadelphia PA 19111 *
* *
* Email: [email protected] *
* URL: www.fccc.edu/research/labs/dunbrack *
* *
*********************************************
Rotamers are defined as follows:
r1 = chi1 rotamer = N- CA-CB- XG(1) dihedral
r2 = chi2 rotamer = CA-CB-XG(1)-XD(1) dihedral
r3 = chi3 rotamer = CB-XG-XD- XE(1) dihedral
r4 = chi4 rotamer = XG-XD-XE- XZ dihedral
Chi angle ranges for each rotamer type
=======================================
r1 rotamers of all residue types except Pro
r2 rotamers of Arg, Gln, Glu, Ile, Leu, Lys, Met
r3 rotamers of Arg, Lys, Met
r4 rotamers of Arg, Lys
r1,r2,r3,r4 Conformation chi range
----------- ------------ -----------------
1 g+ 0 <= chi < 120
2 t 120 <= chi < 240
3 g- -120 <= chi < 0
r2 rotamers of Asn, Asp
r3 rotamers of Gln, Glu
r2, r3 Conformation chi range
----------- ------------ -----------------
1 g+ 30 <= chi < 90
2 t -30 <= chi < 30
3 g- -90 <= chi < -30
r2 rotamers of Phe, Tyr, His
r2 Conformation chi range
----------- ------------ -----------------
1 g 30 <= chi < 150
2 t -30 <= chi < 30
r2 rotamers of Trp
r2 Conformation chi range
----------- ------------ -----------------
1 g+ -180 <= chi < -60
2 t -60 <= chi < 60
3 g- 60 <= chi < 180
r1 rotamers of Pro
r1 Conformation chi range
----------- ------------ -----------------
1 g+ (Cg-endo) 0 <= chi < 90
2 g- (Cg-exo) -90 <= chi < 0
This library contains both a traditional backbone-independent rotamer library
which contains values for p(r1,r2,r3,r4), and a conditional backbone-independent
rotamer library, which consists of values for p(r2,r3,r4 | r1).
The conditional library gives the probability that a sidechain will be
in an r2 or r2,r3 or r2,r3,r4 rotamer given that r1 is a particular
rotamer. These values are combined with the backbone-dependent r1
preferences to form a complete backbone-dependent rotamer library.
This rotamer library was derived from a Bayesian statistical analysis of
sidechains from 850 protein chains in the Protein Databank.
Details, Protein Science, 6, 1661-1681 (1997).
Res Rotamer n(r1) n(r1234) p(r1234) sig p(r234|r1) sig chi1 sig chi2 sig chi3 sig chi4 sig
1 2 3 4
ARG 1 1 1 1 568 2 0.04 0.02 0.41 0.22 55.4 19.8 79.7 16.1 62.4 15.0 82.3 11.9
ARG 1 1 1 2 568 5 0.07 0.03 0.83 0.31 59.2
............
..........
........
......
....
How were the rotamer libraries generated in SwissSidechain?
For natural sidechains, rotamers have been generated by running statistics on all available X-ray structures in the PDB (as of Jan 2012) with a resolution lower or equal to 1.75 Ångströms. For non-natural sidechains, we used a combined physics-based and knowledge-based approach. This consists in computing the probability of each rotamer based on MD trajectories and renormalizing the obtained probabilities for the first dihedral angles by the ones obatined for natural sidechains in experimental structure (see our paper (PDF) for more details).
OK took a while, in Open-Source PyMOLᴛᴍ you can take advantage of the Mutagenesis Wizard , pymolwiki.org Mutagenesis :
As an example , I crete a fake aa [just adding some atoms toghether . forget about the chemistry in it] let's call it
HLES
:Pay attention to the fact that this aa as a chain letter A assigned to it , it could bite you back later on.
I can use PyMOL to save it as
Pickled
: File Menu -> Export Molecule ->Save with File type
ChemPy Pickle (*.pkl)
let's sayhles.pkl
.Then You need to move such file into
pymol/data/chempy/fragments
foldertoghether with all the other fragments or aa.
After that You need to modify the
/pymol/data/chempy/sidechains/sc_bb_ind.pkl
file that contain the backbone independent rotamers for all (not really all some dont have rotamers) fragments/aa in the previous mentioned folder.You could also modify the
/pymol/data/chempy/sidechains/sc_bb_dep.pkl
file that contains the backbone dependent rotamers for all fragments/aa in thepymol/data/chempy/fragments
folder , but this is going to be more tricky, see /pymol-open-source/modules/pymol/wizard/mutagenesis.py and the file itself to grasp some notion about it. It's written somewhere that PyMOL :PyMOL now uses Dunbrack rotamers by default
.To modify the
sc_bb_ind.pkl
file with Python :Move
sc_bb_ind.pkl_original+HLES
assc_bb_ind.pkl
in/pymol/data/chempy/sidechains
folder overwriting the old oneThen if I was able to write it down in the same way I did , try the following code stolen from PyMol mailing list ([PyMOL] Interacting with Mutagenesis wizard in command line. :
If works right you should get the original
pept.pdb
:changed to
pept_mutated.pdb
:Interestingly the scripts print out as peptide sequence in terminal :
AWGP
for the original peptideA?GP
for the mutated peptidewhile PyMOL GUI gives :
Performing the mutation manually using the GUI Wizard you get :
I don't know what is going up here, but please reply if you know more.
You can read more about all of this in : DUNBRACK LAB and in this old plugin : SwissSidechain - PyMOL Plugin v2
I'll be very happy if anybody could point me towards a nice python script that could calculate
sc_bb_ind.pkl
andsc_bb_dep.pkl
for new aminoacid as per thebbind02.May.lib
. I know this library is derived from a statistical analisys of the aa present in a some number of deposited protein structures (PDBs), but nevertheless the rotamers could be calculated in some other way ( theoretically ... some energy whatsoever ... etc).For the SwissSidechain rotamers How were the rotamer libraries generated in SwissSidechain?: