[med-svn] [Git][med-team/pynast][master] Build-Depends: python3-cogent3

Michael R. Crusoe gitlab at salsa.debian.org
Mon Apr 13 17:27:53 BST 2020



Michael R. Crusoe pushed to branch master at Debian Med / pynast


Commits:
df4667f1 by Michael R. Crusoe at 2020-04-13T16:21:43+02:00
Build-Depends: python3-cogent3

- - - - -


4 changed files:

- debian/changelog
- debian/control
- debian/patches/2to3.patch
- debian/rules


Changes:

=====================================
debian/changelog
=====================================
@@ -14,7 +14,7 @@ pynast (1.2.2-6) UNRELEASED; urgency=medium
     present in machine-readable debian/copyright).
   * Build-Depends / Recommends: s/blast2/ncbi-blast+-legacy/g
     Closes: #948081
-  TODO: python3-cogent
+  * Build-Depends: python3-cogent3
 
  -- Andreas Tille <tille at debian.org>  Sat, 04 Jan 2020 14:15:49 +0100
 


=====================================
debian/control
=====================================
@@ -6,8 +6,9 @@ Uploaders: Steffen Moeller <moeller at debian.org>,
 Section: python
 Priority: optional
 Build-Depends: debhelper-compat (= 12),
+               dh-python,
                python3,
-               python-cogent,
+               python3-cogent3,
                python3-sphinx,
                ncbi-blast+-legacy,
                clustalw,


=====================================
debian/patches/2to3.patch
=====================================
@@ -3,9 +3,9 @@ Bug-Debian: https://bugs.debian.org/937488
 Author: Andreas Tille <tille at debian.org>
 Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
 
---- a/doc/conf.py
-+++ b/doc/conf.py
-@@ -37,8 +37,8 @@ source_suffix = '.rst'
+--- pynast.orig/doc/conf.py
++++ pynast/doc/conf.py
+@@ -37,8 +37,8 @@
  master_doc = 'index'
  
  # General information about the project.
@@ -16,7 +16,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
  
  # The version info for the project you're documenting, acts as replacement for
  # |version| and |release|, also used in various other places throughout the
-@@ -172,8 +172,8 @@ htmlhelp_basename = 'PyNASTdoc'
+@@ -172,8 +172,8 @@
  # Grouping the document tree into LaTeX files. List of tuples
  # (source start file, target name, title, author, documentclass [howto/manual]).
  latex_documents = [
@@ -27,39 +27,58 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
  ]
  
  # The name of an image file (relative to this directory) to place at the top of
---- a/pynast/__init__.py
-+++ b/pynast/__init__.py
+--- pynast.orig/pynast/__init__.py
++++ pynast/pynast/__init__.py
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/python3
  
  #-----------------------------------------------------------------------------
  # Copyright (c) 2013, The PyNAST Development Team.
---- a/pynast/logger.py
-+++ b/pynast/logger.py
+--- pynast.orig/pynast/logger.py
++++ pynast/pynast/logger.py
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/python3
  
  #-----------------------------------------------------------------------------
  # Copyright (c) 2013, The PyNAST Development Team.
---- a/pynast/pycogent_backports/__init__.py
-+++ b/pynast/pycogent_backports/__init__.py
+--- pynast.orig/pynast/pycogent_backports/__init__.py
++++ pynast/pynast/pycogent_backports/__init__.py
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/python3
  
  #-----------------------------------------------------------------------------
  # Copyright (c) 2013, The PyNAST Development Team.
