> hello, again. two queries. i) my (imported) aromatic proton assignments (Hd*,
> He* from my 2D aromatic experiments) exist only in the peaklist, not as
> resonances. can't figure out why.
I'm only guessing at the problem, but if you've been using FormatConverter
you will need to run linkResonances (in the Process menu) to connect
Resonances to the molecular system.
Otherwise, if you're importing in some other way, let me know which
functions you used to do the assignment and I will try to replicate the
situation.
> ii) if i get hold of two resonance objects,
> how do i find out if they are directly bonded to one another? i can get as far
> as establishing that they exist in the same residue but beyond that, i'm stuck.
There is a direct Resonance-Resonance link: resonance.covalentlyBound.
However, this is not currently filled in (no real need so far). This will
be done at some stage, i.e. will be set automatically with the assignment
functions and given Experiment prototypes (which aren't yet modelled).
However, in the mean time you can work out the connectivity if the
resonances are assigned to atoms, by going through the ChemComps. You can
set resonance.covalentlyBound so that the API will save the data. The
functions would be something like:
----
def areAtomsBound(atom1, atom2):
for chemBond in atom1.chemAtom.chemBonds:
if atom2 in chemBond.chemAtoms:
return 1
return 0
def areResonancesBound(resonance1,resonance2):
# check both resonances are assigned to atoms
# (else the return is None)
if resonance1.resonanceSet and resonance2.resonanceSet:
residue1 = resonance1.resonanceSet.atomSets[0].atoms[0].residue
residue2 = resonance2.resonanceSet.atomSets[0].atoms[0].residue
# quickly discard on the basis of residue
if residue1 is not residue2:
return 0
for atomSet1 in resonance1.reasonanceSet.atomSets:
for atom1 in atomSet1.atoms:
for atomSet2 in resonance2.resonanceSet.atomsSets:
for atom2 in atomSet2.atoms:
if areAtomsBound(atom1,atom2):
return 1
return 0
# The default No
def findBoundResonances(resonance):
boundResonances = ()
if resonance.resonanceSet:
residue = resonance.resonanceSet.atomSets[0].atoms[0].residue
for atomSet in resonance.resonanceSet.atomSets:
for atom in atomSet.atoms:
for atom2 in residue.atoms:
if (atom2.atomSet) and (atom2.atomSet.resonanceSet)
and (atom2.atomSet is not atomSet):
if areAtomsBound(atom, atom2):
resonances = atom2.atomSet.resonanceSet.resonances
boundResonances.extend(resonances)
return boundResonances
----
Hope this helps,
Tim
-------------------------------------------------------------------------------
Dr Tim Stevens Email: [log in to unmask]
Department of Biochemistry [log in to unmask]
University of Cambridge Phone: +44 1223 766022 (office)
80 Tennis Court Road +44 7816 338275 (mobile)
Old Addenbrooke's Site +44 1223 364613 (home)
Cambridge CB2 1GA WWWeb: http://www.bio.cam.ac.uk/~tjs23
United Kingdom http://www.pantonia.co.uk
-------------------------------------------------------------------------------
------ +NH3CH(CH(CH3)OH)C(O)NHCH(CH(CH3)CH2CH3)C(O)NHCH(CH2CH2SCH3)CO2- -------
-------------------------------------------------------------------------------
|