HI,
Does anyone know how I could model an alanine dipeptide in IMP? My problem is capping,
I am not a big expert on dialanine but it seems common to cap the N- and C- terminals using ACE for the N-terminal and CT3 patch on the C-terminal (removing the OXT). Is that possible in IMP?
Best, Barak
On 11/9/22 9:24 AM, Barak Raveh wrote: > I am not a big expert on dialanine but it seems common to cap the N- and > C- terminals using ACE for the N-terminal and CT3 patch on the > C-terminal (removing the OXT). Is that possible in IMP?
Yes, this is fairly straightforward using the IMP.atom.CHARMMTopology class and friends. There's an example script below. There are a few rough edges though and this code hasn't seen much attention for a while (as you know we rarely work with atomic representation in IMP, and I don't think anyone has used the ACE or CT3 patches before). I'll open issues for these and make sure they get addressed in the next IMP release.
import IMP.atom
# Add atom types referenced by ACE and CT3 patches that IMP # doesn't know about elements = IMP.atom.get_element_table() IMP.atom.add_atom_type('CAY', elements.get_element('C')) IMP.atom.add_atom_type('CY', elements.get_element('C')) IMP.atom.add_atom_type('OY', elements.get_element('O')) IMP.atom.add_atom_type('CAT', elements.get_element('C'))
# Read CHARMM non-hydrogen parameters ff = IMP.atom.get_heavy_atom_CHARMM_parameters()
# Start building a single segment (chain) topology st = IMP.atom.CHARMMSegmentTopology()
# Get the topology of an ideal alanine from the CHARMM topology ideal_ala = ff.get_residue_topology(IMP.atom.ALA)
# Use ideal topology as a template to make the real alanine topology ala = IMP.atom.CHARMMResidueTopology(ideal_ala)
# Apply ACE and CT3 patches to our topology. Normally a residue can only # be patched once, so reset the patched flag after the first patch. ace = ff.get_patch("ACE") ct3 = ff.get_patch("CT3") ace.apply(ala) ala.set_patched(False) ct3.apply(ala)
# Add the residue and chain to the top-level topology st.add_residue(ala) t = IMP.atom.CHARMMTopology(ff) t.add_segment(st)
# Make a Hierarchy using this topology m = IMP.Model() h = t.create_hierarchy(m) IMP.atom.show(h)
Ben
Thanks!!
On Wed, Nov 9, 2022, 9:47 PM Ben Webb ben@salilab.org wrote:
> On 11/9/22 9:24 AM, Barak Raveh wrote: > > I am not a big expert on dialanine but it seems common to cap the N- and > > C- terminals using ACE for the N-terminal and CT3 patch on the > > C-terminal (removing the OXT). Is that possible in IMP? > > Yes, this is fairly straightforward using the IMP.atom.CHARMMTopology > class and friends. There's an example script below. There are a few > rough edges though and this code hasn't seen much attention for a while > (as you know we rarely work with atomic representation in IMP, and I > don't think anyone has used the ACE or CT3 patches before). I'll open > issues for these and make sure they get addressed in the next IMP release. > > > import IMP.atom > > # Add atom types referenced by ACE and CT3 patches that IMP > # doesn't know about > elements = IMP.atom.get_element_table() > IMP.atom.add_atom_type('CAY', elements.get_element('C')) > IMP.atom.add_atom_type('CY', elements.get_element('C')) > IMP.atom.add_atom_type('OY', elements.get_element('O')) > IMP.atom.add_atom_type('CAT', elements.get_element('C')) > > # Read CHARMM non-hydrogen parameters > ff = IMP.atom.get_heavy_atom_CHARMM_parameters() > > # Start building a single segment (chain) topology > st = IMP.atom.CHARMMSegmentTopology() > > # Get the topology of an ideal alanine from the CHARMM topology > ideal_ala = ff.get_residue_topology(IMP.atom.ALA) > > # Use ideal topology as a template to make the real alanine topology > ala = IMP.atom.CHARMMResidueTopology(ideal_ala) > > # Apply ACE and CT3 patches to our topology. Normally a residue can only > # be patched once, so reset the patched flag after the first patch. > ace = ff.get_patch("ACE") > ct3 = ff.get_patch("CT3") > ace.apply(ala) > ala.set_patched(False) > ct3.apply(ala) > > # Add the residue and chain to the top-level topology > st.add_residue(ala) > t = IMP.atom.CHARMMTopology(ff) > t.add_segment(st) > > # Make a Hierarchy using this topology > m = IMP.Model() > h = t.create_hierarchy(m) > IMP.atom.show(h) > > > Ben > -- > ben@salilab.org https://salilab.org/~ben/ > "It is a capital mistake to theorize before one has data." > - Sir Arthur Conan Doyle >
participants (2)
-
Barak Raveh
-
Ben Webb