unnatural amino acid insert to the protein

132 views Asked by At

I want to ask that how can I load my unnatural amino acid.mol to the specific protein site?

I think if there is a plugin can achieve this? Or is there annother software can achieve this? Thank you so much,if you can help me.

1

There are 1 answers

0
pippo1980 On

OK took a while, in Open-Source PyMOLᴛᴍ you can take advantage of the Mutagenesis Wizard , pymolwiki.org Mutagenesis :

enter image description here

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

enter image description here

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.

To modify the sc_bb_ind.pkl file with Python :

from chempy import io

file_orig = io.pkl.fromFile('sc_bb_ind.pkl')

file_orig['HLES'] = [{('N', 'CA', 'CB', 'CG'): -66.9, 'FREQ': 1.000000}]

io.pkl.toFile(file_orig,"sc_bb_ind.pkl_original+HLES")

Move sc_bb_ind.pkl_original+HLES as sc_bb_ind.pkl in /pymol/data/chempy/sidechains folder overwriting the old one

Then 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. :

import pymol

from pymol import (
                    
                    cmd ,
                    stored,
                    )


print('########## PYMOL VERSION ##########################################')
print('         ',  cmd.get_version() )
print('###################################################################')


pymol.finish_launching()

pdb = 'pept'

cmd.load(pdb+'.pdb' , pdb)

seq = cmd.get_fastastr(pdb)

print(seq)



"""

from 

https://sourceforge.net/p/pymol/mailman/pymol-users/thread/4E522A10.8070401%40bluewin.ch/#msg27979284 :
    
"""

# Initialize
# load yourProtein ## DONE ALREADY !!!
cmd.wizard("mutagenesis")
cmd.do("refresh_wizard")
#   
# To get an overview over the wizard API:
# for i in dir(cmd.get_wizard()): 
             
#     print(i)

# lets mutate residue 2 to HLES
cmd.get_wizard().set_mode("HLES")
cmd.get_wizard().do_select("2/")
#
# Select the rotamer
cmd.frame(1)
    
# Apply the mutation
cmd.get_wizard().apply()
cmd.set_wizard()

cmd.save("%s_mutated__HLES.pdb" % pdb, pdb)

# cmd.sync(timeout = 1.0 , poll = 0.05)

cmd.delete(pdb)

# cmd.sync(timeout = 1.0 , poll = 0.05)

print('new load !!!!!!!!!!!!!!!!!!!!!!')

cmd.load("%s.pdb" % pdb, pdb)

cmd.load("%s_mutated__HLES.pdb" % pdb, pdb+'_mutated')

seq = cmd.get_fastastr(pdb+'_mutated')  # returns A?GP , while using GUI wizard returns A HLES GP

print(seq)


If works right you should get the original pept.pdb :

enter image description here

changed to pept_mutated.pdb :

enter image description here

Interestingly the scripts print out as peptide sequence in terminal :

AWGP for the original peptide

A?GP for the mutated peptide

while PyMOL GUI gives :

enter image description here

Performing the mutation manually using the GUI Wizard you get :

enter image description here

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 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 

............
..........
........
......
....

For the SwissSidechain rotamers How were the rotamer libraries generated in SwissSidechain?:

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).