aboutsummaryrefslogtreecommitdiff
blob: b56d2699923369947a8f680735afffc9021f6d33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5

PYTHON_COMPAT=( python2_7 )

inherit java-pkg-2 java-pkg-simple prefix python-r1 versionator

MY_PV="$(delete_all_version_separators $(get_version_component_range 1-2))"
MY_PATCH="20120106"
MY_P="${PN}-v${MY_PV}-linux"

DESCRIPTION="Predicts both the backbone and side chain 1H, 13C and 15N chemical shifts for proteins"
HOMEPAGE="http://shiftx2.wishartlab.com/"
SRC_URI="http://shiftx2.wishartlab.com/download/${MY_P}-${MY_PATCH}.tgz"

SLOT="0"
LICENSE="all-rights-reserved"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="debug"

REQUIRED_USE="${PYTHON_REQUIRED_USE}"

CDEPEND="dev-util/weka ${PYTHON_DEPS}"

RDEPEND="${CDEPEND}
	${PYTHON_DEPS}
	dev-lang/R
	sci-biology/ncbi-tools
	sci-chemistry/reduce
	>=virtual/jre-1.5"
DEPEND="${CDEPEND}
	>=virtual/jdk-1.5"

S="${WORKDIR}"/${MY_P}

QA_PREBUILT="/opt/.*"

src_prepare() {
	epatch \
		"${FILESDIR}"/${P}-java.patch \
		"${FILESDIR}"/${P}-system.patch \
		"${FILESDIR}"/${P}-internal-name.patch \
		"${FILESDIR}"/${P}-format-security.patch

	rm "${S}"/src/FeatureRanges.java || die

	shared=$(echo "${EPREFIX}/usr/share/${PN}" | sed -e 's/\//\\\//g')
	sed -i -e "s/PUT_GENTOO_SHARE_PATH_HERE/${shared}/g" "${S}/src/ShiftXp.java" || die

	if use debug; then
		sed -i -e 's/DEBUG = false/DEBUG = true/g' "${S}/src/ShiftXp.java" || die
	fi

	# hack alert!
	sed \
		-e '/-o/s:$(GCC):$(GCC) $(LDFLAGS):g' \
		-e '/-o/s:$(CC):$(CC) $(LDFLAGS):g' \
		-i modules/*/Makefile || die

	sed -e '/-o/s:$: -lm:g' -i "${S}/modules/resmf/Makefile" || die

	eprefixify ${PN}.py
}

src_compile() {
	mkdir "${S}"/build || die
	ejavac -classpath "$(java-pkg_getjars weka)" -nowarn \
		-d "${S}"/build $(find src/ -name "*.java")
	jar cf "${PN}.jar" -C "${S}"/build . || die

	einfo "Building module angles"
	cd "${S}"/modules/angles || die
	emake clean
	emake CFLAGS="${CFLAGS}" GCC=$(tc-getCC) LINK="${LDFLAGS}" get_angles phipsi

	einfo "Building module resmf"
	cd "${S}"/modules/resmf || die
	emake clean
	emake CFLAGS="${CFLAGS}" GCC=$(tc-getCC) LINK="${LDFLAGS}" resmf

	einfo "Building module effects"
	cd "${S}"/modules/effects || die
	emake clean
	emake CFLAGS="${CFLAGS}" CC=$(tc-getCC) LINK="${LDFLAGS}" all
}

src_install() {
	java-pkg_dojar "${PN}.jar"
	java-pkg_dolauncher j${PN} --main "ShiftXp" --pkg_args "-dir ${EPREFIX}/usr/bin"

	insinto /usr/share/${PN}
	doins "${S}"/lib/{limitedcshift.dat,RandomCoil.csv,data-header.arff}
	doins -r "${S}"/lib/predmodels

	insinto /usr/share/${PN}/vader
	doins -r "${S}"/modules/resmf/lib/*

	local instdir="/opt/${PN}"
	dodoc README 1UBQ.pdb
	python_foreach_impl python_newscript ${PN}.py ${PN}
	mv shiftx2_util.py shiftx2util.py || die
	python_moduleinto ${PN}
	touch __init__.py
	python_foreach_impl python_domodule natsorted.py shiftx2util.py __init__.py

	# other modules
	dobin \
		"${S}"/modules/angles/{get_angles,phipsi} \
		"${S}"/modules/resmf/resmf \
		"${S}"/modules/effects/caleffect

	# script
	python_foreach_impl python_doscript "${S}"/script/*py
	exeinto ${instdir}/script
	doexe "${S}"/script/*.r

	# shifty3
	python_foreach_impl python_newscript "${S}"/shifty3/*py shifty3
	exeinto ${instdir}/shifty3
	doexe "${S}"/shifty3/xalign_x
	dosym ../${PN}/shifty3/xalign_x /opt/bin/xalign_x

	insinto ${instdir}/shifty3
	doins -r "${S}"/shifty3/{blastdb,refdb,xalign.parms,wt.rbo}

	python_foreach_impl python_doscript "${S}"/shifty3/utils/*py
	dobin "${S}"/shifty3/utils/create_blastdb.sh
}