Dear All
I run into something when using the Mutagenesis Wizard.
Given a peptide as this: ALA-HIS-TRP, created by <Alt>-A, <Alt>-H, 
<Alt>-T. After that I issue h_add to fill up valencies at the terminal 
carbonyl and amine sites.
Say I mutate now the terminal TRP to something else (e.g. GLU), i run 
into a problem. Now the hydrogen on the terminal carbonyl misses. This 
is very problematic for me, because I am working on a structure that was 
geometry optimized (700 atoms) and for which i spent some times in 
protonating correctly.

The question is: Can a residue at the end of a chain be mutated such 
that the hydrogen on the carbonyl group remains there?

I hope I could explain my problem and I would be very happy if there was 
a solution to this.

Thanks a lot
Martin










Am 15.09.10 00:33, schrieb Martin Hediger:
>    I'm beginning to see things.
> When I issue:
>
> for value in rot_lib[('ASP', 40, -100)]:
>       rl.write(str(value) + '\n')
>
> rot_lib is being initiated by
>
> rot_lib = 
> pickle.load(open("/Applications/PyMOLX11Hybrid.app/pymol/data/chempy/sidechains/sc_bb_dep.pkl",'r'))
>
>
> I get the following output:
> {('N', 'CA', 'CB', 'CG'): -169.69999999999999, 'FREQ':
> 0.47735699999999998, ('CA', 'CB', 'CG', 'OD1'): 3.6000000000000001}
> {('N', 'CA', 'CB', 'CG'): -173.5, 'FREQ': 0.19134399999999999, ('CA',
> 'CB', 'CG', 'OD1'): 56.799999999999997}
> {('N', 'CA', 'CB', 'CG'): -72.099999999999994, 'FREQ':
> 0.11949799999999999, ('CA', 'CB', 'CG', 'OD1'): -12.9}
> {('N', 'CA', 'CB', 'CG'): -167.80000000000001, 'FREQ': 0.108205, ('CA',
> 'CB', 'CG', 'OD1'): -55.5}
> {('N', 'CA', 'CB', 'CG'): -64.599999999999994, 'FREQ':
> 0.075302999999999995, ('CA', 'CB', 'CG', 'OD1'): -50.0}
> {('N', 'CA', 'CB', 'CG'): 62.399999999999999, 'FREQ': 0.013899, ('CA',
> 'CB', 'CG', 'OD1'): 1.3}
>
> I understand these are dictionaries containing the phi, psi values for a
> rotamer. Now this would mean in this case there are six rotamers for
> this situation. Starting to get closer to what i want.
> Still, if there is a easy way to get PDB files of every rotamer, that
> would solve my problem.
> So the thing left to figure out is how to find the right key for the
> rot_lib to give me the rotamers of the residue i am actually interested in.
>
> Thanks again for the support.
>
> Martin
>
>
>
>
>
>
> Am 14.09.10 01:01, schrieb Jason Vertrees:
>> Hi Martin,
>>
>> Try replacing
>>
>>> (phi, psi) = cmd.phi_psi("br. first my_res")
>> with
>>
>> (phi, psi) = cmd.phi_psi("br. first my_res").values()[0]
>>
>>
>> Here's what I have now, for the script (I fixed one more bug):
>> import pickle
>> rot_lib = 
>> pickle.load(open("/Applications/PyMOLX11Hybrid.app/pymol/data/chempy/sidechains/sc_bb_dep.pkl",'r'))
>> from pymol import stored
>> from pymol import cmd
>> stored.r = ''
>>
>> # What are we doing here? What is 'first'?
>>
>> cmd.iterate("first my_res", "stored.r = resn")
>>
>> (phi, psi) = cmd.phi_psi("br. first my_res").values()[0]
>> key = (stored.r, int(10*round(phi/10)), int(10*round(psi/10)))
>>
>> if key in rot_lib.keys():
>>      print "This rot has %s possible positions" % len(rot_lib[key])
>>
>>
>>
>> Cheers,
>>
>> -- Jason
>>
>> On Mon, Sep 13, 2010 at 5:04 PM, Martin Hediger<ma....@bluewin.ch>   wrote:
>>>    Hi Jason and PyMOL users
>>> I tried to run the script to get the number of rotamers, but I seem to have
>>> something missing.
>>> The script looks as follows:
>>>
>>> import pickle
>>> rot_lib =
>>> pickle.load(open("/Applications/PyMOLX11Hybrid.app/pymol/data/chempy/sidechains/sc_bb_dep.pkl",'r'))
>>> from pymol import stored
>>> from pymol import cmd
>>> stored.r = ''
>>>
>>> # What are we doing here? What is 'first'?
>>> cmd.iterate("first my_res", "stored.r = resn")
>>>
>>> (phi, psi) = cmd.phi_psi("br. first my_res")
>>> key = (stored.r, int(10*round(ph/10)), int(10*round(psi/10)))
>>> if key in rot_lib.keys():
>>>      print "This rot has %s possible positions" % len(rot_lib[key])
>>>
>>> Now, I save this into rotlib.py, 'cd' PyMOL into the directory where this
>>> script lies, select a residue from the GUI, rename the selection to 'my_res'
>>> and then 'run rotlib.py' the script. This returns the following ERROR
>>> message in PyMOL:
>>>
>>> Traceback ...
>>> (phi, psi) = cmd.phi_psi("br. first my_res")
>>> ValueError: need more than 0 values to unpack
>>>
>>> Unfortunately, I dont understand what this is trying to tell me right now,
>>> ok, some Argument seems to be missing, but I cant tell what exactly. Also,
>>> could you possibly extend your explanation on what the 'iterate' method is
>>> used for. I think this would help me a lot.
>>>
>>> As I said, all I want is a PDB file for every rotamer itself. If there is a
>>> simpler way to achieve this, that is fine with me. The number of rotamers is
>>> only important to me, since I need to know how many times i should issue
>>> 'cmd.forward()' and save.
>>>
>>> Thanks for the help.
>>> Martin
>>>
>>>
>>>
>>> Am 13.09.10 00:30, schrieb Jason Vertrees:
>>>> Hi Martin,
>>>>
>>>>> iterate first my_res, stored.r = resn
>>>> is syntactically correct, but could also be written,
>>>>
>>>> cmd.iterate("first my_res", "stored.r = resn");
>>>>
>>>> The command could be read as, "iterate over just first atom from the
>>>> selection called 'my_res' and place the residue name in which that
>>>> atom resides into 'stored.r'."  So, "first" is a new-ish selection
>>>> modifier that takes just the first atom from a selection.  It's _very_
>>>> handy: why iterate through all atoms in a residue to get a residue
>>>> name, when just the first will do?  "resn" indeed returns the 3-letter
>>>> residue code.
>>>>
>>>> A more efficient way might be:
>>>>
>>>> # select a residue, here #50 (or use the mouse)
>>>> select mySelection, i. 50
>>>>
>>>> # get it's one-letter residue id
>>>> print string.split(cmd.get_fastastr("mySelection"),'\n')[1]
>>>> # get it's three-letter residue id
>>>> print three_letter[string.split(cmd.get_fastastr("mySelection"),'\n')[1]]
>>>>
>>>> I just posted this on http://www.pymolwiki.org/index.php/Aa_codes.
>>>> (You will need the two dictionaries found there.)
>>>>
>>>> There really should be a much easier way to do that... Maybe someone
>>>> has a far easier command?
>>>>
>>>> Cheers,
>>>>
>>>> -- Jason
>>>>
>>>>
>>>>
>>>>
>>>> On Sun, Sep 12, 2010 at 4:25 PM, Martin Hediger<ma....@bluewin.ch>     
>>>> wrote:
>>>>>    Hi Jason, thanks for the comprehensive answer.
>>>>> One question though, is the line
>>>>>
>>>>> iterate first my_res, stored.r = resn
>>>>>
>>>>>
>>>>>
>>>>> correct this way? Are there no braces or quotation marks needed? Its not
>>>>> perfectly clear to me if 'first' and 'my_res' are selections (indicated
>>>>> by
>>>>> braces) or objects (name without braces in the main window).
>>>>> I understand 'resn' is something like 'GLU', if I want to know how many
>>>>> GLU
>>>>> rotamers are in the library.
>>>>>
>>>>> Thanks again
>>>>> Martin
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Am 12.09.10 22:00, schrieb Jason Vertrees:
>>>>>> Hi Martin,
>>>>>>
>>>>>> PyMOL first searches the Dunbrack rotamer library for hits based upon
>>>>>> the amino acid type and it's original phi/psi angles.  If it cannot
>>>>>> find a hit, it will then look for backbone independent positions.  To
>>>>>> get the number of available rotamers given a residue, you need to
>>>>>> unpickle the library, create the lookup key into the library and then
>>>>>> count the results.  It might look something like this:
>>>>>>
>>>>>> # unpickle the library
>>>>>> import pickle
>>>>>> rot_lib =
>>>>>>
>>>>>> pickle.load(open("$PYMOL_HOME/data/chempy/sidechains/sc_bb_dep.pkl",'r'))
>>>>>>
>>>>>> # get residue name, you need to select the residue
>>>>>> # into "my_res"
>>>>>> from pymol import stored
>>>>>> stored.r = ''
>>>>>> iterate first my_res, stored.r = resn
>>>>>>
>>>>>> # get residue info; prepare dictionary key
>>>>>> (phi,psi) = cmd.phi_psi("br. first my_res")
>>>>>>
>>>>>> # warren also does 20 and 60 in place of 10--three possible lookups
>>>>>> key = ( stored.r, int(10*round(phi/10)), int(10*round(psi/10)))
>>>>>>
>>>>>> if key in rot_lib.keys():
>>>>>>     print "This rotamer has %s possible positions" % len(rot_lib[key])
>>>>>>
>>>>>> Lookups in the independent library are easier--just provide a residue
>>>>>> name.
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> -- Jason
>>>>>>
>>>>>>
>>>>>> On Sun, Sep 12, 2010 at 11:04 AM, Martin Hediger<ma....@bluewin.ch>
>>>>>>    wrote:
>>>>>>>    Dear all, let me rephrase my question in a less confusing way.
>>>>>>> For a given mutant, I need a PDB file for every available rotamer. I
>>>>>>> guess thats the simplest way of putting it. How can I achieve that?
>>>>>>>
>>>>>>> Thanks for hints.
>>>>>>> Martin
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Am 12.09.10 00:08, schrieb Martin Hediger:
>>>>>>>>      Hi all
>>>>>>>> I want to do some scripted mutations on a range of residues. Say I
>>>>>>>> want
>>>>>>>> to mutate residue 189 to every rotamer of [Asp, His, Glu, Thr, Lys]
>>>>>>>> available in the PyMOL internal rotamer library. I'm seeing that PyMOL
>>>>>>>> issues cmd.get_wizard().do_state(i) to select rotamer 'i' for a
>>>>>>>> mutation. Now, if I want to iterate over all available rotamers, I
>>>>>>>> need
>>>>>>>> the limit rotamer number. How can I obtain the maximum number of
>>>>>>>> rotamers available for every amino acid?
>>>>>>>>
>>>>>>>> Thanks for hints on this
>>>>>>>>
>>>>>>>> Martin
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>> Start uncovering the many advantages of virtual appliances
>>>>>>>> and start using them to simplify application deployment and
>>>>>>>> accelerate your shift to cloud computing
>>>>>>>> http://p.sf.net/sfu/novell-sfdev2dev
>>>>>>>> _______________________________________________
>>>>>>>> PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
>>>>>>>> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
>>>>>>>> Archives:
>>>>>>>> http://www.mail-archive.com/pymol-users@lists.sourceforge.net
>>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>> Start uncovering the many advantages of virtual appliances
>>>>>>> and start using them to simplify application deployment and
>>>>>>> accelerate your shift to cloud computing
>>>>>>> http://p.sf.net/sfu/novell-sfdev2dev
>>>>>>> _______________________________________________
>>>>>>> PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
>>>>>>> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
>>>>>>> Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
>>>>>>>
>>
>
> ------------------------------------------------------------------------------
> Start uncovering the many advantages of virtual appliances
> and start using them to simplify application deployment and
> accelerate your shift to cloud computing.
> http://p.sf.net/sfu/novell-sfdev2dev
> _______________________________________________
> PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
> Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net
>


------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net

Reply via email to