Add patches for newer ccpn data model, kindly provided by Tim Stevens
authorJustin Lecher <jlec@gentoo.org>
Fri, 7 Oct 2011 19:23:04 +0000 (19:23 +0000)
committerJustin Lecher <jlec@gentoo.org>
Fri, 7 Oct 2011 19:23:04 +0000 (19:23 +0000)
Package-Manager: portage-2.2.0_alpha62/cvs/Linux x86_64

sci-chemistry/aria/ChangeLog
sci-chemistry/aria/Manifest
sci-chemistry/aria/aria-2.3.2-r1.ebuild [new file with mode: 0644]
sci-chemistry/aria/files/aria-2.3.2-through-space.patch [new file with mode: 0644]

index 86dc9ddc7d643d235d30d9aa4065262c9ae43c5f..51206a1a1b8cb918a9a8550aef1708de148a5f38 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for sci-chemistry/aria
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/aria/ChangeLog,v 1.9 2011/08/30 13:51:56 jlec Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/aria/ChangeLog,v 1.10 2011/10/07 19:23:04 jlec Exp $
+
+*aria-2.3.2-r1 (07 Oct 2011)
+
+  07 Oct 2011; Justin Lecher <jlec@gentoo.org> +aria-2.3.2-r1.ebuild,
+  +files/aria-2.3.2-through-space.patch:
+  Add patches for newer ccpn data model, kindly provided by Tim Stevens
 
   30 Aug 2011; Justin Lecher <jlec@gentoo.org> aria-2.3.2.ebuild:
   Corrected dep version of cns so that new changes are present
index cd20eab3cda7d751ee9b134f95a2d413d8d5f1da..b11b8b3090b84dab096a27950f6ab0e83d645151 100644 (file)
@@ -1,16 +1,18 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA512
 
+AUX aria-2.3.2-through-space.patch 5040 RMD160 b4f80987195d45bf956b2dbd8084b4a3a6e0b5e3 SHA1 717d1ff0034d675509d27365806ae81f82157e2d SHA256 99c547ad5fb85401c39187b9a708fc7332c36be6e467bd834cb551a723fd84fb
 DIST aria2.3.1.tar.gz 1833973 RMD160 f2ee0bfc7e3164b5c34c81abb74256c5d76f53d7 SHA1 b257094bdaf6ba5b64645b8251d9243654e6d0fc SHA256 cc45ed2d66182cf0ee197a7cf3bc7edd8d5043d95cdcd19e1cec9aeb82c2fdbc
 DIST aria2.3.2.tar.gz 1836270 RMD160 cd96f19c7a229694d561824dcca9ee22845c6a4f SHA1 74fc1cb6640b2a3f97851ac88042023f1a9c07ce SHA256 30727ea8bdc2e3b44e5970545008fcfa07fa59aa28b76824956a2aa71daa9615
 EBUILD aria-2.3.1.ebuild 2022 RMD160 e176a7b25c8d06287c91bb2c4d97f0d160dcc6d5 SHA1 28677a59f666d2ec9173ae86cfac37bc4a76f719 SHA256 0a83e234e39fbff3ffa65f21df768b7e0fea23ac13ad17008ab72e6103e3c96d
+EBUILD aria-2.3.2-r1.ebuild 2091 RMD160 441211d98653e9e08ef2794208ee23f94492b821 SHA1 2b2c0fd51bf23c84a00000ba8a43fabda25cf1e0 SHA256 e571030ad00d304613f3bdce32a578ee850735cdaccc591bec1e686afaf21292
 EBUILD aria-2.3.2.ebuild 2022 RMD160 f17276f2346ef63e9fbd25145f9fb26d85113018 SHA1 180e90a7f4e92d7a47d0a428bccd0155bcf002cf SHA256 738fa89aff5df458c4c61a64dd6e8ad839fdd43df50c141a34d6750f4055ebd9
-MISC ChangeLog 1381 RMD160 8b24b8bc14a46f80b17e15197c569c3c1e7fb032 SHA1 14aa7bab85559b44835b1294882629df52fd4c15 SHA256 04013a1df7bd75730ec7478d075193b6337b4f790e1416aa45fafc97c4ac034a
+MISC ChangeLog 1596 RMD160 5868290e0b0c0033861c8f681b40d8010ebc3e63 SHA1 d9c0d4c51a78045ea5f596e7f8ecdbb9fd316aaa SHA256 0ebc72558b921ec6e4fc2d0652934cedb0d5705405f38808e9c5df944e56f54d
 MISC metadata.xml 219 RMD160 e9da2d4271f89b9dbac478d145a519318f0f3314 SHA1 6d4a101013d6a40cd61cb2d8c6b517c443013bc7 SHA256 0be94b46df4c9a73494034f33b1371769951f52890e5c857ebe1dc9bc729d0a8
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.18 (GNU/Linux)
 
