Closed GoogleCodeExporter closed 9 years ago
Below shows 2 restraints where the first should have a ssa and the second
should have a non-ssa Val gamma group:
CING collapses both to non-ssa.
DEBUG: Constraint [245]: [0.0] - [3.9]
DEBUG: [20.H] - [20.HG11,20.HG12,20.HG13,20.HG21,20.HG22,20.HG23]
DEBUG:
DEBUG: fixedResonanceListOfList: [[<ccp.nmr.NmrConstraint.FixedResonance [1,
99]>, <ccp.nmr.NmrConstraint.FixedResonance [1, 384]>]]
DEBUG: fixedResonanceList: [<ccp.nmr.NmrConstraint.FixedResonance [1, 99]>,
<ccp.nmr.NmrConstraint.FixedResonance [1, 384]>]
DEBUG: fixedAtomSetListLeft = [<ccp.nmr.NmrConstraint.FixedAtomSet [1,
105]>]
DEBUG: fixedAtomSetListRight = [<ccp.nmr.NmrConstraint.FixedAtomSet [1,
108]>, <ccp.nmr.NmrConstraint.FixedAtomSet [1, 109]>]
DEBUG: fixedAtomSetLeft: <ccp.nmr.NmrConstraint.FixedAtomSet [1, 105]>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 20, 'H']>
DEBUG: atomListLeft: [<Atom VAL20.HN>]
DEBUG: atomLeft: <Atom VAL20.HN>
DEBUG: fixedAtomSetRight: <ccp.nmr.NmrConstraint.FixedAtomSet [1,
108]>
DEBUG: ccpnAtom Right: <ccp.molecule.MolSystem.Atom
['Molecularsystem', 'A', 20, 'HG11']>
DEBUG: ccpnAtom Right: <ccp.molecule.MolSystem.Atom
['Molecularsystem', 'A', 20, 'HG12']>
DEBUG: ccpnAtom Right: <ccp.molecule.MolSystem.Atom
['Molecularsystem', 'A', 20, 'HG13']>
DEBUG: atomListRight: [<Atom VAL20.QG1>]
DEBUG: atomPair: <Atom VAL20.HN> <Atom VAL20.QG1>
DEBUG: fixedAtomSetRight: <ccp.nmr.NmrConstraint.FixedAtomSet [1,
109]>
DEBUG: ccpnAtom Right: <ccp.molecule.MolSystem.Atom
['Molecularsystem', 'A', 20, 'HG21']>
DEBUG: ccpnAtom Right: <ccp.molecule.MolSystem.Atom
['Molecularsystem', 'A', 20, 'HG22']>
DEBUG: ccpnAtom Right: <ccp.molecule.MolSystem.Atom
['Molecularsystem', 'A', 20, 'HG23']>
DEBUG: atomListRight: [<Atom VAL20.QG2>]
DEBUG: atomPair: <Atom VAL20.HN> <Atom VAL20.QG2>
DEBUG: _getConstraintAtomPairList: [(<Atom VAL20.HN>, <Atom VAL20.QG1>), (<Atom
VAL20.HN>, <Atom VAL20.QG2>)]
DEBUG: Constraint [233]: [0.0] - [5.5]
DEBUG: [1.HG11,1.HG12,1.HG13,1.HG21,1.HG22,1.HG23] - [3.H]
DEBUG: [1.HG11,1.HG12,1.HG13,1.HG21,1.HG22,1.HG23] - [3.H]
DEBUG:
DEBUG: fixedResonanceListOfList: [[<ccp.nmr.NmrConstraint.FixedResonance [1,
3]>, <ccp.nmr.NmrConstraint.FixedResonance [1, 139]>],
[<ccp.nmr.NmrConstraint.FixedResonance [1, 378]>,
<ccp.nmr.NmrConstraint.FixedResonance [1, 139]>]]
DEBUG: fixedResonanceList: [<ccp.nmr.NmrConstraint.FixedResonance [1, 3]>,
<ccp.nmr.NmrConstraint.FixedResonance [1, 139]>]
DEBUG: fixedAtomSetListLeft = [<ccp.nmr.NmrConstraint.FixedAtomSet [1,
2]>, <ccp.nmr.NmrConstraint.FixedAtomSet [1, 3]>]
DEBUG: fixedAtomSetListRight = [<ccp.nmr.NmrConstraint.FixedAtomSet [1, 7]>]
DEBUG: fixedAtomSetLeft: <ccp.nmr.NmrConstraint.FixedAtomSet [1, 2]>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG11']>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG12']>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG13']>
DEBUG: atomListLeft: [<Atom VAL1.QG1>]
DEBUG: atomLeft: <Atom VAL1.QG1>
DEBUG: fixedAtomSetRight: <ccp.nmr.NmrConstraint.FixedAtomSet [1, 7]>
DEBUG: ccpnAtom Right: <ccp.molecule.MolSystem.Atom
['Molecularsystem', 'A', 3, 'H']>
DEBUG: atomListRight: [<Atom MET3.HN>]
DEBUG: atomPair: <Atom VAL1.QG1> <Atom MET3.HN>
DEBUG: fixedAtomSetLeft: <ccp.nmr.NmrConstraint.FixedAtomSet [1, 3]>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG21']>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG22']>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG23']>
DEBUG: atomListLeft: [<Atom VAL1.QG2>]
DEBUG: atomLeft: <Atom VAL1.QG2>
DEBUG: fixedAtomSetRight: <ccp.nmr.NmrConstraint.FixedAtomSet [1, 7]>
DEBUG: ccpnAtom Right: <ccp.molecule.MolSystem.Atom
['Molecularsystem', 'A', 3, 'H']>
DEBUG: atomListRight: [<Atom MET3.HN>]
DEBUG: atomPair: <Atom VAL1.QG2> <Atom MET3.HN>
DEBUG: fixedResonanceList: [<ccp.nmr.NmrConstraint.FixedResonance [1, 378]>,
<ccp.nmr.NmrConstraint.FixedResonance [1, 139]>]
DEBUG: fixedAtomSetListLeft = [<ccp.nmr.NmrConstraint.FixedAtomSet [1,
2]>, <ccp.nmr.NmrConstraint.FixedAtomSet [1, 3]>]
DEBUG: fixedAtomSetListRight = [<ccp.nmr.NmrConstraint.FixedAtomSet [1, 7]>]
DEBUG: fixedAtomSetLeft: <ccp.nmr.NmrConstraint.FixedAtomSet [1, 2]>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG11']>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG12']>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG13']>
DEBUG: atomListLeft: [<Atom VAL1.QG1>]
DEBUG: atomLeft: <Atom VAL1.QG1>
DEBUG: fixedAtomSetRight: <ccp.nmr.NmrConstraint.FixedAtomSet [1, 7]>
DEBUG: ccpnAtom Right: <ccp.molecule.MolSystem.Atom
['Molecularsystem', 'A', 3, 'H']>
DEBUG: atomListRight: [<Atom MET3.HN>]
DEBUG: atomPair: <Atom VAL1.QG1> <Atom MET3.HN>
DEBUG: Skipping pair already represented.
DEBUG: fixedAtomSetLeft: <ccp.nmr.NmrConstraint.FixedAtomSet [1, 3]>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG21']>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG22']>
DEBUG: ccpnAtom Left: <ccp.molecule.MolSystem.Atom ['Molecularsystem',
'A', 1, 'HG23']>
DEBUG: atomListLeft: [<Atom VAL1.QG2>]
DEBUG: atomLeft: <Atom VAL1.QG2>
DEBUG: fixedAtomSetRight: <ccp.nmr.NmrConstraint.FixedAtomSet [1, 7]>
DEBUG: ccpnAtom Right: <ccp.molecule.MolSystem.Atom
['Molecularsystem', 'A', 3, 'H']>
DEBUG: atomListRight: [<Atom MET3.HN>]
DEBUG: atomPair: <Atom VAL1.QG2> <Atom MET3.HN>
DEBUG: Skipping pair already represented.
DEBUG: _getConstraintAtomPairList: [(<Atom VAL1.QG1>, <Atom MET3.HN>), (<Atom
VAL1.QG2>, <Atom MET3.HN>)]
Original comment by jurge...@gmail.com
on 10 Apr 2009 at 9:06
I need expert help on this issue. The code is at:
http://code.google.com/p/cing/source/browse/trunk/cing/python/cing/PluginCode/Cc
pn.py#1320 (r550)
Original comment by jurge...@gmail.com
on 10 Apr 2009 at 9:14
The funny thing is that this works in NRG-CING.
In NRG-CING for 1hue based on the original data:
1:ILE_32:HA 1:VAL_42:HG2* 1.800 3.800 3.500 40.00 40.00 1000.000
0.00
1:ILE_32:HA 1:VAL_42:HG1* 1.800 4.300 4.000 40.00 40.00 1000.000
0.00
I have got in NRG-CING:
Restraint 2034
Atoms:: (A.ILE32.HA, A.VAL42.QG2)
Restraint:: Lower | Upper: 1.80 | 3.80
Actual:: Av +- Sd | Min | Max: 2.20 +- 0.16 | 1.95 | 2.50
Violations:: Av +- Sd | Max: 0.00 +- 0.00 | 0.00
Counts:: > 0.1 | 0.3 | 0.5 A: 0 | 0 | 0
Restraint 1493
Atoms:: (A.ILE32.HA, A.VAL42.QG1)
Restraint:: Lower | Upper: 1.80 | 4.30
Actual:: Av +- Sd | Min | Max: 3.04 +- 0.15 | 2.71 | 3.23
Violations:: Av +- Sd | Max: 0.00 +- 0.00 | 0.00
Counts:: > 0.1 | 0.3 | 0.5 A: 0 | 0 | 0
So until somebody tells me otherwise I am going to propose the conversion in
NRG was done properly and the author's conversion was not.
Original comment by jurge...@gmail.com
on 10 Apr 2009 at 10:09
I'm seeing this problem come up in different situations too now. Stay tuned.
Original comment by jurge...@gmail.com
on 24 Apr 2009 at 2:24
OK the problem is here:
fixedAtomSetListLeft = fixedResonanceSetLeft.sortedAtomSets()
fixedAtomSetListRight = fixedResonanceSetRight.sortedAtomSets()
You're indiscriminately using both atomSets in the case where prochirals are not
stereospecifically assigned. So what I do is *first* set up a dictionary where
Resonance objects are linked to Atom(Set)s, you then make sure that in the case
where
you have a ResonanceSet, two Resonances, and two AtomSets, each Resonance gets
linked
to one single AtomSet.
This is not straightforward as you also have to make sure that, e.g. for
valine, HG1*
and CG1 remain 'connected' in the output/conversion, as well as HG2* and CG2.
All the
code that does this for the FC is deeply buried (though extractable if
necessary) -
do you have anything more accessible Tim?
Original comment by wfvran...@gmail.com
on 24 Apr 2009 at 2:49
In CCPN terms, in Picture 2 the restraint is 20ValHgb*-20ValH, this is
non-stereospecific. The restraint in Picture 1 is both ambiguous and
non-stereospecific.
If the original restraint was:
assign (resid 20 and name HN ) (resid 20 and name HG2* ) 3.87 3.87 0.00
If your CCPN project has stereospecific resonances, it looks like you should
get:
20ValHg2*-20ValH, i.e. the .tbl to CCPN conversion doesn't look right.
However, if there are only non-stereo resonances in CCPN (e.g. you don't have a
specific shift for HG2*) then the .tbl import is as good as it can be.
Is Hg2* (as distinct from Hga* or Hgb*) in the resonance list?
As for Wim's point, I agree. To resolve the ambiguous resonance to atomSet
mapping
when forced I usually do something like:
index = resonanceSet.sortedResonances().index(resonance)
atomSets = resonanceSet.sortedAtomSets()
atomSet = atomSets[min(index,len(atomSets)-1)]
I suspect this is probably what you want. If you have a non-stereo .tbl
restraint it
will appear ambiguous, so you will end up with two different atom sets after
the last
conversion. If it is stereo, with one option, even if CCPN is unable to link a
stereo
resonance, you will only get one (hopefully matching the original) atom set in
the end.
T.
Original comment by tjs...@googlemail.com
on 24 Apr 2009 at 5:13
I think the cause of this issue has been with the import of original data into
the CCPN data model.
I think I did it wrong. I rediscovered the options panel as described in:
ccpnmr/ccpnmr2.0/python/ccpnmr/format/doc/LinkResonances.html
I was not doing this by hand before just accepting the default unambiguous
import.
Now using the "Link resonances setup" I changed:
"'Complete stereospecific assignment': If selected, all prochiral atoms are
assumed to be stereospecifically assigned." to True.
Does this overwrite the BMRB codes?:
# Chemical Shift Ambiguity Index Value Definitions #
# #
# Index Value Definition #
# #
# 1 Unique (geminal atoms and geminal methyl #
# groups with identical chemical shifts #
# are assumed to be assigned to #
# stereospecific atoms) #
# 2 Ambiguity of geminal atoms or geminal methyl #
# proton groups #
# 3 Aromatic atoms on opposite sides of #
# symmetrical rings (e.g. Tyr HE1 and HE2 #
# protons) #
# 4 Intraresidue ambiguities (e.g. Lys HG and #
# HD protons or Trp HZ2 and HZ3 protons) #
# 5 Interresidue ambiguities (Lys 12 vs. Lys 27) #
# 9 Ambiguous, specific ambiguity not defined #
Yes it does. Perfect.
In summary:
- make sure the restraints have the right stereospecific assignment in the CCPN
project before attempting to convert to CING.
- then realize that CING does not distinguish between an unassigned resonance
and a pseudo. In other words an stereospecifically unassigned Gly alpha group
in the CNS
restraint:
assign ( resi 31 and name HA2 ) ( ( resi 31 and name HA3 ) x y z
would become a CCPN restraint:
31 Gly Hab - 31 Gly Haa.
then the CCPN import to CING is ok for this one to:
31 Gly QA - 31 Gly QA
I propose that the conversion here is to blame and CING should indeed report a
lowerbound violation. Any objections?
Original comment by jurge...@gmail.com
on 27 Apr 2009 at 11:03
Original issue reported on code.google.com by
jurge...@gmail.com
on 9 Apr 2009 at 3:46Attachments: