gnu: Add grocsvs.

* gnu/packages/bioinformatics.scm (grocsvs): New variable.
* gnu/packages/patches/grocsvs-dont-use-admiral.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
This commit is contained in:
Efraim Flashner 2020-04-21 13:56:33 +03:00
parent 0e680920b9
commit 31def9a9df
No known key found for this signature in database
GPG key ID: 41AAE7DCCA3D8351
3 changed files with 112 additions and 0 deletions

View file

@ -1007,6 +1007,7 @@ dist_patch_DATA = \
%D%/packages/patches/gpsbabel-qstring.patch \ %D%/packages/patches/gpsbabel-qstring.patch \
%D%/packages/patches/grantlee-merge-theme-dirs.patch \ %D%/packages/patches/grantlee-merge-theme-dirs.patch \
%D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \
%D%/packages/patches/grocsvs-dont-use-admiral.patch \
%D%/packages/patches/gromacs-tinyxml2.patch \ %D%/packages/patches/gromacs-tinyxml2.patch \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \ %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
%D%/packages/patches/grub-efi-fat-serial-number.patch \ %D%/packages/patches/grub-efi-fat-serial-number.patch \

View file

@ -79,6 +79,7 @@ (define-module (gnu packages bioinformatics)
#:use-module (gnu packages golang) #:use-module (gnu packages golang)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages graph) #:use-module (gnu packages graph)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages groff) #:use-module (gnu packages groff)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
@ -15853,3 +15854,44 @@ (define-public libsbml
signaling, and more. It continues to be evolved and expanded by an signaling, and more. It continues to be evolved and expanded by an
international community.") international community.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public grocsvs
;; The last release is out of date and new features have been added.
(let ((commit "ecd956a65093a0b2c41849050e4512d46fecea5d")
(revision "1"))
(package
(name "grocsvs")
(version (git-version "0.2.6.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/grocsvs/grocsvs")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "14505725gr7qxc17cxxf0k6lzcwmgi64pija4mwf29aw70qn35cc"))
(patches (search-patches "grocsvs-dont-use-admiral.patch"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; No test suite.
#:python ,python-2)) ; Only python-2 supported.
(inputs
`(("python2-h5py" ,python2-h5py)
("python2-ipython-cluster-helper" ,python2-ipython-cluster-helper)
("python2-networkx" ,python2-networkx)
("python2-psutil" ,python2-psutil)
("python2-pandas" ,python2-pandas)
("python2-pybedtools" ,python2-pybedtools)
("python2-pyfaidx" ,python2-pyfaidx)
("python2-pygraphviz" ,python2-pygraphviz)
("python2-pysam" ,python2-pysam)
("python2-scipy" ,python2-scipy)))
(home-page "https://github.com/grocsvs/grocsvs")
(synopsis "Genome-wide reconstruction of complex structural variants")
(description
"@dfn{Genome-wide Reconstruction of Complex Structural Variants}
(GROC-SVs) is a software pipeline for identifying large-scale structural
variants, performing sequence assembly at the breakpoints, and reconstructing
the complex structural variants using the long-fragment information from the
10x Genomics platform.")
(license license:expat))))

View file

@ -0,0 +1,69 @@
python-admiral doesn't have a license
https://github.com/nspies/admiral/issues/3
diff --git a/setup.py b/setup.py
index 692b6a0..568f381 100755
--- a/setup.py
+++ b/setup.py
@@ -20,7 +20,7 @@ setup(
'console_scripts' : ["grocsvs = grocsvs.main:main"]
},
- install_requires = ["admiral", "h5py", "networkx>=2.0", "pandas", "pybedtools",
+ install_requires = ["h5py", "networkx>=2.0", "pandas", "pybedtools",
"pyfaidx", "pysam>=0.10.0", "scipy", "ipython-cluster-helper",
"pygraphviz", "psutil"],
diff --git a/src/grocsvs/jobmanagers.py b/src/grocsvs/jobmanagers.py
index 6da0b58..112d7ff 100755
--- a/src/grocsvs/jobmanagers.py
+++ b/src/grocsvs/jobmanagers.py
@@ -41,34 +41,3 @@ class MultiprocessingCluster(Cluster):
pool = multiprocessing.Pool(processes=self.processes)
return pool.map_async(fn, args).get(999999)
-
-class AdmiralCluster(Cluster):
- def map(self, fn, args):
- from admiral import jobmanagers, remote
-
- cluster_options = self.cluster_settings.cluster_options.copy()
-
- scheduler = cluster_options.pop("scheduler")
-
- jobmanager_class = jobmanagers.get_jobmanager(scheduler)
- jobmanager = jobmanager_class(
- batch_dir=self.batch_dir, log_dir=self.batch_dir)
-
-
- if not "mem" in cluster_options:
- cluster_options["mem"] = "16g"
- if not "time" in cluster_options:
- cluster_options["time"] = "12h"
-
- jobs = []
- #for i, arg in enumerate(args):
-
- job_name = args[0].__class__.__name__
- args = [[arg] for arg in args]
- job = remote.run_remote(fn, jobmanager, job_name, args=args,
- array=True, overwrite=True, **cluster_options)
-
- result = jobmanagers.wait_for_jobs([job], wait=5, progress=True)
-
- if not result:
- raise Exception("Some chunks failed to complete")
diff --git a/src/grocsvs/pipeline.py b/src/grocsvs/pipeline.py
index ab1bb2d..350976f 100755
--- a/src/grocsvs/pipeline.py
+++ b/src/grocsvs/pipeline.py
@@ -8,8 +8,7 @@ from grocsvs import utilities
def make_jobmanager(jobmanager_settings, processes, batch_dir):
jobmanager_classes = {"IPCluster":jobmanagers.IPCluster,
"local": jobmanagers.LocalCluster,
- "multiprocessing": jobmanagers.MultiprocessingCluster,
- "admiral": jobmanagers.AdmiralCluster}
+ "multiprocessing": jobmanagers.MultiprocessingCluster}
cls = jobmanager_classes[jobmanager_settings.cluster_type]
return cls(processes, jobmanager_settings, batch_dir)