---- a/pynast/pycogent_backports/uclust.py
-+++ b/pynast/pycogent_backports/uclust.py
+--- pynast.orig/pynast/pycogent_backports/uclust.py
++++ pynast/pynast/pycogent_backports/uclust.py
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/python3
  """Application controller for uclust version 1.1.579
  
  Includes application controllers for uclust and
-@@ -127,9 +127,8 @@ class Uclust(CommandLineApplication):
+@@ -22,12 +22,12 @@
+ from os import remove, makedirs
+ from os.path import split, splitext, basename, isdir, abspath, isfile, join
+ from tempfile import gettempdir
+-from cogent.parse.fasta import MinimalFastaParser
+-from cogent.app.parameters import ValuedParameter, FlagParameter
+-from cogent.app.util import CommandLineApplication, ResultPath,\
+- get_tmp_filename, ApplicationError, ApplicationNotFoundError
+-from cogent.util.misc import remove_files
+-from cogent import DNA
++from cogent3.parse.fasta import MinimalFastaParser
++from cogent3.app.parameters import ValuedParameter, FlagParameter
++from cogent3.app.util import CommandLineApplication, ResultPath,\
++ ApplicationError, ApplicationNotFoundError
++from cogent3.util.misc import remove_files, get_tmp_filename
++from cogent3 import DNA
+ 
+ class UclustParseError(Exception):
+     pass
+@@ -127,9 +127,8 @@
          
          unsupported_parameters = set(data.keys()) - set(allowed_values)
          if unsupported_parameters:
@@ -71,7 +90,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
          
          for v in allowed_values:
              # turn the parameter off so subsequent runs are not
-@@ -216,30 +215,28 @@ def process_uclust_pw_alignment_results(
+@@ -216,30 +215,28 @@
              strand_id = ''
              target_rev_match = False
          else:
@@ -108,7 +127,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
              
          if target_rev_match:
              query_id = uc_query_id + ' RC'
-@@ -289,8 +286,7 @@ def clusters_from_uc_file(uc_lines,
+@@ -289,8 +286,7 @@
          target_cluster = record[9].split()[0]
          if hit_type == 'H':
              if error_on_multiple_hits and query_id in all_hits:
@@ -118,7 +137,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
                    "This can happen if --allhits is "
                    "enabled in the call to uclust, which isn't supported by default. "
                    "Call clusters_from_uc_file(lines, error_on_multiple_hits=False) to "
-@@ -304,8 +300,7 @@ def clusters_from_uc_file(uc_lines,
+@@ -304,8 +300,7 @@
              # a new seed was identified -- create a cluster with this 
              # sequence as the first instance
              if query_id in clusters:
@@ -128,7 +147,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
                    "represents a cluster. Are there overlapping seq ids in your "
                    "reference and input files or repeated seq ids in either? "
                    "Offending seq id is %s" % query_id)
-@@ -318,8 +313,7 @@ def clusters_from_uc_file(uc_lines,
+@@ -318,8 +313,7 @@
              # lines separately from the H lines to detect overlapping seq ids 
              # between the reference and the input fasta files
              if query_id in clusters:
@@ -138,7 +157,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
                    "represents a cluster. Are there overlapping seq ids in your "
                    "reference and input files or repeated seq ids in either? "
                    "Offending seq id is %s" % query_id)
-@@ -330,8 +324,7 @@ def clusters_from_uc_file(uc_lines,
+@@ -330,8 +324,7 @@
          else:
              # shouldn't be possible to get here, but provided for 
              # clarity
@@ -148,7 +167,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
      
      # will need to return the full clusters dict, I think, to support
      # useful identifiers in reference database clustering
-@@ -567,7 +560,7 @@ def get_clusters_from_fasta_filepath(
+@@ -567,7 +560,7 @@
          remove_files(files_to_remove)
      except ApplicationError:
          remove_files(files_to_remove)
@@ -157,7 +176,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
           'unsupported version (current supported version is v1.2.22) is installed or '
           'improperly formatted input file was provided')
      except ApplicationNotFoundError:
-@@ -586,6 +579,6 @@ def get_clusters_from_fasta_filepath(
+@@ -586,6 +579,6 @@
      if return_cluster_maps:
          return clusters, failures, seeds
      else:
@@ -165,15 +184,15 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
 +        return list(clusters.values()), failures, seeds
  
  ## End uclust convenience functions
---- a/pynast/util.py
-+++ b/pynast/util.py
+--- pynast.orig/pynast/util.py
++++ pynast/pynast/util.py
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/python3
  
  #-----------------------------------------------------------------------------
  # Copyright (c) 2013, The PyNAST Development Team.
-@@ -8,7 +8,7 @@
+@@ -8,25 +8,23 @@
  # The full license is in the file COPYING.txt, distributed with this software.
  #-----------------------------------------------------------------------------
  
@@ -182,9 +201,40 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
  from os import system, remove, popen
  from os.path import exists
  from tempfile import gettempdir, NamedTemporaryFile
-@@ -80,10 +80,9 @@ def pair_hmm_align_unaligned_seqs(seqs,m
+ from shutil import copy as copy_file
+ from glob import glob
+ 
+-from cogent import DNA, LoadSeqs, Sequence
+-from cogent.util.misc import remove_files
+-from cogent.core.alignment import SequenceCollection, DenseAlignment
+-from cogent.align.align import make_dna_scoring_dict, global_pairwise
+-from cogent.app.blast import blastn
+-from cogent.app.formatdb import build_blast_db_from_seqs, \
+- build_blast_db_from_fasta_path
+-from cogent.app.muscle_v38 import align_unaligned_seqs as muscle_align_unaligned_seqs
+-from cogent.app.mafft import align_unaligned_seqs as mafft_align_unaligned_seqs
+-from cogent.app.clustalw import align_unaligned_seqs as clustal_align_unaligned_seqs
+-from cogent.parse.blast import BlastResult
+-from cogent.parse.fasta import MinimalFastaParser
++from cogent3 import DNA, make_unaligned_seqs
++from cogent3.core.sequence import Sequence
++from cogent3.util.misc import remove_files
++from cogent3.core.alignment import SequenceCollection
++from cogent3.align.align import make_dna_scoring_dict, global_pairwise
++#from cogent3.app.muscle_v38 import align_unaligned_seqs as muscle_align_unaligned_seqs
++#from cogent3.app.mafft import align_unaligned_seqs as mafft_align_unaligned_seqs
++#from cogent3.app.clustalw import align_unaligned_seqs as clustal_align_unaligned_seqs
++from cogent3.parse.blast import BlastResult
++from cogent3.parse.fasta import MinimalFastaParser
+ 
+ from pynast.logger import NastLogger
+ from pynast.pycogent_backports.uclust import uclust_search_and_align_from_fasta_filepath
+@@ -78,12 +76,11 @@
+         This needs to be moved to cogent.align.align
+     """
      
-     seqs = LoadSeqs(data=seqs,moltype=moltype,aligned=False)
+-    seqs = LoadSeqs(data=seqs,moltype=moltype,aligned=False)
++    seqs = make_unaligned_seqs(data=seqs,moltype=moltype)
      try:
 -        s1, s2 = seqs.values()
 +        s1, s2 = list(seqs.values())
@@ -195,13 +245,13 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
      
      try:
          gap_open = params['gap_open']
