I have two questions that are probably very simple but i can`t seem to find the functions:
1) I made a backbone and side chain assignment and just loaded my 13C-HSQC. In Analysis 2.4 it was possible to create a synthetic list for a spectrum from the chemical shift list and then you could just transfer those shifts to the peak list (or just use the synthetic list). How do i do this in 3.0? Do i need to export the shift list and then load it back into the 13C-HSQC?
2) I think I have made some error during the backbone assingment. Even though i have assigned the peaks to the amino acid i still have the `-1` assignment in the chemical shift list and the NmrChain NC:A. An example is from the chemical shift list:
43 A.4.LEU.H 4 LEU H 8.327 0.0 1 1
44 A.4.LEU.N 4 LEU N 123.183 0.0 1 1
373 A.4.LEU.C 4 LEU C 177.505 0.0 1 1
696 A.4.LEU.CA 4 LEU CA 54.281 0.0 1 1
698 A.4.LEU.CB 4 LEU CB 43.469 0.0 1 1
1155 A.4.LEU.HA 4 LEU HA 8.765 0.006 3 3
1156 A.4.LEU.HB 4 LEU HB 8.762 0.0 1 1
532 A.5-1..C 5-1 C 177.503 0.0 1 1
995 A.5-1..CB 5-1 CB 43.506 0.0 1 1
996 A.5-1..CA 5-1 CA 54.321 0.0 1 1
Is it possible to merge those last three 5-1 so they get integrated into 4?
1) Synthetic Peak lists aren`t available in V3 yet, though they are relatively high up on our TODO list, as many people want this feature. See https://www.ccpn.ac.uk/forums/misc.php?a...elp&hid=64 for a list of V2 features and what their status is within V3. If you wanted to have a go at writing your own macro to write a particular peak list, then I could probably give you a few pointers, though.
2) This isn`t an error. At the moment the programme doesn`t automatically merge the `-1` residues with the actual i-1 residues. The main issue is that this is an undoable step. However, this should (and certainly will) be possible. I`m not quite sure where we are with this at the moment, though. So I`ll have a play with this and get back to you later with more.
I looked into the merging stuff. This is something which is still rather rudimentary at the moment, but certainly something we will be sorting out in future.
The main thing to bear in mind (and I think the reason this wasn’t sorted sooner) is that merging NmrAtoms is irreversible and not undoable. So for this is reason the programme doesn’t do this automatically, and we will certainly always leave this as something that the user has to initiate themselves.
So before doing any merging I would always save and/or archive the project.
At the moment you can merge NmrAtoms by hand. Double-click on an NmrAtom in the sidebar, then change the NmrResidue from e.g. 5-1 to 4 and tick the “Merge with Existing” box below.
There is a bug which means the 5-1 NmrAtom will still show in the sidebar, although it no longer exists (will make sure we sort that out). But you’ll be able to see in the chemical shift list, that the merge has taken place (another bug means you may have to reload the chemical shift list for it to update fully - again will make sure we sort this soon).
I think in future we’ll make sure you can also merge things at an NmrResidue level, not just the NmrAtom level. And of course it should be possible to do this for the whole NmrChain in one go.
Until we get this sorted, it would be rather tedious to have to merge all your NmrAtoms by hand at the moment, so I’ve written you a macro which will merge all the i-1 NmrAtoms with those belonging to the actual i-1 NmrAtoms in your ‘A’ NmrChain. This will also the delete the (then obsolete) i-1 NmrAtoms properly.
Obviously if there is no actual i-1 residue (e.g. if it is a Proline and you have no proline assignments), then the residue will not be merged and you will have to make the change by hand. But hopefully that shouldn’t affect many residues.
# Macro to merge "-1" NmrAtoms with the actual i-1 NmrAtoms # Make sure the correct NmrChain has been selected in the first line nmrChain = project.getByPid('NC:A') for nmrRes in nmrChain.nmrResidues: if nmrRes.relativeOffset == -1: if nmrRes.mainNmrResidue: if nmrRes.mainNmrResidue.previousNmrResidue: newSeqCode = nmrRes.mainNmrResidue.previousNmrResidue.sequenceCode for nmrAtom in nmrRes.nmrAtoms: nmrAtom.assignTo(sequenceCode=newSeqCode, mergeToExisting=True) project.deleteObjects(nmrRes)
Any problems, let me know.
Having got to the point of being confident with our backbone assignment we just merged our i-1s using a version of @VickyH 's macro with the for loop wrapped in a
with undoBlock(): and it worked very nicely in a couple of seconds
always save & archive your project before doing anything like this though!