You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
140 lines
5.9 KiB
140 lines
5.9 KiB
src/py/aria/exportToCcpn.py | 24 +++++++++++-------------
|
|
src/py/aria/importFromCcpn.py | 32 ++++++++++++--------------------
|
|
2 files changed, 23 insertions(+), 33 deletions(-)
|
|
|
|
diff --git a/src/py/aria/exportToCcpn.py b/src/py/aria/exportToCcpn.py
|
|
index c742a88..aae7b7d 100644
|
|
--- a/src/py/aria/exportToCcpn.py
|
|
+++ b/src/py/aria/exportToCcpn.py
|
|
@@ -1,5 +1,5 @@
|
|
from ccpnmr.analysis.core.ConstraintBasic import makeNmrConstraintStore, makeStructureGeneration, getFixedResonance
|
|
-from ccpnmr.analysis.core.ExperimentBasic import getOnebondDataDims
|
|
+from ccpnmr.analysis.core.ExperimentBasic import getOnebondDataDims, getThroughSpaceDataDims
|
|
from ccpnmr.analysis.core.AssignmentBasic import assignAtomsToRes, assignResToDim
|
|
from ccpnmr.analysis.core.PeakBasic import pickPeak, setManualPeakIntensity
|
|
from ccpnmr.analysis.core.MoleculeBasic import DEFAULT_ISOTOPES
|
|
@@ -791,12 +791,13 @@ def getPeakAssignmentsFromAria2(project, ariaRestraints, namesDict=None,
|
|
ariaDims = ariaDimDict.get(spectrum)
|
|
if not ariaDims:
|
|
ariaDims = [] #[0,1,2]
|
|
+ throughSpaceDataDims = getThroughSpaceDataDims(spectrum)
|
|
|
|
dataDims = spectrum.sortedDataDims()
|
|
if len(dataDims) == 3:
|
|
for dataDim in dataDims:
|
|
expDimRef = dataDim.findFirstDataDimRef().expDimRef
|
|
- if '1H' in expDimRef.isotopeCodes: # 0 or 2
|
|
+ if dataDim in throughSpaceDataDims: # 0 or 2
|
|
if onebondDims.get(dataDim.dim):
|
|
if ppmX1 is None:
|
|
ariaDims.append(2)
|
|
@@ -816,21 +817,18 @@ def getPeakAssignmentsFromAria2(project, ariaRestraints, namesDict=None,
|
|
ariaDims.append(1)
|
|
|
|
else:
|
|
- transfer = spectrum.experiment.findFirstExpTransfer(transferType='through-space') or \
|
|
- spectrum.experiment.findFirstExpTransfer(transferType='NOESY')
|
|
|
|
+ i = 0
|
|
for dataDim in dataDims:
|
|
- expDimRefs = [dataDimRef.expDimRef for dataDimRef in dataDim.dataDimRefs]
|
|
- i = 0
|
|
- for expDimRef in transfer.sortedExpDimRefs():
|
|
- if expDimRef in expDimRefs:
|
|
- ariaDims.append(i)
|
|
- boundDim = onebondDims.get(dataDim.dim)
|
|
- if boundDim:
|
|
- ariaDims.append(i+1)
|
|
-
|
|
+ if dataDim in throughSpaceDataDims:
|
|
+ ariaDims.append(i)
|
|
+ boundDim = onebondDims.get(dataDim.dim)
|
|
+ if boundDim:
|
|
+ ariaDims.append(i+1)
|
|
+
|
|
i += 2
|
|
|
|
+
|
|
ariaDimDict[spectrum] = ariaDims
|
|
|
|
if namesDict:
|
|
diff --git a/src/py/aria/importFromCcpn.py b/src/py/aria/importFromCcpn.py
|
|
index a65ae3e..f63ba16 100644
|
|
--- a/src/py/aria/importFromCcpn.py
|
|
+++ b/src/py/aria/importFromCcpn.py
|
|
@@ -165,7 +165,7 @@ def getStructureEnsembles(project, ccpChains):
|
|
|
|
return ensembles
|
|
|
|
-def getNoesyPeakLists(project, molSystem=None):
|
|
+def getNoesyPeakLists(project, molSystem=None, excludeSimulated=True):
|
|
"""Descrn: Get the NOE peak lists from a CCPN project. Can filter if appropriate to a given
|
|
molecular system if passed in.
|
|
Inputs: Implementation.Project, ccp.molecule.MolSystem.MolSystem
|
|
@@ -196,19 +196,10 @@ def getNoesyPeakLists(project, molSystem=None):
|
|
|
|
for spectrum in experiment.dataSources:
|
|
if (spectrum.dataType == 'processed') and (spectrum.numDim > 1):
|
|
-
|
|
- isotopes = []
|
|
- for dataDim in spectrum.dataDims:
|
|
- for expDimRef in dataDim.expDim.expDimRefs:
|
|
- if expDimRef.measurementType in ('shift','Shift'):
|
|
- isotope = ','.join(expDimRef.isotopeCodes)
|
|
- isotopes.append(isotope)
|
|
- break
|
|
-
|
|
- if isotopes.count('1H') > 1:
|
|
- for peakList in spectrum.peakLists:
|
|
- if peakList.findFirstPeak():
|
|
- peakLists.append(peakList)
|
|
+ for peakList in spectrum.sortedPeakLists():
|
|
+ if excludeSimulated and peakList.isSimulated:
|
|
+ continue
|
|
+ peakLists.append(peakList)
|
|
|
|
|
|
return peakLists
|
|
@@ -490,7 +481,10 @@ def makeAriaChain(ccpChain):
|
|
# Does below work for DNA/RNA?
|
|
|
|
aria_settings = ChainSettings()
|
|
- aria_settings['type'] = chainTypeMapping[ccpChain.molecule.molType]
|
|
+ # wb104: below changed 31 Oct 2011 to try and get around case when molType is None
|
|
+ #aria_settings['type'] = chainTypeMapping[ccpChain.molecule.molType]
|
|
+ molType = ccpChain.molecule.molType or 'protein'
|
|
+ aria_settings['type'] = chainTypeMapping[molType]
|
|
|
|
aria_chain = Chain(settings=aria_settings, segid=string_to_segid(ccpChain.code))
|
|
|
|
@@ -952,8 +946,6 @@ def makeAriaSpectrum(peakList, ariaMolecule, filterRejected=True):
|
|
expDimRefDict = {}
|
|
|
|
for expDimRef in transfer.sortedExpDimRefs():
|
|
- if expDimRef.isotopeCodes != ('1H',):
|
|
- raise Exception('Not an H-H experiment')
|
|
|
|
onebondTransfer = expDimRef.findFirstExpTransfer(transferType='onebond')
|
|
|
|
@@ -1095,7 +1087,7 @@ def getAriaAtomsFromResonance(resonance, ariaMolecule, cache={}):
|
|
|
|
# TJS modify to return just a list of atoms, rather than a list of list
|
|
ariaAtoms = []
|
|
- for atom in atomSet.sortedAtoms():
|
|
+ for atom in atomSet.atoms:
|
|
ariaAtom = ariaResidue.atoms.get(atom.name)
|
|
if not ariaAtom:
|
|
messager.warning('Could not find ARIA Atom for CCPN atom %d%s %s' % (residue.seqCode,residue.ccpCode, atom.name))
|
|
@@ -1256,9 +1248,9 @@ def getAriaDistanceRestraintsList(constraint_list, constraint_type, aria_mol):
|
|
restraint.setWeight(weight)
|
|
|
|
|
|
- for constrItem in distConstr.sortedItems():
|
|
+ for constrItem in distConstr.items:
|
|
|
|
- reso1, reso2 = constrItem.sortedResonances()
|
|
+ reso1, reso2 = constrItem.resonances
|
|
|
|
# TJS fix for mapping prochirals
|
|
# always use real resonnances where possible
|