-iEYEAREKAAYFAk5c6wIACgkQgAnW8HDreRZ/TQCePvYQ83oTRwDIkb7AyiSRPt8W
-OSIAnR2qEw2O2W8+9SL5Trz0fhrKQMrl
-=PDF0
+iEYEAREKAAYFAk6PUaYACgkQgAnW8HDreRZj3QCggTi5cHa6zctM2vjN/0X/9dMW
+aNUAnA67JFotE4mAxEj41qKS13T+h3Jh
+=kJFp
 -----END PGP SIGNATURE-----
diff --git a/sci-chemistry/aria/aria-2.3.2-r1.ebuild b/sci-chemistry/aria/aria-2.3.2-r1.ebuild
new file mode 100644 (file)
index 0000000..fc25192
--- /dev/null
@@ -0,0 +1,92 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/aria/aria-2.3.2-r1.ebuild,v 1.1 2011/10/07 19:23:04 jlec Exp $
+
+EAPI=3
+
+PYTHON_DEPEND="2"
+PYTHON_USE_WITH="tk"
+
+inherit base eutils python versionator
+
+MY_P="${PN}$(get_version_component_range 1-2 ${PV})"
+
+DESCRIPTION="Automated NOE assignment and NMR structure calculation"
+HOMEPAGE="http://aria.pasteur.fr/"
+SRC_URI="http://aria.pasteur.fr/archives/${MY_P}.2.tar.gz"
+
+SLOT="0"
+LICENSE="cns"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+RDEPEND="
+       sci-chemistry/clashlist
+       sci-chemistry/procheck
+       sci-libs/clashscore-db
+       dev-python/numpy
+       dev-python/matplotlib[tk]
+       >=sci-chemistry/cns-1.2.1-r7[aria,openmp]
+       >=dev-lang/tk-8.3
+       >=sci-chemistry/ccpn-2.0.5
+       >=dev-tcltk/tix-8.1.4"
+DEPEND="${RDEPEND}"
+
+RESTRICT="fetch"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_nofetch(){
+       einfo "Go to ${HOMEPAGE}, download ${A}"
+       einfo "and place it in ${DISTDIR}"
+}
+
+src_prepare() {
+       epatch "${FILESDIR}"/${P}-through-space.patch
+}
+
+src_test(){
+       export CCPNMR_TOP_DIR="${EPREFIX}"/$(python_get_sitedir)
+       export PYTHONPATH=.:${CCPNMR_TOP_DIR}/ccpn/python
+       $(PYTHON) check.py || die
+}
+
+src_install(){
+       insinto "$(python_get_sitedir)/${PN}"
+       doins -r src aria2.py || die "failed to install ${PN}"
+       insinto "$(python_get_sitedir)/${PN}"/cns
+       doins -r cns/{protocols,toppar,src/helplib} || die "failed to install cns part"
+
+       if use examples; then
+               insinto /usr/share/${P}/
+               doins -r examples || die
+       fi
+
+       # ENV
+       cat >> "${T}"/20aria <<- EOF
+       ARIA2="${EPREFIX}/$(python_get_sitedir)/${PN}"
+       EOF
+
+       doenvd "${T}"/20aria
+
+       # Launch Wrapper
+       cat >> "${T}"/aria <<- EOF
+       #!/bin/sh
+       export CCPNMR_TOP_DIR="${EPREFIX}/$(python_get_sitedir)"
+       export PYTHONPATH="${EPREFIX}/$(python_get_sitedir)/ccpn/python"
+       exec "$(PYTHON)" -O "\${ARIA2}"/aria2.py \$@
+       EOF
+
+       dobin "${T}"/aria || die "failed to install wrapper"
+       dosym aria /usr/bin/aria2
+
+       dodoc README || die
+}
+
+pkg_postinst() {
+       python_mod_optimize ${PN}
+}
+
+pkg_postrm() {
+       python_mod_cleanup ${PN}
+}
diff --git a/sci-chemistry/aria/files/aria-2.3.2-through-space.patch b/sci-chemistry/aria/files/aria-2.3.2-through-space.patch
new file mode 100644 (file)
index 0000000..bda76aa
--- /dev/null
@@ -0,0 +1,118 @@
+ src/py/aria/exportToCcpn.py   |   24 +++++++++++-------------
+ src/py/aria/importFromCcpn.py |   25 +++++++------------------
+ 2 files changed, 18 insertions(+), 31 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..91ad123 100644
+--- a/src/py/aria/importFromCcpn.py
++++ b/src/py/aria/importFromCcpn.py
+@@ -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
+@@ -952,8 +943,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 +1084,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 +1245,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