Skip to content
Commits on Source (7)
......@@ -7,7 +7,14 @@ Build-Depends: debhelper (>= 11~),
dh-python,
python3-all,
python3-setuptools,
spades
default-jdk,
bowtie2,
freebayes,
ncbi-blast+,
racon,
samtools,
spades,
zlib1g-dev
Standards-Version: 4.1.4
Vcs-Browser: https://salsa.debian.org/med-team/unicycler
Vcs-Git: https://salsa.debian.org/med-team/unicycler.git
......@@ -17,10 +24,13 @@ Package: unicycler
Architecture: any
Depends: ${python3:Depends},
${misc:Depends},
spades,
ncbi-blast+,
default-jre,
bowtie2,
samtools
freebayes,
ncbi-blast+,
racon,
samtools,
spades
Description: hybrid assembly pipeline for bacterial genomes
Unicycler is an assembly pipeline for bacterial genomes. It can assemble
Illumina-only read sets where it functions as a SPAdes-optimiser. It can
......
Author: Andreas Tille <tille@debian.org>
Last-Update: Fri, 25 May 2018 10:59:36 +0200
Description: SPAdes is in Debian at /usr/bin/spades
--- a/test/test_dependencies.py
+++ b/test/test_dependencies.py
@@ -42,7 +42,7 @@ class TestDependencies(unittest.TestCase
def test_spades_not_found(self):
stdout, stderr, ret_code = self.run_unicycler(['--spades_path', 'not_a_real_path'])
- self.assertTrue(bool(re.search(r'spades.py\s+not found', stdout)))
+ self.assertTrue(bool(re.search(r'spades\s+not found', stdout)))
self.assertTrue('could not find SPAdes' in stderr)
self.assertEqual(ret_code, 1)
@@ -102,14 +102,14 @@ class TestDependencies(unittest.TestCase
def test_no_rotate(self):
stdout, stderr, ret_code = self.run_unicycler(['--spades_path', 'not_a_real_path',
'--no_rotate'])
- self.assertTrue(bool(re.search(r'spades.py\s+not found', stdout)))
+ self.assertTrue(bool(re.search(r'spades\s+not found', stdout)))
self.assertTrue(bool(re.search(r'makeblastdb\s+not used', stdout)))
self.assertTrue(bool(re.search(r'tblastn\s+not used', stdout)))
def test_no_pilon(self):
stdout, stderr, ret_code = self.run_unicycler(['--spades_path', 'not_a_real_path',
'--no_pilon'])
- self.assertTrue(bool(re.search(r'spades.py\s+not found', stdout)))
+ self.assertTrue(bool(re.search(r'spades\s+not found', stdout)))
self.assertTrue(bool(re.search(r'bowtie2-build\s+not used', stdout)))
self.assertTrue(bool(re.search(r'bowtie2\s+not used', stdout)))
self.assertTrue(bool(re.search(r'samtools\s+not used', stdout)))
@@ -119,12 +119,12 @@ class TestDependencies(unittest.TestCase
def test_verbosity_1(self):
stdout, stderr, ret_code = self.run_unicycler(['--spades_path', 'not_a_real_path',
'--verbosity', '1'])
- self.assertTrue(bool(re.search(r'spades.py\s+not found', stdout)))
+ self.assertTrue(bool(re.search(r'spades\s+not found', stdout)))
self.assertTrue(bool(re.search(r'Program\s+Version\s+Status', stdout)))
self.assertFalse(bool(re.search(r'Program\s+Version\s+Status\s+Path', stdout)))
def test_verbosity_2(self):
stdout, stderr, ret_code = self.run_unicycler(['--spades_path', 'not_a_real_path',
'--verbosity', '2'])
- self.assertTrue(bool(re.search(r'spades.py\s+not found', stdout)))
+ self.assertTrue(bool(re.search(r'spades\s+not found', stdout)))
self.assertTrue(bool(re.search(r'Program\s+Version\s+Status\s+Path', stdout)))
--- a/test/overlap_removal_test.py
+++ b/test/overlap_removal_test.py
@@ -94,7 +94,7 @@ def run_spades(out_dir):
reads_2 = os.path.join(out_dir, 'reads_2.fastq')
reads_unpaired = os.path.join(out_dir, 'reads_unpaired.fastq')
- spades_cmd = ['spades.py', '-o', out_dir, '--only-assembler', '-k', '21,41,61,81']
+ spades_cmd = ['spades', '-o', out_dir, '--only-assembler', '-k', '21,41,61,81']
if os.path.isfile(reads_1):
spades_cmd += ['-1', reads_1, '-2', reads_2]
--- a/test/test_misc.py
+++ b/test/test_misc.py
@@ -384,14 +384,14 @@ class TestMiscFunctions(unittest.TestCas
def test_spades_version_parsing_3(self):
spades_version_output = 'option -v not recognized\nSPAdes genome assembler v.3.5.0\n\n' \
- 'Usage: SPAdes-3.5.0-Darwin/bin/spades.py [options] ' \
+ 'Usage: SPAdes-3.5.0-Darwin/bin/spades [options] ' \
'-o <output_dir>\n\nBasic options:'
version = unicycler.misc.spades_version_from_spades_output(spades_version_output)
self.assertEqual(version, '3.5.0')
def test_spades_version_parsing_4(self):
spades_version_output = 'option -v not recognized\nSPAdes genome assembler v.2.4.0\n\n' \
- 'Usage: SPAdes-2.4.0-Darwin/bin/spades.py [options] ' \
+ 'Usage: SPAdes-2.4.0-Darwin/bin/spades [options] ' \
'-o <output_dir>\n\nBasic options:'
version = unicycler.misc.spades_version_from_spades_output(spades_version_output)
self.assertEqual(version, '2.4.0')
--- a/README.md
+++ b/README.md
@@ -93,7 +93,7 @@ Reasons to __not__ use Unicycler:
* [ICC](https://software.intel.com/en-us/c-compilers) also works (though I don't know the minimum required version number)
* [setuptools](https://packaging.python.org/installing/#install-pip-setuptools-and-wheel) (only required for installation of Unicycler)
* For short-read or hybrid assembly:
- * [SPAdes](http://bioinf.spbau.ru/spades) v3.6.2 or later (`spades.py`)
+ * [SPAdes](http://bioinf.spbau.ru/spades) v3.6.2 or later (`spades`)
* For long-read or hybrid assembly:
* [Racon](https://github.com/isovic/racon) (`racon`)
* For polishing
@@ -411,7 +411,7 @@ Run `unicycler --help_all` to see a comp
SPAdes assembly:
These options control the short-read SPAdes assembly at the beginning of the Unicycler pipeline.
- --spades_path SPADES_PATH Path to the SPAdes executable (default: spades.py)
+ --spades_path SPADES_PATH Path to the SPAdes executable (default: spades)
--no_correct Skip SPAdes error correction step (default: conduct SPAdes error
correction)
--min_kmer_frac MIN_KMER_FRAC Lowest k-mer size for SPAdes assembly, expressed as a fraction of the read
--- a/setup.py
+++ b/setup.py
@@ -63,7 +63,7 @@ def missing_tool(tool_name):
def tool_check():
# Check for required programs.
- tools = ['spades.py', 'java', 'pilon', 'samtools', 'bowtie2', 'bowtie2-build',
+ tools = ['spades', 'java', 'pilon', 'samtools', 'bowtie2', 'bowtie2-build',
'makeblastdb', 'tblastn']
missing_tools = []
for tool in tools:
--- a/unicycler/misc.py
+++ b/unicycler/misc.py
@@ -124,7 +124,7 @@ def check_spades(spades_path):
if not err.decode():
quit_with_error('SPAdes was found but does not produce output (make sure to use '
- '"spades.py" location, not "spades")')
+ '"spades" location, not "spades")')
def find_pilon(pilon_path, java_path, args):
@@ -916,7 +916,7 @@ def spades_path_and_version(spades_path)
def spades_version_from_spades_output(spades_output):
"""
- Parses the SPAdes version from the output of spades.py -v
+ Parses the SPAdes version from the output of spades -v
"""
try:
return re.search(r'v(\d+\.\d+\.\d+)', spades_output).group(1)
--- a/unicycler/unicycler.py
+++ b/unicycler/unicycler.py
@@ -320,7 +320,7 @@ def get_arguments():
'These options control the short-read SPAdes '
'assembly at the beginning of the Unicycler pipeline.'
if show_all_args else argparse.SUPPRESS)
- spades_group.add_argument('--spades_path', type=str, default='spades.py',
+ spades_group.add_argument('--spades_path', type=str, default='spades',
help='Path to the SPAdes executable'
if show_all_args else argparse.SUPPRESS)
spades_group.add_argument('--no_correct', action='store_true',
@@ -753,7 +753,7 @@ def check_dependencies(args, short_reads
spades_path, spades_version, spades_status = '', '', 'not used'
else:
spades_path, spades_version, spades_status = spades_path_and_version(args.spades_path)
- spades_row = ['spades.py', spades_version, spades_status]
+ spades_row = ['spades', spades_version, spades_status]
if args.verbosity > 1:
spades_row.append(spades_path)
program_table.append(spades_row)
@@ -861,7 +861,7 @@ def quit_if_dependency_problem(spades_st
quit_with_error('SPAdes cannot run due to an incompatible Python version')
if spades_status == 'bad':
quit_with_error('SPAdes was found but does not produce output (make sure to use '
- '"spades.py" location, not "spades")')
+ '"spades" location, not "spades")')
if makeblastdb_status == 'not found':
quit_with_error('could not find makeblastdb - either specify its location using '
'--makeblastdb_path or use --no_rotate to remove BLAST dependency')
#!/usr/bin/make -f
# DH_VERBOSE := 1
export LC_ALL=C.UTF-8
include /usr/share/dpkg/default.mk
# this provides:
# DEB_SOURCE: the source package name
# DEB_VERSION: the full version of the package (epoch + upstream vers. + revision)
# DEB_VERSION_EPOCH_UPSTREAM: the package's version without the Debian revision
# DEB_VERSION_UPSTREAM_REVISION: the package's version without the Debian epoch
# DEB_VERSION_UPSTREAM: the package's upstream version
# DEB_DISTRIBUTION: the distribution(s) listed in the current entry of debian/changelog
export PYBUILD_NAME=unicycler
# for hardening you might like to uncomment this:
# export DEB_BUILD_MAINT_OPTIONS=hardening=+all
# Build time tests are flaky
export DH_BUILD_MAINT_OPTIONS=nocheck
%:
dh $@ --with python3 --buildsystem=pybuild
override_dh_auto_clean:
echo "Avoid: command 'UnicyclerClean' has no such option 'all'"
find . -name "*.o" -delete
override_dh_auto_build:
dh_auto_build
# building the dynamic library requires extra make call
make
override_dh_auto_test:
BUILDPATH=$(shell pybuild --print build_dir --interpreter python3) ; \
ln -s $(CURDIR)/sample_data $${BUILDPATH} ; \
cp -a unicycler/*.so $${BUILDPATH}/$(PYBUILD_NAME) ; \
PYTHONPATH=$${BUILDPATH}/$(PYBUILD_NAME) dh_auto_test