diff --git a/gtdbtk/VERSION b/gtdbtk/VERSION index f3d57d30..6d122cf7 100644 --- a/gtdbtk/VERSION +++ b/gtdbtk/VERSION @@ -1,3 +1,5 @@ +1.0.1 +- Bugfix for 3rd party software versions. 1.0.0 - Migrated to Python3. - check_install now does an exhaustive check of the reference data. diff --git a/gtdbtk/external/fasttree.py b/gtdbtk/external/fasttree.py index 37d36c78..2aabbc14 100644 --- a/gtdbtk/external/fasttree.py +++ b/gtdbtk/external/fasttree.py @@ -34,12 +34,15 @@ def __init__(self): def get_version(self): """ Get FastTree version. """ - env = os.environ.copy() - args = ['FastTree'] - proc = subprocess.Popen(args, stdout=subprocess.PIPE, + try: + env = os.environ.copy() + args = ['FastTree'] + proc = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, encoding='utf-8') - output, error = proc.communicate() - return error.split('\n')[0].split(' ')[4] + output, error = proc.communicate() + return error.split('\n')[0].split(' ')[4] + except: + return "(version unavailable)" def run(self, output_tree, tree_log, fasttree_log, prot_model, no_support, no_gamma, msa_file, cpus=1): """Run FastTree. diff --git a/gtdbtk/external/hmm_aligner.py b/gtdbtk/external/hmm_aligner.py index ff7bc505..0c50340e 100644 --- a/gtdbtk/external/hmm_aligner.py +++ b/gtdbtk/external/hmm_aligner.py @@ -63,15 +63,20 @@ def __init__(self, def get_version(self): """ get HMMER version.""" - env = os.environ.copy() - proc = subprocess.Popen(['hmmalign', '-h'], stdout=subprocess.PIPE, + try: + env = os.environ.copy() + proc = subprocess.Popen(['hmmalign', '-h'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, encoding='utf-8') - output, error = proc.communicate() - for line in output.split('\n'): - if line.startswith('# HMMER'): - version = line.split(';')[0].replace('# HMMER', '').strip() - return version + output, error = proc.communicate() + for line in output.split('\n'): + if line.startswith('# HMMER'): + version = line.split(';')[0].replace('# HMMER', '').strip() + return version + return "(version unavailable)" + except: + return "(version unavailable)" + def align_marker_set(self, db_genome_ids, marker_set_id): """Threaded alignment using hmmalign for a given set of genomes. diff --git a/gtdbtk/external/pplacer.py b/gtdbtk/external/pplacer.py index 74c508fa..42c1023c 100644 --- a/gtdbtk/external/pplacer.py +++ b/gtdbtk/external/pplacer.py @@ -103,12 +103,15 @@ def __init__(self): self.version = self._get_version() def _get_version(self): - env = os.environ.copy() - proc = subprocess.Popen(['pplacer', '--version'], stdout=subprocess.PIPE, + try: + env = os.environ.copy() + proc = subprocess.Popen(['pplacer', '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, encoding='utf-8') - output, error = proc.communicate() - return output.strip() + output, error = proc.communicate() + return output.strip() + except: + return "(version unavailable)" def run(self, cpus, model, ref_pkg, json_out, msa_file, pplacer_out, mmap_file=None): diff --git a/gtdbtk/external/prodigal.py b/gtdbtk/external/prodigal.py index 14572f5c..0ec978fd 100644 --- a/gtdbtk/external/prodigal.py +++ b/gtdbtk/external/prodigal.py @@ -56,13 +56,16 @@ def __init__(self, self.version = self._get_version() def _get_version(self): - env = os.environ.copy() - proc = subprocess.Popen(['prodigal', '-v'], stdout=subprocess.PIPE, + try: + env = os.environ.copy() + proc = subprocess.Popen(['prtrrodigal', '-v'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, encoding='utf-8') - output, error = proc.communicate() + output, error = proc.communicate() - return error.split('\n')[1].split()[1].replace(':', '') + return error.split('\n')[1].split()[1].replace(':', '') + except: + return "(version unavailable)" def _run_prodigal(self, genome_id, fasta_path): """Run Prodigal. diff --git a/gtdbtk/external/tigrfam_search.py b/gtdbtk/external/tigrfam_search.py index e03bdea2..2f3e2558 100644 --- a/gtdbtk/external/tigrfam_search.py +++ b/gtdbtk/external/tigrfam_search.py @@ -49,15 +49,19 @@ def __init__(self, def _get_version(self): """ get HMMER version.""" - env = os.environ.copy() - proc = subprocess.Popen(['hmmsearch', '-h'], stdout=subprocess.PIPE, + try: + env = os.environ.copy() + proc = subprocess.Popen(['hmmsearch', '-h'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env, encoding='utf-8') - output, error = proc.communicate() - for line in output.split('\n'): - if line.startswith('# HMMER'): - version = line.split(';')[0].replace('# HMMER', '').strip() - return version + output, error = proc.communicate() + for line in output.split('\n'): + if line.startswith('# HMMER'): + version = line.split(';')[0].replace('# HMMER', '').strip() + return version + return "(version unavailable)" + except: + return "(version unavailable)" def _topHit(self, tigrfam_file): """Determine top hits to TIGRFAMs.