diff options
Diffstat (limited to 'sci-chemistry/aria/files/aria-2.3.2-through-space-2.patch')
-rw-r--r-- | sci-chemistry/aria/files/aria-2.3.2-through-space-2.patch | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/sci-chemistry/aria/files/aria-2.3.2-through-space-2.patch b/sci-chemistry/aria/files/aria-2.3.2-through-space-2.patch new file mode 100644 index 000000000000..6a363d098632 --- /dev/null +++ b/sci-chemistry/aria/files/aria-2.3.2-through-space-2.patch @@ -0,0 +1,139 @@ + 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 |