[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[IMP-users] Re: a capped dialanine in IMP



Thanks!!

On Wed, Nov 9, 2022, 9:47 PM Ben Webb <> 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
> --
>                       https://salilab.org/~ben/
> "It is a capital mistake to theorize before one has data."
>         - Sir Arthur Conan Doyle
>


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
ZjQcmQRYFpfptBannerStart
This Message Is From an Untrusted Sender
You have not previously corresponded with this sender.
 
ZjQcmQRYFpfptBannerEnd
Thanks!! 

On Wed, Nov 9, 2022, 9:47 PM Ben Webb <">> 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
--
" target="_blank" rel="noreferrer">                      https://salilab.org/~ben/
"It is a capital mistake to theorize before one has data."
        - Sir Arthur Conan Doyle