gnu: Add crossmap.
* gnu/packages/bioinformatics.scm (crossmap): New variable. * gnu/packages/patches/crossmap-allow-system-pysam.patch: New file. * gnu-system.am (dist_patch_DATA): Add it.
This commit is contained in:
parent
1385d37a6e
commit
191c710139
|
@ -375,6 +375,7 @@ dist_patch_DATA = \
|
||||||
gnu/packages/patches/cpio-CVE-2014-9112-pt5.patch \
|
gnu/packages/patches/cpio-CVE-2014-9112-pt5.patch \
|
||||||
gnu/packages/patches/cpio-gets-undeclared.patch \
|
gnu/packages/patches/cpio-gets-undeclared.patch \
|
||||||
gnu/packages/patches/cpufrequtils-fix-aclocal.patch \
|
gnu/packages/patches/cpufrequtils-fix-aclocal.patch \
|
||||||
|
gnu/packages/patches/crossmap-allow-system-pysam.patch \
|
||||||
gnu/packages/patches/cssc-gets-undeclared.patch \
|
gnu/packages/patches/cssc-gets-undeclared.patch \
|
||||||
gnu/packages/patches/cssc-missing-include.patch \
|
gnu/packages/patches/cssc-missing-include.patch \
|
||||||
gnu/packages/patches/clucene-contribs-lib.patch \
|
gnu/packages/patches/clucene-contribs-lib.patch \
|
||||||
|
|
|
@ -272,6 +272,48 @@ gapped, local, and paired-end alignment modes.")
|
||||||
"CLIPper is a tool to define peaks in CLIP-seq datasets.")
|
"CLIPper is a tool to define peaks in CLIP-seq datasets.")
|
||||||
(license license:gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
|
(define-public crossmap
|
||||||
|
(package
|
||||||
|
(name "crossmap")
|
||||||
|
(version "0.1.6")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://sourceforge/crossmap/CrossMap-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"163hi5gjgij6cndxlvbkp5jjwr0k4wbm9im6d2210278q7k9kpnp"))
|
||||||
|
;; patch has been sent upstream already
|
||||||
|
(patches (list
|
||||||
|
(search-patch "crossmap-allow-system-pysam.patch")))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
;; remove bundled copy of pysam
|
||||||
|
(snippet
|
||||||
|
'(delete-file-recursively "lib/pysam"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:python ,python-2
|
||||||
|
#:phases
|
||||||
|
(alist-cons-after
|
||||||
|
'unpack 'set-env
|
||||||
|
(lambda _ (setenv "CROSSMAP_USE_SYSTEM_PYSAM" "1"))
|
||||||
|
%standard-phases)))
|
||||||
|
(inputs
|
||||||
|
`(("python-numpy" ,python2-numpy)
|
||||||
|
("python-pysam" ,python2-pysam)
|
||||||
|
("zlib" ,zlib)))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-cython" ,python2-cython)
|
||||||
|
("python-nose" ,python2-nose)
|
||||||
|
("python-setuptools" ,python2-setuptools)))
|
||||||
|
(home-page "http://crossmap.sourceforge.net/")
|
||||||
|
(synopsis "Convert genome coordinates between assemblies")
|
||||||
|
(description
|
||||||
|
"CrossMap is a program for conversion of genome coordinates or annotation
|
||||||
|
files between different genome assemblies. It supports most commonly used
|
||||||
|
file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public flexbar
|
(define-public flexbar
|
||||||
(package
|
(package
|
||||||
(name "flexbar")
|
(name "flexbar")
|
||||||
|
|
|
@ -0,0 +1,121 @@
|
||||||
|
This patch modifies the build process such that the bundled copy of pysam does
|
||||||
|
not need to be built if CROSSMAP_USE_SYSTEM_PYSAM is set and the pysam module
|
||||||
|
can be imported.
|
||||||
|
|
||||||
|
Upstream has agreed to apply the patch in the next maintenance release of
|
||||||
|
crossmap. The patch has already been uploaded to
|
||||||
|
http://sourceforge.net/projects/crossmap/files/patch/.
|
||||||
|
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
--- a/setup.py 2015-02-26 15:28:49.771189185 +0100
|
||||||
|
+++ b/setup.py 2015-02-26 15:55:03.440327752 +0100
|
||||||
|
@@ -19,6 +19,15 @@
|
||||||
|
except:
|
||||||
|
have_numpy = False
|
||||||
|
|
||||||
|
+try:
|
||||||
|
+ import pysam
|
||||||
|
+ if os.environ['CROSSMAP_USE_SYSTEM_PYSAM']:
|
||||||
|
+ have_pysam = True
|
||||||
|
+ else:
|
||||||
|
+ have_pysam = False
|
||||||
|
+except ImportError:
|
||||||
|
+ have_pysam = False
|
||||||
|
+
|
||||||
|
if platform.system()=='Windows':
|
||||||
|
print >> sys.stderr, "Sorry, Windows platform is not supported!"
|
||||||
|
sys.exit()
|
||||||
|
@@ -165,49 +174,50 @@
|
||||||
|
|
||||||
|
|
||||||
|
#================= pysam samtools ====================
|
||||||
|
- extensions.append(Extension(
|
||||||
|
- "pysam.csamtools",
|
||||||
|
- csamtools_sources + [ "lib/pysam/%s" % x for x in ("pysam_util.c", )] +\
|
||||||
|
- glob.glob( os.path.join( "lib/samtools", "*.pysam.c" )) +\
|
||||||
|
- os_c_files + \
|
||||||
|
- glob.glob( os.path.join( "lib/samtools", "*", "*.pysam.c" ) ),
|
||||||
|
- library_dirs=[],
|
||||||
|
- include_dirs=[ "lib/samtools", "lib/pysam" ] + include_os,
|
||||||
|
- libraries=[ "z", ],
|
||||||
|
- language="c",
|
||||||
|
- define_macros = [('_FILE_OFFSET_BITS','64'),('_USE_KNETFILE','')],
|
||||||
|
- ))
|
||||||
|
-
|
||||||
|
- extensions.append(Extension(
|
||||||
|
- "pysam.ctabix",
|
||||||
|
- tabix_sources + [ "lib/pysam/%s" % x for x in ( "tabix_util.c", )] +\
|
||||||
|
- os_c_files + \
|
||||||
|
- glob.glob( os.path.join( "lib/tabix", "*.pysam.c" ) ),
|
||||||
|
- library_dirs=[],
|
||||||
|
- include_dirs=[ "lib/tabix", "lib/pysam" ] + include_os,
|
||||||
|
- libraries=[ "z", ],
|
||||||
|
- language="c",
|
||||||
|
- define_macros = [('_FILE_OFFSET_BITS','64'),
|
||||||
|
- ('_USE_KNETFILE','')],
|
||||||
|
- ))
|
||||||
|
-
|
||||||
|
- extensions.append(Extension(
|
||||||
|
- "pysam.TabProxies",
|
||||||
|
- tabproxies_sources + os_c_files,
|
||||||
|
- library_dirs=[],
|
||||||
|
- include_dirs= include_os,
|
||||||
|
- libraries=[ "z", ],
|
||||||
|
- language="c",
|
||||||
|
- ))
|
||||||
|
-
|
||||||
|
- extensions.append(Extension(
|
||||||
|
- "pysam.cvcf",
|
||||||
|
- cvcf_sources + os_c_files,
|
||||||
|
- library_dirs=[],
|
||||||
|
- include_dirs= ["lib/tabix",] + include_os,
|
||||||
|
- libraries=[ "z", ],
|
||||||
|
- language="c",
|
||||||
|
- ))
|
||||||
|
+ if not have_pysam:
|
||||||
|
+ extensions.append(Extension(
|
||||||
|
+ "pysam.csamtools",
|
||||||
|
+ csamtools_sources + [ "lib/pysam/%s" % x for x in ("pysam_util.c", )] +\
|
||||||
|
+ glob.glob( os.path.join( "lib/samtools", "*.pysam.c" )) +\
|
||||||
|
+ os_c_files + \
|
||||||
|
+ glob.glob( os.path.join( "lib/samtools", "*", "*.pysam.c" ) ),
|
||||||
|
+ library_dirs=[],
|
||||||
|
+ include_dirs=[ "lib/samtools", "lib/pysam" ] + include_os,
|
||||||
|
+ libraries=[ "z", ],
|
||||||
|
+ language="c",
|
||||||
|
+ define_macros = [('_FILE_OFFSET_BITS','64'),('_USE_KNETFILE','')],
|
||||||
|
+ ))
|
||||||
|
+
|
||||||
|
+ extensions.append(Extension(
|
||||||
|
+ "pysam.ctabix",
|
||||||
|
+ tabix_sources + [ "lib/pysam/%s" % x for x in ( "tabix_util.c", )] +\
|
||||||
|
+ os_c_files + \
|
||||||
|
+ glob.glob( os.path.join( "lib/tabix", "*.pysam.c" ) ),
|
||||||
|
+ library_dirs=[],
|
||||||
|
+ include_dirs=[ "lib/tabix", "lib/pysam" ] + include_os,
|
||||||
|
+ libraries=[ "z", ],
|
||||||
|
+ language="c",
|
||||||
|
+ define_macros = [('_FILE_OFFSET_BITS','64'),
|
||||||
|
+ ('_USE_KNETFILE','')],
|
||||||
|
+ ))
|
||||||
|
+
|
||||||
|
+ extensions.append(Extension(
|
||||||
|
+ "pysam.TabProxies",
|
||||||
|
+ tabproxies_sources + os_c_files,
|
||||||
|
+ library_dirs=[],
|
||||||
|
+ include_dirs= include_os,
|
||||||
|
+ libraries=[ "z", ],
|
||||||
|
+ language="c",
|
||||||
|
+ ))
|
||||||
|
+
|
||||||
|
+ extensions.append(Extension(
|
||||||
|
+ "pysam.cvcf",
|
||||||
|
+ cvcf_sources + os_c_files,
|
||||||
|
+ library_dirs=[],
|
||||||
|
+ include_dirs= ["lib/tabix",] + include_os,
|
||||||
|
+ libraries=[ "z", ],
|
||||||
|
+ language="c",
|
||||||
|
+ ))
|
||||||
|
|
||||||
|
|
||||||
|
return extensions
|
Loading…
Reference in New Issue