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-gets-undeclared.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-missing-include.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.")
|
||||
(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
|
||||
(package
|
||||
(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