From: Josh Vermaas (vermaasj_at_msu.edu)
Date: Fri Mar 29 2024 - 11:58:43 CDT

Hi Kyle,

Another option is to pdbalias the atomname, like your script already
does for an atom in ILE. I haven't looked at the input pdb, but that
might also let psfgen pick up the name without too much fuss.

-Josh

On 3/29/24 12:19 PM, Kyle Billings wrote:
> That makes sense, but as far as I can tell I still get an issue with
> the atom positions after the guess cords. I have attached the TCL
> script for psf gen for reference as well as the resulting psf and pdb
> in case it helps
>
> On Fri, Mar 29, 2024 at 10:47 AM Josh Vermaas <vermaasj_at_msu.edu> wrote:
>
> Do you guesscoord anywhere in the script? After regenerating
> angles and dihedrals, but before writing a pdb, guesscoord will
> let PSFgen fill in any blanks. I would expect it to do a good job,
> since those atoms are bonded to atoms with actual positions.
>
> -Josh
>
> On 3/28/24 4:15 PM, Kyle Billings wrote:
>>
>> Thanks for the explanation Josh. I updated the TLC script I was
>> using to patch the residues to now read
>> ------------------------------------------------------------------------------------------------------------------------------
>> foreach i {0 1 2 3} {
>>         # make the segment
>>         segment PRO$i {
>>                 pdb parts/fixed_${i}.pdb
>>         }
>>         patch EETY PRO$i:77 PRO$i:78
>>         patch GLUP PRO$i:71
>>         coordpdb parts/fixed_${i}.pdb PRO$i
>>         regenerate angles dihedrals
>> }
>> -------------------------------------------------------------------------------------------------------------------------
>>  Unfortunately, the atom positions for the Tyr 78 OE and HA atoms
>> positions still fail to be guessed. The solution I am thinking of
>> right is to manually add in the IC parameters, for the EETY PRES,
>> to allow psfgen to better guess the atoms position . Is this
>> actually worth the effort, or is there a better way to build the
>> protein?
>>
>> Kyle
>>
>>
>>
>> On Wed, Mar 27, 2024 at 10:51 AM Vermaas, Josh <vermaasj_at_msu.edu>
>> wrote:
>>
>> Hi Kyle,
>>
>> Since until you patch the residues, the atom names probably
>> won’t match what they should. The thing that is unintuitive
>> about psfgen is that you need to hold two things in your
>> head: 1.) The literal topology and identity of the atoms, and
>> 2) The coordinates. The topology (how the atoms are bonded)
>> and identity (atomtypes, masses, charges) all end up in the
>> psf, and as the name suggests, this is what psfgen actually
>> cares the most about. It is good practice to make sure that
>> the topology is correct before setting coordinates, since PDB
>> generation (the coordinates) is done by psfgen sort of as an
>> afterthought. What psfgen does to set coordinates is it reads
>> in the input pdb, and takes coordinates from atoms that have
>> the same name, resid, and segname in the input, and assigns
>> them to the output structure psfgen has in its memory. So if
>> you coordpdb **before** patching, psfgen will dutifully
>> assign all the atoms it knows about from the input structure
>> (normal protein backbone, most of the sidechain). But since
>> it hasn’t been patched yet, psfgen doesn’t know about the
>> extra ester-specific atoms, which are only added after
>> patching. If you patch after the coordpdb, psfgen will make
>> those atoms exist, but they won’t have coordinates assigned,
>> so the default is the origin.
>>
>> -Josh
>>
>> *From: *Kyle Billings <krb_at_udel.edu>
>> *Date: *Tuesday, March 26, 2024 at 4:18 PM
>> *To: *"Vermaas, Josh" <vermaasj_at_msu.edu>
>> *Subject: *Re: vmd-l: Atoms poorly guessed after applying a
>> patch in Psfgen
>>
>> Thanks Josh,
>>
>> I must have not copied those lines into the intal post, but i
>> am curious why you patched the residues before getting the
>> coordinates of the molecule?
>>
>> Thanks for the help ,
>>
>> Kyle
>>
>> On Mon, Mar 25, 2024 at 4:01 PM Josh Vermaas
>> <vermaasj_at_msu.edu> wrote:
>>
>> Hi Kyle,
>>
>> Where is the patch being applied? I don't see it in the
>> script snippets. Based on the topology file you sent, I'd
>> expect a patch command to be issued before you try to
>> guess the coordinates. Patches get applied after
>> segments. So your innermost loop would look something
>> like this:
>>
>> segment PRO$i {
>>                 pdb parts/fixed_${i}.pdb
>> }
>> #Apply the patch.
>> patch EETY PRO$i:77 PRO$I:78
>> # coord pdb
>> coordpdb parts/fixed_${i}.pdb PRO$i
>>
>> regenerate angles dihedrals
>>
>> -Josh
>>
>> On 3/25/24 1:28 PM, Kyle Billings wrote:
>>
>> Hello Users,
>>
>>   I am working on creating a psf/pdb using Psfgen to
>> model an ester between the Gly77-Tyr78 of KcsA
>> (PDB:4MSW). I found parameters to modify the ester
>> linkage published from Li. et. al
>> (https://urldefense.com/v3/__https://doi.org/10.1073/pnas.1706983114__;!!DZ3fjg!6BMTjvC6wQAOCWhmgsvEX5mehZKi-tva8DWC1DS0ua0js0c4HD6g0nhlMOSeZJc1LXcbrzms2BLaVX6lC6A$
>> <https://urldefense.com/v3/__https:/doi.org/10.1073/pnas.1706983114__;!!DZ3fjg!7NANVEnRX4o-lm715IR1fjoNBdHcy2zDmDRJcMQkTp89tzO1zO6hT5uQmDGsXeAEciouaoaTomL06g$>)
>> and the file should be attached to this post. When
>> applying the patch, the positions ester oxygen and
>> the alpha carbon hydrogen atom of Tyr78 fail to be
>> set. I was wondering if there is a flaw in my
>> methodology that I am not seeing? I am sorry for the
>> length of this message in advance.
>>
>>  The current method is to convert manually the TYF 78
>> to TYR 78, because 4MSW already has the ester in the
>> structure. This is to comply atom naming from the
>> patch for each monomer of 4MSW.
>>
>> -----------------------------------------------------------------------------------------------
>> for {set i 0} { $i < 4 } { incr i } {
>>         puts $i
>>         # load the ##_*.pdb
>>         mol load pdb 4MSW/${i}_4msw.pdb2.pdb
>> #       # select the atoms that we need to make
>>         [atomselect top "resname TYF and name C1 " ]
>> set name C
>>         [atomselect top "resname TYF and name O1"  ]
>> set name O
>>         [atomselect top "resname TYF and name N"   ]
>> set type NH1
>>         [atomselect top "resname TYF and name C2" ]
>> set name  CA
>>         [atomselect top "resname TYF and name C3 " ]
>> set name CB
>>         [atomselect top "resname TYF and name C4 " ]
>> set name CG
>>         [atomselect top "resname TYF and name C5 " ]
>> set name CD1
>>         [atomselect top "resname TYF and name C6 " ]
>> set name CE1
>>         [atomselect top "resname TYF and name C7 " ]
>> set name CZ
>>         [atomselect top "resname TYF and name C8 " ]
>> set name CE2
>>         [atomselect top "resname TYF and name C9 " ]
>> set name CD2
>>         [atomselect top "resname TYF and name O3"]
>> set name OH
>>         [atomselect top "resname TYF "] set resname TYR
>>         [atomselect top "not (resname HOH TIP3 OH2
>> SOL DGA K)"  ] writepdb parts/TEMP_fixed_${i}.pdb
>> }
>>
>> -----------------------------------------------------------------------------------------------
>>
>>   From there we can the newly made monomer pdb's to
>> build the psf. I apply the pdbalias as stated in
>> the Membrane Proteins Tutorial (Advanced), and load
>> in the CHARMM36 topologies. After the adding the
>> additional topology for the amide to ester mutation I
>> build the psf/pdb a follows.
>>
>> -----------------------------------------------------------------------------------------------
>>
>> topology toppar/toppar_all36_amide_to_ester.str
>>
>> foreach i {0 1 2 3} {
>>         # make the segment
>>         segment PRO$i {
>>                 pdb parts/fixed_${i}.pdb
>>         }
>>         # coord pdb
>>         coordpdb parts/fixed_${i}.pdb PRO$i
>>
>> regenerate angles dihedrals
>>
>> }
>>
>> regenerate angles dihedrals
>>
>> writepdb KcsA_ester.pdb
>> writepsf KcsA_ester.psf
>>
>> -----------------------------------------------------------------------------------------------
>>
>>   The resulting pdb has both the OE atom and the HA
>> atom of the Tyr78-Gly77 ester are failed to be
>> guessed. My current solution to fix the atoms OE
>> position it so move the atom using scripting is to
>> move that atom to the crystal structure atom
>> position. I am worried that this is will induce
>> artifacts however. My only other thought is build a
>> separate top file for TYF residue in 4MSW from the
>> protein topology/parameters and the top of the
>> patch.  Any advice is welcome, and thanks for your time.
>>
>> Kyle
>>
>> Post Doc. at University of  Delaware
>>
>>
>>
>> --
>>
>> Josh Vermaas
>>
>>
>>
>> vermaasj_at_msu.edu
>>
>> Assistant Professor, Plant Research Laboratory and Biochemistry and Molecular Biology
>>
>> Michigan State University
>>
>> vermaaslab.github.io <https://urldefense.com/v3/__http:/vermaaslab.github.io__;!!HXCxUKc!xBR4rlbRRKLv7IGpl3aRcYp3lEhYG9UXX6NNX4FXRM7XOKT5pBke-dN3LGpQ75NJ4VNpEu7-c0c$>
>>
>
> --
> Josh Vermaas
>
> vermaasj_at_msu.edu
> Assistant Professor, Plant Research Laboratory and Biochemistry and Molecular Biology
> Michigan State University
> vermaaslab.github.io <https://urldefense.com/v3/__http://vermaaslab.github.io__;!!HXCxUKc!zpTY57bWYNAa9k3SXmb01wY2luCTBgHE2s2wh3PEbmVY2jdNGlowFPYl4U4yZ8-UVQ7XUxPYxSI$>
>

-- 
Josh Vermaas
vermaasj_at_msu.edu
Assistant Professor, Plant Research Laboratory and Biochemistry and Molecular Biology
Michigan State University
vermaaslab.github.io