-@@ -110,13 +109,12 @@ def blast_align_unaligned_seqs(seqs,
+@@ -110,13 +107,12 @@
          This needs to be moved to the blast application controller.
      
      """
 -    seqs = dict(LoadSeqs(data=seqs,moltype=moltype,aligned=False).items())
 -    seq_ids = seqs.keys()
-+    seqs = dict(list(LoadSeqs(data=seqs,moltype=moltype,aligned=False).items()))
++    seqs = dict(list(make_unaligned_seqs(data=seqs,moltype=moltype).items()))
 +    seq_ids = list(seqs.keys())
      query_id = seq_ids[0]
      subject_id = seq_ids[1]
@@ -212,7 +262,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
      
      # Create temporary input and output files. Note that 
      # delete = False here because we don't want these to 
-@@ -150,7 +148,7 @@ def blast_align_unaligned_seqs(seqs,
+@@ -150,7 +146,7 @@
      bl2seq_res = system('bl2seq -i %s -j %s -o %s -F F -S 1 -q -1 -E 2 -W 11 -p blastn' %\
       (in_filepath1,in_filepath2,out_filepath))
      if bl2seq_res != 0:
@@ -221,7 +271,22 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
      
      query_seq = []
      subject_seq = []
-@@ -322,7 +320,7 @@ def reintroduce_template_spacing(templat
+@@ -221,11 +217,12 @@
+     result = [(query_id,query_seq),\
+               (subject_id,subject_seq)]
+     
+-    return LoadSeqs(data=result,moltype=moltype)
++    return make_aligned_seqs(data=result,moltype=moltype)
+ 
+ 
+ def align_two_seqs(template, candidate,
+-    align_unaligned_seqs_f=muscle_align_unaligned_seqs,
++    align_unaligned_seqs_f=None,
++#    align_unaligned_seqs_f=muscle_align_unaligned_seqs,
+     params={},moltype=DNA):
+     """ Align the two sequences with an arbitrary aligner function
+     
+@@ -322,7 +319,7 @@
              # add the positions of the new gaps chars to the list
              # of new gaps
              new_gaps_in_pw_alignment += \
@@ -230,7 +295,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
          else:
              # gap pattern is the same following the current sequence 
              # position
-@@ -337,7 +335,7 @@ def nearest_gap(seq,pos):
+@@ -337,7 +334,7 @@
      """
      # Catch negative sequence positions
      if pos < 0:
@@ -239,7 +304,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
      
      # If pos contains a gap, that's the closest gap
      if seq[pos] == '-':
-@@ -364,11 +362,10 @@ def nearest_gap(seq,pos):
+@@ -364,11 +361,10 @@
      
      # error if there are no gaps in the sequence
      if not choices:
@@ -253,7 +318,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
          
      # return the gap_index of the choice with the smaller distance -- if there
      # is a tie, will delete the 5' gap (which is what original NAST does)
-@@ -452,9 +449,8 @@ def remove_template_terminal_gaps(candid
+@@ -452,9 +448,8 @@
      """Remove template terminal gaps and corresponding bases in candidate 
      """
      if len(template) != len(candidate):
@@ -265,7 +330,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
           
      if len(template) == 0:
          return candidate, template
-@@ -487,10 +483,10 @@ def remove_template_terminal_gaps(candid
+@@ -487,10 +482,10 @@
  
  def deprecation_warning(d):
      if d:
@@ -279,7 +344,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
  
  def pynast_seq(candidate_sequence, template_alignment,
      max_hits=30, min_pct=75.0, min_len=1000, align_unaligned_seqs_f=None,
-@@ -534,7 +530,7 @@ def pynast_seq(candidate_sequence, templ
+@@ -534,7 +529,7 @@
      if exit_status == 0:
          return l.Data[3], aligned_seq
      else:
@@ -288,7 +353,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
  
  def ipynast_seqs(candidate_sequences, template_alignment,
      max_hits=30, min_pct=75.0, min_len=1000, align_unaligned_seqs_f=None,
-@@ -614,8 +610,7 @@ def ipynast_seqs(candidate_sequences, te
+@@ -614,8 +609,7 @@
          try:
              template_alignment_f = open(template_alignment)
          except IOError:
@@ -298,7 +363,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
          # template alignment provided as filepath -- process it iteratively
          # to handle potentially massive template_alignments
          template_alignment = {}
-@@ -648,7 +643,7 @@ def ipynast_seqs(candidate_sequences, te
+@@ -648,7 +642,7 @@
              tmp_dir=temp_dir)
  
      try:
@@ -307,7 +372,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
      except StopIteration:
          current_result = None
          
-@@ -658,7 +653,7 @@ def ipynast_seqs(candidate_sequences, te
+@@ -658,7 +652,7 @@
              # clean-up temporary blast database files if any were created
              pw_alignment_iterator.close()
              remove_files(files_to_remove,error_on_missing=False)
@@ -316,7 +381,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
          
          try:
              candidate_seq_id, template_seq_id, pw_aligned_candidate,\
-@@ -748,7 +743,7 @@ def ipynast_seqs(candidate_sequences, te
+@@ -748,7 +742,7 @@
                  
              # get the next alignment
              try:
@@ -325,16 +390,52 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
              except StopIteration:
                  # end of the input fasta file indicates completion,
                  # not end of the aligned sequences
---- a/scripts/pynast
-+++ b/scripts/pynast
+@@ -820,9 +814,9 @@
+     return aligned, failed_to_align
+ 
+ pairwise_alignment_methods = {\
+-     'muscle':muscle_align_unaligned_seqs,\
+-     'mafft':mafft_align_unaligned_seqs,\
+-     'clustal':clustal_align_unaligned_seqs,\
+-     'blast':blast_align_unaligned_seqs,\
++     'muscle': None, #muscle_align_unaligned_seqs,\
++     'mafft': None, #mafft_align_unaligned_seqs,\
++     'clustal': None, #clustal_align_unaligned_seqs,\
++     'blast': blast_align_unaligned_seqs,\
+      'pair_hmm':pair_hmm_align_unaligned_seqs,\
+      'uclust':None}
+--- pynast.orig/scripts/pynast
++++ pynast/scripts/pynast
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/python3
  
  #-----------------------------------------------------------------------------
  # Copyright (c) 2013, The PyNAST Development Team.
---- a/setup.py
-+++ b/setup.py
+@@ -10,9 +10,8 @@
+ 
+ from optparse import OptionParser
+ from os.path import exists, splitext
+-from cogent import LoadSeqs, DNA
+-from cogent.core.alignment import DenseAlignment
+-from cogent.parse.fasta import MinimalFastaParser
++from cogent3 import make_aligned_seqs, DNA
++from cogent3.parse.fasta import MinimalFastaParser
+ from pynast.util import ipynast_seqs, pairwise_alignment_methods,\
+     null_status_callback_f, get_pynast_temp_dir
+ from pynast.logger import NastLogger
+@@ -153,8 +152,7 @@
+         template_alignment.append((seq_id,seq.replace('.','-').upper()))
+         
+     try:
+-        template_alignment = LoadSeqs(data=template_alignment,moltype=DNA,\
+-         aligned=DenseAlignment)
++        template_alignment = make_aligned_seqs((data=template_alignment,moltype=DNA)
+     except KeyError, e:
+         raise KeyError,\
+          'Only ACGT-. characters can be contained in template alignments.'+\
+--- pynast.orig/setup.py
++++ pynast/setup.py
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/python3
@@ -350,15 +451,24 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
  from distutils.core import setup
  import re
  
---- a/tests/all_tests.py
-+++ b/tests/all_tests.py
+@@ -51,7 +51,7 @@
+       scripts=['scripts/pynast'],
+       long_description=long_description,
+       install_requires=["numpy >= 1.5.1",
+-                        "cogent >= 1.5.3"],
++                        "cogent3 >= 1.5.3"],
+       extras_require={'doc':"Sphinx >= 0.3"},
+       classifiers=classifiers
+ )
+--- pynast.orig/tests/all_tests.py
++++ pynast/tests/all_tests.py
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/python3
  
  #-----------------------------------------------------------------------------
  # Copyright (c) 2013, The PyNAST Development Team.
-@@ -21,7 +21,7 @@ def main():
+@@ -21,7 +21,7 @@
  
      unittest_good_pattern = re.compile('OK\s*$')
      application_not_found_pattern = re.compile('ApplicationNotFoundError')
@@ -367,7 +477,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
      bad_tests = []
      missing_application_tests = []
  
-@@ -38,11 +38,11 @@ def main():
+@@ -38,11 +38,11 @@
      unittest_names.sort()
  
      for unittest_name in unittest_names:
@@ -381,7 +491,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
          if not unittest_good_pattern.search(result):
              if application_not_found_pattern.search(result):
                  missing_application_tests.append(unittest_name)
-@@ -63,7 +63,7 @@ def main():
+@@ -63,27 +63,27 @@
  
      for script_name in script_names:
          script_good_pattern = re.compile('^Usage: %s' % split(script_name)[1])
@@ -390,7 +500,11 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
          command = '%s %s -h' % (python_name, script_name)
          result = Popen(command,shell=True,universal_newlines=True,\
                         stdout=PIPE,stderr=STDOUT).stdout.read()
-@@ -74,16 +74,16 @@ def main():
+         # remove warning cause by missing python-mpi4py
+         result = re.sub(r'(?m)^/usr/lib.*Not using MPI as mpi4py not found\n?', '', result)
+-        result = re.sub(r'(?m)^\s*from cogent.util.parallel import MPI\n?', '', result)
++        result = re.sub(r'(?m)^\s*from cogent3.util.parallel import MPI\n?', '', result)
+         if not script_good_pattern.search(result):
              bad_scripts.append(script_name)
  
      if bad_tests:
@@ -411,7 +525,7 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
  
      # If any of the unit tests or script tests failed, or if we have any
      # missing application errors, use return code 1 (as python's
-@@ -91,7 +91,7 @@ def main():
+@@ -91,7 +91,7 @@
      # suite.
      return_code = 1
      if not (bad_tests or missing_application_tests or bad_scripts):
@@ -420,15 +534,15 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
          return_code = 0
      return return_code
  
---- a/tests/test_logger.py
-+++ b/tests/test_logger.py
+--- pynast.orig/tests/test_logger.py
++++ pynast/tests/test_logger.py
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/python3
  
  #-----------------------------------------------------------------------------
  # Copyright (c) 2013, The PyNAST Development Team.
-@@ -8,7 +8,7 @@
+@@ -8,12 +8,12 @@
  # The full license is in the file COPYING.txt, distributed with this software.
  #-----------------------------------------------------------------------------
  
@@ -436,24 +550,47 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
 +
  from tempfile import NamedTemporaryFile
  from os import remove
- from cogent import LoadSeqs, DNA
---- a/tests/test_pycogent_backports/test_uclust.py
-+++ b/tests/test_pycogent_backports/test_uclust.py
+-from cogent import LoadSeqs, DNA
+-from cogent.util.unit_test import TestCase, main
+-from cogent.parse.fasta import MinimalFastaParser
++from cogent3 import DNA
++from cogent3.util.unit_test import TestCase, main
++from cogent3.parse.fasta import MinimalFastaParser
+ from pynast.logger import NastLogger
+ from pynast.util import get_pynast_temp_dir
+ 
+--- pynast.orig/tests/test_pycogent_backports/test_uclust.py
++++ pynast/tests/test_pycogent_backports/test_uclust.py
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/python3
  
  """
   : provides unit tests for the uclust.py module
---- a/tests/test_util.py
-+++ b/tests/test_util.py
+@@ -9,10 +9,10 @@
+ from subprocess import Popen, PIPE, STDOUT
+ from os.path import isfile
+ 
+-from cogent.util.misc import remove_files
+-from cogent.core.moltype import DNA
+-from cogent.util.unit_test import TestCase, main
+-from cogent.app.util import ApplicationError, get_tmp_filename
++from cogent3.util.misc import remove_files
++from cogent3.core.moltype import DNA
++from cogent3.util.unit_test import TestCase, main
++from cogent3.util.misc import get_tmp_filename
+ 
+ from pynast.pycogent_backports.uclust import (Uclust, 
+  uclust_fasta_sort_from_filepath,
+--- pynast.orig/tests/test_util.py
++++ pynast/tests/test_util.py
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/python3
  
  #-----------------------------------------------------------------------------
  # Copyright (c) 2013, The PyNAST Development Team.
-@@ -8,7 +8,7 @@
+@@ -8,18 +8,17 @@
  # The full license is in the file COPYING.txt, distributed with this software.
  #-----------------------------------------------------------------------------
  
@@ -462,3 +599,449 @@ Last-Update: Thu, 19 Dec 2019 17:57:15 +0100
  from tempfile import NamedTemporaryFile
  from os.path import exists
  import sys
+-from cogent import LoadSeqs, DNA
+-from cogent.util.misc import remove_files
+-from cogent.core.alignment import DenseAlignment
+-from cogent.app.muscle_v38 import align_unaligned_seqs as muscle_align_unaligned_seqs
+-from cogent.app.mafft import align_unaligned_seqs as mafft_align_unaligned_seqs
+-from cogent.app.clustalw import align_unaligned_seqs as clustal_align_unaligned_seqs
+-from cogent.parse.fasta import MinimalFastaParser
+-from cogent.util.unit_test import TestCase, main
++from cogent3 import make_aligned_seqs, make_unaligned_seqs, DNA
++from cogent3.util.misc import remove_files
++#from cogent3.app.muscle_v38 import align_unaligned_seqs as muscle_align_unaligned_seqs
++#from cogent3.app.mafft import align_unaligned_seqs as mafft_align_unaligned_seqs
++#from cogent3.app.clustalw import align_unaligned_seqs as clustal_align_unaligned_seqs
++from cogent3.parse.fasta import MinimalFastaParser
++from cogent3.util.unit_test import TestCase, main
+ from pynast.util import (align_two_seqs, reintroduce_template_spacing, 
+  adjust_alignment, nearest_gap, pynast_seq,
+  introduce_terminal_gaps, UnalignableSequenceError, pynast_seqs,
+@@ -35,7 +34,7 @@
+         """ """
+         self.files_to_remove = []
+         self.full_length_test1_input_seqs =\
+-         LoadSeqs(data=input_seqs1_fasta,moltype=DNA,aligned=False)
++         make_unaligned_seqs(data=input_seqs1_fasta,moltype=DNA)
+ 
+         # Note that delete = False here for all temp file creation 
+         # because we don't want these to be deleted when they are closed 
+@@ -55,7 +54,7 @@
+         self.full_length_test1_input_seqs_lines = input_seqs1_fasta.split('\n')
+         
+         self.full_length_test1_template_aln = \
+-         LoadSeqs(data=pynast_test_template_fasta1,moltype=DNA,aligned=DenseAlignment)
++         make_aligned_seqs(data=pynast_test_template_fasta1,moltype=DNA)
+         
+         full_length_test1_template_aln_f = \
+          NamedTemporaryFile(prefix='PyNastTest',
+@@ -70,14 +69,14 @@
+         self.files_to_remove.append(self.full_length_test1_template_aln_fp)
+         
+         self.full_length_test1_expected_aln = \
+-         LoadSeqs(data=input_seqs1_aligned_fasta,moltype=DNA,aligned=DenseAlignment)
++         make_aligned_seqs(data=input_seqs1_aligned_fasta,moltype=DNA)
+         self.full_length_test1_expected_fail = \
+-         LoadSeqs(data=input_seqs1_fail_fasta,moltype=DNA,aligned=False)
++         make_unaligned_seqs(data=input_seqs1_fail_fasta,moltype=DNA)
+          
+         self.full_length_test2_input_seqs =\
+-         LoadSeqs(data=input_seqs2_fasta,moltype=DNA,aligned=False)
++         make_unaligned_seqs(data=input_seqs2_fasta,moltype=DNA)
+         self.full_length_test2_template_aln = \
+-         LoadSeqs(data=pynast_test_template_fasta2,moltype=DNA,aligned=DenseAlignment)
++         make_aligned_seqs(data=pynast_test_template_fasta2,moltype=DNA)
+         
+         self.input_seqs_gaps = input_seqs_gaps.split('\n')
+         
+@@ -107,8 +106,8 @@
+               str(template_aln.getGappedSeq(n)),\
+               Name='%s 1..%d' % (n,len(template_aln.getSeq(n).degap()))))
+           
+-        expected_aln = LoadSeqs(data=expected_seqs,\
+-            moltype=DNA,aligned=DenseAlignment) 
++        expected_aln = make_aligned_seqs(data=expected_seqs,\
++            moltype=DNA) 
+         input_seqs = self.full_length_test1_template_aln.degap()
+ 
+     def test_pynast_seqs_simple(self):
+@@ -138,9 +137,8 @@
+         # tests that the order of the returned sequences is correct
+         # as this is easy to screw up
+         candidate_seqs = [('1','AGCCCCTTTT')]
+-        template_aln = LoadSeqs(data=dict([
+-            ('2','ACCC-----CCTTTT')]),\
+-            moltype=DNA,aligned=DenseAlignment)
++        template_aln = make_aligned_seqs(data=dict([
++            ('2','ACCC-----CCTTTT')]),moltype=DNA)
+         expected_aln = [DNA.makeSequence('AGCC-----CCTTTT',Name='1')]
+         expected_fail = []
+         
+@@ -150,13 +148,13 @@
+         # different aligners on these short test sequences --
+         # therefore test with a fake aligner that alters the sequence
+         def fake_aligner(seqs,moltype,params={}):
+-            return LoadSeqs(data=[('candidate','AGGGGGTTTT'),
++            return make_aligned_seqs(data=[('candidate','AGGGGGTTTT'),
+                                    ('template', 'ACCCCCTTTT')],moltype=DNA)
+ 
+         candidate_seqs = [('1','ACCCCCTTTT')]
+-        template_aln = LoadSeqs(data=dict([
++        template_aln = make_aligned_seqs(data=dict([
+              ('2','ACCC-----CCTTTT')]),\
+-             moltype=DNA,aligned=DenseAlignment)
++             moltype=DNA)
+         expected_aln = [DNA.makeSequence('AGGG-----GGTTTT',Name='1')]
+         expected_fail = []
+ 
+@@ -206,65 +204,65 @@
+         """pynast_seq: aligning handles input seq longer than best template seq
+         """
+         template_aln =\
+-         LoadSeqs(data=template_14990_trimmed.split('\n'),\
+-         moltype=DNA,aligned=DenseAlignment) 
++         make_aligned_seqs(data=template_14990_trimmed.split('\n'),\
++         moltype=DNA) 
+         candidate_sequence =\
+-         LoadSeqs(data=input_seq_14990.split('\n'),moltype=DNA).\
++         make_aligned_seqs(data=input_seq_14990.split('\n'),moltype=DNA).\
+          getSeq('14990')
+         expected = ('14990_5_and_3_prime_lost_four_bases_each',\
+          template_aln.getGappedSeq('14990_5_and_3_prime_lost_four_bases_each'))
+         
+-    def test_align_two_seqs_with_muscle(self):
+-        """ align_two_seqs: fns for simple alignments with muscle
+-        """
+-        # Only a few trivial cases are tested as it is not the place to
+-        # test how the aligners functions
+-        f = muscle_align_unaligned_seqs
+-
+-        # perfect alignment
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
+-    
+-        # gap added to s2
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp2 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
+-    
+-        # gap added to s1
+-        s1 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
+-        exp2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
+-    
+-        # single mismatch
+-        s1 = DNA.makeSequence('ACGTACGTACATTCCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
+-    
+-        # truncated sequence (3')
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATACCCT')
+-        exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp2 = DNA.makeSequence('ACGTACGTACATACCCT------')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
+-    
+-        # truncated sequence (5')
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('CGTACATACCCTGGTAGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp2 = DNA.makeSequence('-----CGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))   
+-    
+-        # truncated sequence (5' and 3')
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('CGTACATACCCTGGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp2 = DNA.makeSequence('-----CGTACATACCCTGGT---')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))   
++    # def test_align_two_seqs_with_muscle(self):
++    #     """ align_two_seqs: fns for simple alignments with muscle
++    #     """
++    #     # Only a few trivial cases are tested as it is not the place to
++    #     # test how the aligners functions
++    #     f = muscle_align_unaligned_seqs
++
++    #     # perfect alignment
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
++    # 
++    #     # gap added to s2
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
++    # 
++    #     # gap added to s1
++    #     s1 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
++    # 
++    #     # single mismatch
++    #     s1 = DNA.makeSequence('ACGTACGTACATTCCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
++    # 
++    #     # truncated sequence (3')
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATACCCT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('ACGTACGTACATACCCT------')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
++    # 
++    #     # truncated sequence (5')
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('CGTACATACCCTGGTAGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('-----CGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))   
++    # 
++    #     # truncated sequence (5' and 3')
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('CGTACATACCCTGGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('-----CGTACATACCCTGGT---')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))   
+         
+     def test_align_two_seqs_with_pair_hmm(self):
+         """ align_two_seqs: fns for simple alignments with pair_hmm alignment
+@@ -386,101 +384,101 @@
+         # reversed order works as well 
+         self.assertEqual(align_two_seqs(s2,s1,f),(exp2,exp1))
+         
+-    def test_align_two_seqs_with_clustal(self):
+-        """ align_two_seqs: fns for simple alignments with clustal
+-        """
+-        # Only a few trivial cases are tested as it is not the place to
+-        # test how the aligners function
+-        f = clustal_align_unaligned_seqs
+-
+-        # perfect alignment
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
+-    
+-        # gap added to s2
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp2 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
+-    
+-        # gap added to s1
+-        s1 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
+-        exp2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
+-    
+-        # single mismatch
+-        s1 = DNA.makeSequence('ACGTACGTACATTCCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
+-    
+-        # truncated sequence (3')
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATACCCT')
+-        exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp2 = DNA.makeSequence('ACGTACGTACATACCCT------')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
+-    
+-        # truncated sequence (5')
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('CGTACATACCCTGGTAGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp2 = DNA.makeSequence('-----CGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))   
+-    
+-        # truncated sequence (5' and 3')
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('CGTACATACCCTGGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp2 = DNA.makeSequence('-----CGTACATACCCTGGT---')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
+-        
+-    def test_align_two_seqs_with_mafft(self):
+-        """ align_two_seqs: fns for simple alignments with mafft
+-        """
+-        # Only a few trivial cases are tested as it is not the place to
+-        # test how the aligners functions
+-        f = mafft_align_unaligned_seqs
+-
+-        # perfect alignment
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
+-    
+-        # gap added to s2
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp2 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
+-    
+-        # gap added to s1
+-        s1 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
+-        exp2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
+-    
+-        # single mismatch
+-        s1 = DNA.makeSequence('ACGTACGTACATTCCCTGGTAGT')
+-        s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
+-    
+-        # truncated sequence (5')
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('CGTACATACCCTGGTAGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp2 = DNA.makeSequence('-----CGTACATACCCTGGTAGT')
+-        self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))   
+-    
+-        # truncated sequence (5' and 3')
+-        s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        s2 = DNA.makeSequence('CGTACATACCCTGGT')
+-        exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+-        exp2 = DNA.makeSequence('-----CGTACATACCCTG---GT')
++    # def test_align_two_seqs_with_clustal(self):
++    #     """ align_two_seqs: fns for simple alignments with clustal
++    #     """
++    #     # Only a few trivial cases are tested as it is not the place to
++    #     # test how the aligners function
++    #     f = clustal_align_unaligned_seqs
++
++    #     # perfect alignment
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
++    # 
++    #     # gap added to s2
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
++    # 
++    #     # gap added to s1
++    #     s1 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
++    # 
++    #     # single mismatch
++    #     s1 = DNA.makeSequence('ACGTACGTACATTCCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
++    # 
++    #     # truncated sequence (3')
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATACCCT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('ACGTACGTACATACCCT------')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
++    # 
++    #     # truncated sequence (5')
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('CGTACATACCCTGGTAGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('-----CGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))   
++    # 
++    #     # truncated sequence (5' and 3')
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('CGTACATACCCTGGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('-----CGTACATACCCTGGT---')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
++        
++    # def test_align_two_seqs_with_mafft(self):
++    #     """ align_two_seqs: fns for simple alignments with mafft
++    #     """
++    #     # Only a few trivial cases are tested as it is not the place to
++    #     # test how the aligners functions
++    #     f = mafft_align_unaligned_seqs
++
++    #     # perfect alignment
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
++    # 
++    #     # gap added to s2
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
++    # 
++    #     # gap added to s1
++    #     s1 = DNA.makeSequence('ACGTACGTACATCCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACAT-CCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))
++    # 
++    #     # single mismatch
++    #     s1 = DNA.makeSequence('ACGTACGTACATTCCCTGGTAGT')
++    #     s2 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(s1,s2))
++    # 
++    #     # truncated sequence (5')
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('CGTACATACCCTGGTAGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('-----CGTACATACCCTGGTAGT')
++    #     self.assertEqual(align_two_seqs(s1,s2,f),(exp1,exp2))   
++    # 
++    #     # truncated sequence (5' and 3')
++    #     s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     s2 = DNA.makeSequence('CGTACATACCCTGGT')
++    #     exp1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
++    #     exp2 = DNA.makeSequence('-----CGTACATACCCTG---GT')
+   
+     def test_align_two_seqs_with_fake_aligner(self):
+         """ align_two_seqs: fns for simple alignments with fake_aligner
+@@ -492,7 +490,7 @@
+             except KeyError:
+                 res = 'AAAAAAAAAA'
+             seqs = [('template',str(res)), ('candidate',str(res))]
+-            seqs = LoadSeqs(data=seqs,moltype=moltype,aligned=DenseAlignment)
++            seqs = make_aligned_seqa(data=seqs,moltype=moltype)
+             return seqs
+ 
+         s1 = DNA.makeSequence('ACGTACGTACATACCCTGGTAGT')
+@@ -1025,7 +1023,7 @@
+               PyNAST 1.0. This tests that a good alignment is achieved
+               with this seqeunce in later versions.
+         """
+-        template_alignment = LoadSeqs(data=template_128453.split('\n'))
++        template_alignment = make_aligned_seqs(data=template_128453.split('\n'))
+         
+         
+ query_3037 = DNA.makeSequence("CTGGGCCGTGTCTCAGTCCCAGTGTGGCTGATCATCCTCTCAGACCAGCTAAGGATCGTCGCCTTGGTGCGCCTTTACCACACCAACTAGCTAAAGGCGATAAATCTTTGATCTCGCGATATCATCCGGTATTAGCAGCAATTTCTCGCTGTTATTCCGAACCTGAGGGCAGATTCCCACGCGTTACGCACCCGTGCGCCACTAAGGCCG",Name=">v15D30.1.08_100583")
+@@ -1035,13 +1033,13 @@
+ template_128453 = """>128453
+ ------------------------------------------------------------------------------------------------------AACTTGAGAGTTT-GA--T-TC-T-G-GCTC-AG-AA-CGAA-C-GC--TGG-C--G-GC-A-TG--C----T-T--AACACA-T-GC-A-AGT-CGA-A-CGA---------A-G------------------------------------------GC----------------------------------------------------TTC-G----------------------------------------------------------------------------------GC-------------------------------CT--T--AG-T-GG-C-GC-A--C-------------GGG-TGCGT-A--AC-GC-G-T-G-GG---A-A--T-CT-G--C-C-TTC--AG-G------------------------------------------------------------------T-AC----GGA-AT-AA-CTA-------------------------G-G-G-----------------------GAA-A---CTC-GAG-CTAA-TA---CC-G--T-AT-G----------A--------------------T-------------------------------------AT-C-----------------------------------------------------------------------------------------------------------------------G-AG-A--------------------------------------------------------------------------------------------------------------------------------------G-A-T---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------CAAA--G-A----------------------------------------------------------------------------------------------------------------------------------------TTT-A----------------------------------------------------------------------------------------------------------------------------------T---C-G--------------C----C-T---G-AA-G---AT---G-A-----G-CCC-GCG--T-TGG--A------TT--A--G-CT-A----G---TTGG-T-A-GG-G-T----AAA-GG-C-T-T-ACCA--A-GG-C-G--A-CG-A------------TCC-A-T------AG-CT-G-G-TCT-G-AG----A--GG-AT--G-AT-C-AG-CCAC-A-CTGGG--A-C-TG-A-GA-C-AC-G-G-CCCAGA-CTCC-TAC-G--G-G-A-G-GC-A-GC-A-G-TG---GG-G-A-ATA-TTGGA-C-AA-T-GG--GG-GA-A----A-C-CC-T-GA-TC-CA-GCAA-TGCC-G-CG-T---G-A-G--T--GA-A-G--A--A-G-G-CC-----TT-AG---------G-G-T-T-G-T--A---AA-G-CTC--------TT-TT-A-C--C-CGG----GA-T--G---A-----------------------T--AA------------------------------T-GA-CA-GT-A-C-CG-G-GA-G---------AA-----------TAAGC-TCC-GG-C-TAA---C--T-CCGT--GCCA--G-C---A--GCCG---C-GG--TA-AT--AC---GG-AG-GGA-GCT-A-G-CG-TTGT-T-CGG-AA-TT-A--C-T--GGGC-GTA----AA-GCGT-AC--G-TA-G-G-C-G------------G--T-TT-A-A-T-AA----G-T-C-A---G-GGG-TG-A-AA-GC--CC-AGA-G--------------------------------------------------------------------CT-C-AA-------------------------------------------------------------------------CT-C-T-GG-AA-C----T-G-C-C-T-T--------T--GA-G-A-C-T-G-TTA--G-A-C---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------T-A-G-A-A-C-A-----T-AG--AA-G-A------------G-GT-A-AG-T----GG--AATT-CCG-A-GT--GT-A-GAG-GTGAAA-TT-CGT-AGAT-A-TT-C-GGA--AG-A-AC-A-CC-AG--T--G--GC-GAA-G--G-C---G----A--C-T-TACTG------G-TC-TA--------------------------------------------------------------TA-G-T-T--GA--CG-----CT-GA-GG--T-A-CGA--AA-G-C--------------G-TGGG-TAG-C-A-AACA--GG-ATTA-G-ATA-C-----CC-T-G-GTA-G-T----C-CA--C-G-CCG-T-AAA--C-GATG-AT--AA-CT---------A-GC--T--G-T-CC-G-GG-T--A--------------------------------------------------------------------------------------CAT-GG--------------------------------------------------------------------------------------------------------------------------------------------------T-A-T-CT--G-G-G-T-GG-C------GG--A----GC-TAA--CG-C-A-T--T--AA-GT--T----A-TCC-GCC-T-G-GG-GAG-TA---CGG-----T-C--G-C-A-A-GAT-T--AAA-ACTC-AAA---------GAAA-TTG-ACGGG-G-G-CCTG----C-A--C-A-A-GCG-GT-G--G--AG-CA-T--GT-GGT-TT-AATT-C-G-AAG-CAAC-G-CG-C-AG-A-A-CC-TT-A-CC-AGCGT-TT-G-AC-A-T-C-------------CTGA-T-C-------------G-CG-G-AAA--GT--G-GA-G-A-C--A-C-A-TT-C-T-T--T-C-----AG-------------------------------------T--TC-GG-----------------------------------------CT----G--------GA-TCA-G-A--GA---------------------------------------------------C-A-G-G-T-GCTG-CA-TGG-CT--GTC-GTC-A-GC-TC---G-TG-TC-G--TGA-GA-TGT-T-GG-G-TT-AA-GT-CCCGC-AA--------C-GAG-CGC-A-ACC-C-T-CA--CC--T-CTAG--T-T-G-C-C---AT-C-A--T----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------TAAG----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------T----T-G------------G----G---C-A--CT---------------T-T-A-G-A-GG-A--AC-T-G-CCG--G-T------------------------------------G-A---TAA----------------------------------G-C-C-G--G-A-GG-A--AGG-T--GGGG-A-TGAC-GTC--AAGT-C---CTC-A-T-G-G-C-C-CTT----AC-G--CG-C-T-GG-GC-TA-CAC-ACGTG-C--TA--CAATG---G-CGGT-G-A--C-AGA-GG-GC--------------------------------------------------------------------------------------------------C-G-C-A-A--G-CCTG-C--A---------------------------------------A-AG-G-T-----------T--A-G-CT---A----------A--TCT-C--------A-AAAAG-CC-G-T-C-T-CAG-TTC--------GGA-T-TGTTC-TC--T-GCAA-CT-C-------------------------------------------------------------------------------------------------G-AGAGC-A-T-G-AA-G-GC-GGAAT-CG-C-TA--G-TA-AT-C-G-C----GGA-TC-A-G-C-------AT--GCC-GC-G-GT-G-AAT-ACGT-T-CCCAGGCCT-TGTA----CACACCG-CCC-GTC-----A---CA--CCA-TG-GG-A--G---TTG-G-AT-TC-ACC--C-GAA------G--G-CGC-TG-C-G-C-T-AA-C-C-C-----------------------------------------------------------G-CA-A---------------------------------------------------------------------------------------------------G--GG-A--GG-C--A---GG-CGA--CC--ACG-G----T-GGG-TT-TAG------------------------CG--ACT-GGGG-TG-AAG-TCGTAACAA-GGTAG-CCGT-AGGGGAA-CCTG-CGGC-TGGATCACCTCCTTTCTAAGGA---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"""
+ 
+-db_aln2 = LoadSeqs(data=dict([
++db_aln2 = make_aligned_seqs(data=dict([
+ ('1','ACGT--ACGTAC-ATA-C-----CC-T-G-GTA-G-T---'),
+ ('2','AGGTTTACGTAG-ATA-C-----CC-T-G-GTA-G-T---'),\
+ ('3','AGGTACT-CCAC-ATA-C-----CC-T-G-GTA-G-T---'),
+ ('4','TCGTTCGT-----ATA-C-----CC-T-G-GTA-G-T---'),
+ ('5','ACGTACGT-TA--ATA-C-----CC-T-G-GTA-G-T---')]),\
+-moltype=DNA,aligned=DenseAlignment)
++moltype=DNA)
+ 
+ template_14990_trimmed = """>14990_5_and_3_prime_lost_four_bases_each
+ --------------------------------------------------------------------------------------------------------------------------------------AG-GA-CGAA-C-GC--TGG-C--G-GC-G-TG--C----C-T--AATACA-T-GC-A-AGT-CGA-G-CGG---------A-A---ATTTTA--------------------------TTGG---TG----------------------------------------------------CTT-G----------------------------------------------------------------------------------CAC-CTT-------------------TAAAAT-TT--T--AG-C-GGCG-G--A--C-------------GGG-TGAGT-A--AC-AC-G-T-G-GG---TAA--C-CTAC--C-T--TA--TA-G------------------------------------------------------------------A-TT----GGG-AT-AA-CTC-------------------------C-G-G-----------------------GAA-A---CCG-GGG-CTAATAC---CG-A----AT-A---------------------------------A-TA-C-T--T--T----------------TTA---AC-------------------------------------------------------------------------------------------------------------------------A-CA-T--------------------------------------------------------------------------------------------------------------------------------------G-T-T--TGA---------------A--A---G-T-T-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------GAAA--G-A-C-GG-----T-----T-----------------------------------------------------------------------------------------------------------------------TCG--------------------------------------------------------------------------------------------------------------------------G--C--TG--T---C-A--------------C----T-A---T-AA-G---AT---G-G-----A-CCC-GCG--G-CGC--A------TT--A--G-CT-A----G---TTGG-T-G-AG-G-T----AAC-GG-C-T-C-ACCA--A-GG-C-A--A-CG-A------------TGC-G-T------AG-CC-G-A-CCT-G-AG----A--GG-GT--G-AT-C-GG-CCAC-A-CTGGG--A-C-TG-A-GA-C-AC-G-G-CCCAGA-CTCC-TAC-G--G-G-A-G-GC-A-GC-A-G-TA---GG-G-A-ATC-TTCCA-C-AA-T-GG--AC-GA-A----A-G-TC-T-GA-TG-GA-GCAA-CGCC-G-CG-T---G-A-G--T--GA-A-G--A--A-G-G-AT-----TT-CG---------G-T-T-C-G-T--A---AA-A-CTC--------TG-TT-G-C--A-AGG----GA-A--G---AACAAGT---AGCG-TA----G--T--AA-C---T----G-----G--C-GCT-ACC-TT-GA-CG-GT-A-C-CT-T-GT-T---------AG-----------AAAGC-CAC-GG-C-TAA---C--T-ACGT--GCCA--G-C---A--GCCG---C-GG--TA-AT--AC---GT-AG-GTG-GCA-A-G-CG-TTGT-C-CGG-AA-TT-A--T-T--GGGC-GTA----AA-GCGC-GC--G-CA-G-G-T-G------------G--T-TC-C-T-T-AA----G-T-C-T---G-ATG-TG-A-AA-GC--CC-CCG-G--------------------------------------------------------------------CT-C-AA-------------------------------------------------------------------------CC-G-G-GG-AG------G-GTC-A-T-T--------G--GA-A-A-C-T-G-GGG--A-A-C---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------T-T-G-A-G-T-G-----C-AG--AA-G-A------------G-GA-T-AG-T----GG--AATT-CCA-A-GT--GT-A-GCG-GTGAAA-TG-CGT-AGAG-A-TT-T-GGA--GG-A-AC-A-CC-AG--T--G--GC-GAA-G--G-C---G----A--C-T-GTCTG------G-TC-TG--------------------------------------------------------------TA-A-C-T--GA--CA-----CT-GA-GG--C-G-CGA--AA-G-C--------------G-TGGG-GAG-C-A-AACA--GG-ATTA-G-ATA-C-----CC-T-G-GTA-G-T----C-CA--C-G-CCG-T-AAA--C-GATG-AG--TG-CT---------A-AG--T--G-T-TG-G-GG-G--G--T------------------------------------------------------------------------------------TT-CC----------------------------------------------------------------------------------------------------------------------------------------------G---C-C-C-CT--C-A-G-T-GC-T------GC--A----GC-TAA--CG-C-A-T--T--AA-GC--A----C-TCC-GCC-T-G-GG-GAG-TA---CGG-----T-C--G-C-A-A-GAC-T--GAA-ACTC-AAA---------GGAA-TTG-ACGGG-G-G-CCCG----C-A--C-A-A-GCG-GT-G--G--AG-CA-T--GT-GGT-TT-AATT-C-G-AAG-CAAC-G-CG-A-AG-A-A-CC-TT-A-CC-AGGTC-TT-G-AC-A-TCC--------------CGG-T-G-------------A-CC-A-C-T--AT--G-GA-G-A-C--A-T-A--G-T-T-T--C-C-----CC-------------------------------------T--TC-G------------------------------------------GG----G----G--CAA-CGG---T--GA---------------------------------------------------C-A-G-G-T-GGTG-CA-TGG-TT--GTC-GTC-A-GC-TC---G-TG-TC-G--TGA-GA-TGT-T-GG-G-TT-AA-GT-CCCGC-AA--------C-GAG-CGC-A-ACC-C-T-TA--TT--C-TTAG--T-T-G-C-C---AT-C-A--T----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------TCAG----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------T----T-G------------G----G---C-A--CT---------------C-T-A-A-G-GA-G--AC-T-G-CCG--G-T------------------------------------G-A---TAA----------------------------------A-C-C-G--G-A-GG-A--AGG-T--GGGG-A-TGAC-GTC--AAAT-C---ATC-A-T-G-C-C-C-CTT----AT-G--AC-C-T-GG-GC-TA-CAC-ACGTG-C--TA--CAATG---G-ACGG-T-A--C-AAA-CG-GT--------------------------------------------------------------------------------------------------T-G-C-C-A--A-CCCG-C--G---------------------------------------A-GG-G-G-----------G--A-G-CT---A----------A--TCC-G------A-T-AAAAC-CG-T-T-C-T-CAG-TTC--------GGA-T-TGTAG-GC--T-GCAA-CT-C-------------------------------------------------------------------------------------------------G-CCTAC-A-T-G-AA-G-CC-GGAAT-CG-C-TA--G-TA-AT-C-G-C----GGA-TC-A-G-C-------AT--GCC-GC-G-GT-G-AAT-ACGT-T-CCCGGGCCT-TGTA----CACACCG-CCC-GTC-----A---CA--CCA-CG-AG-A--G---TTT-G-TA-AC-ACC--C-GAA------G--T-CGG-TG-A-G-G-T-AA-C-C-T-----------------------------------------------------------T-TA-----------------------------------------------------------------------------------------------------T--GG-A-C-C-C--A---CC-CGC--CG--AAG-G----T-GGG-AT-AAA------------------------TA--ATT-GGGG-TG-AAT-TCTTAACAA-GGTAC-CCGT-ATCGGAA-GGTG-CGGC-TGG------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


=====================================
debian/rules
=====================================
@@ -27,7 +27,7 @@ ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
 	set -e -x; \
 	cd tests; \
 	for py in $(PY3VERS); do \
-	    PYTHONPATH=$$( echo $(CURDIR)/build/lib.*-$$py ) python$$py all_tests.py ; \
+	    PYTHONPATH=$(CURDIR)/.pybuild/cpython3_$$py/build python$$py all_tests.py ; \
 	done
 endif
 



View it on GitLab: https://salsa.debian.org/med-team/pynast/-/commit/df4667f10bf0566dea32e27b4eed132d54657fda

-- 
View it on GitLab: https://salsa.debian.org/med-team/pynast/-/commit/df4667f10bf0566dea32e27b4eed132d54657fda
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20200413/6b710846/attachment-0001.html>


More information about the debian-med-commit mailing list