#!/usr/bin/env python
# File created on 27 Apr 2012
from __future__ import division

__author__ = "Greg Caporaso"
__copyright__ = "Copyright 2011, The QIIME project"
__credits__ = ["Greg Caporaso", "Jai Ram Rideout"]
__license__ = "GPL"
__version__ = "1.9.1"
__maintainer__ = "Greg Caporaso"
__email__ = "gregcaporaso@gmail.com"

import sys
from os.path import isdir, split, join, abspath, exists
from os import chdir, getcwd
from shutil import copytree, rmtree
from glob import glob
from site import addsitedir
from tempfile import NamedTemporaryFile
from traceback import format_exc
from skbio.util import remove_files
from pyqi.util import pyqi_system_call
from qcli.test import (TimeExceededError,
                       initiate_timeout,
                       disable_timeout)
from qiime_default_reference import get_template_alignment_column_mask
from qiime.util import get_qiime_temp_dir


class FakeFile(object):

    " A class to convert a string into a file-like object"

    def __init__(self, d=""):
        self.s = d.split('\n')

    def __iter__(self):
        return iter(self.s)

    def write(self, s):
        self.s += s

    def close(self):
        pass

    def seek(self, seek_position):
        pass


def get_test_data():
    """ return a small data set with properties convenient for testing qiime

    Convenient properties of this test data set include:

     - Samples form a meaningful pattern in unifrac PCoA space (fecal, L_palm,
       and tongue samples cluster independently).
     - Sample categories differ in alpha diversity (fecal < tongue < L_palm).
     - A small reference collection is included.
     - When clustered against this reference at 97% identity, some of the
       reads hit the reference and some do not. Some of the input reads are <60%
       similar to any of the reference sequences.
     - Two of the samples (f2, f3) contain identical sequences.
     - One sample (not16S.1) contains seqs that are not 16s and all drop out.
     - One sample (f4) has seqs that are all identical.
    """
    result = {}
    seqs = """>f2_1271 HWI-EAS440_0386:1:30:4487:20156#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCG
>f2_1539 HWI-EAS440_0386:1:31:12039:10494#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_2278 HWI-EAS440_0386:1:32:3943:19113#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f2_2349 HWI-EAS440_0386:1:33:11754:2337#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_2727 HWI-EAS440_0386:1:33:17206:16370#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f2_2750 HWI-EAS440_0386:1:33:4173:17707#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_2919 HWI-EAS440_0386:1:34:7244:5240#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_2990 HWI-EAS440_0386:1:34:15559:8361#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_3856 HWI-EAS440_0386:1:36:7847:3654#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_4379 HWI-EAS440_0386:1:37:18509:5405#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_4866 HWI-EAS440_0386:1:38:15872:7019#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f2_4913 HWI-EAS440_0386:1:38:5446:9251#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGTAGGGGGCAAGCGTTGTCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGTGTGGCAAGTCTGATGTGAAAGGCATGGGCTCAACCTGTGGACTGCATTGGAAACTGTCATACTTGAGTGCCGGAGGGGTAAGCGGAATTTCTAGTG
>f2_5255 HWI-EAS440_0386:1:39:7428:2824#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f2_5313 HWI-EAS440_0386:1:39:18251:4560#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_6581 HWI-EAS440_0386:1:41:12697:18427#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f2_6654 HWI-EAS440_0386:1:42:18390:1542#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCG
>f1_6871 HWI-EAS440_0386:1:42:12648:9905#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_7004 HWI-EAS440_0386:1:42:12524:15765#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_8307 HWI-EAS440_0386:1:45:2418:10930#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAAGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f1_8746 HWI-EAS440_0386:1:46:3313:8982#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f2_8835 HWI-EAS440_0386:1:46:15230:11989#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAG
>f1_10106 HWI-EAS440_0386:1:49:11503:8253#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f2_10228 HWI-EAS440_0386:1:49:10428:12536#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGATTCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAATCTTGAGTTCGGACAAGGCAGATGG
>f2_10741 HWI-EAS440_0386:1:50:19354:13842#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f2_11370 HWI-EAS440_0386:1:52:13612:2374#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_11949 HWI-EAS440_0386:1:53:11869:5956#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f2_12151 HWI-EAS440_0386:1:53:15228:14924#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAG
>f2_12169 HWI-EAS440_0386:1:53:6500:15595#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_12885 HWI-EAS440_0386:1:55:6617:6505#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_13027 HWI-EAS440_0386:1:55:2587:12315#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f2_13201 HWI-EAS440_0386:1:55:8634:19786#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f2_13503 HWI-EAS440_0386:1:56:16989:11768#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_13697 HWI-EAS440_0386:1:56:12011:20385#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_14665 HWI-EAS440_0386:1:59:14413:3423#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAGAA
>f1_17256 HWI-EAS440_0386:1:66:9612:13415#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f2_17407 HWI-EAS440_0386:1:67:5154:3682#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_18550 HWI-EAS440_0386:1:70:6653:12933#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_19304 HWI-EAS440_0386:1:72:14543:4190#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f2_20011 HWI-EAS440_0386:1:73:5930:19960#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCG
>f2_20101 HWI-EAS440_0386:1:74:13281:8786#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f2_21396 HWI-EAS440_0386:1:79:15005:5440#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAG
>f2_23683 HWI-EAS440_0386:1:84:18937:10979#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAG
>f2_24507 HWI-EAS440_0386:1:86:4702:6973#0/1 orig_bc=ACCAGACGATGC new_bc=ACCAGACGATGC bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f1_24744 HWI-EAS440_0386:1:86:13607:15613#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAG
>p1_27798 HWI-EAS440_0386:2:37:6298:2924#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_28761 HWI-EAS440_0386:2:40:8922:18632#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_29120 HWI-EAS440_0386:2:42:1275:11504#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_29150 HWI-EAS440_0386:2:42:9433:13371#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_29350 HWI-EAS440_0386:2:43:17387:8549#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_29474 HWI-EAS440_0386:2:43:7240:17422#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p2_30113 HWI-EAS440_0386:2:46:8095:9920#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAG
>p1_30198 HWI-EAS440_0386:2:46:7650:15609#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAGAAGGGG
>p2_30279 HWI-EAS440_0386:2:47:19039:4475#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p2_30549 HWI-EAS440_0386:2:48:14520:4777#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGGGCGCAGACGGTTACTTAAGCGGGATGTGAAATCCCCGGGCTCAACCCGGGAACTGCGTTCCGAACTGGGTG
>p1_30611 HWI-EAS440_0386:2:48:11791:9189#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p2_31582 HWI-EAS440_0386:2:52:8533:3351#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTG
>p2_31615 HWI-EAS440_0386:2:52:8097:5047#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGG
>p1_32061 HWI-EAS440_0386:2:53:12650:19528#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p2_32401 HWI-EAS440_0386:2:55:1617:7585#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_32437 HWI-EAS440_0386:2:55:11012:9838#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_32494 HWI-EAS440_0386:2:55:10467:14158#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p2_32628 HWI-EAS440_0386:2:56:18987:4105#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGGGGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGTGTGGCAAGTCTGATGTGAAAGGCATGGGCTCAACCTGTGGACTGCATTGGAAACTGTCATACTTGAGTGCCGGAG
>p1_32652 HWI-EAS440_0386:2:56:3581:5687#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p2_33176 HWI-EAS440_0386:2:58:7254:5181#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTAC
>p2_33268 HWI-EAS440_0386:2:58:13656:11052#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGATGGATGTTTAAGTCAGTTGTGAAAGTTTGCGGCTCAACCGTAAAATTGCAGTTGATACTGGATGTCTTGAGTGCAGTTG
>p2_34392 HWI-EAS440_0386:2:62:3660:12239#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>p1_34397 HWI-EAS440_0386:2:62:8256:12723#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p2_34773 HWI-EAS440_0386:2:64:10707:4587#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAGAAGGGGAGAG
>p2_34872 HWI-EAS440_0386:2:64:5256:11455#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAG
>p2_35125 HWI-EAS440_0386:2:65:8479:13841#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAAGGACCAGGAGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGC
>p2_35617 HWI-EAS440_0386:2:67:2652:17993#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTT
>p2_35810 HWI-EAS440_0386:2:68:17310:15141#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTTGATAAGTCTGAAGTTAAAGGCTGTGGCTCAACCATAGTTCGCTTTGGAAACTGTCAAACTTGAGTGCAGAAGGGGAGAG
>p1_35931 HWI-EAS440_0386:2:69:13384:7891#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_36300 HWI-EAS440_0386:2:70:17775:16457#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TTCGTAGGGGGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGTGTGGCAAGTCTGATGTGAAAGGCATGGGCTCAACCTGTGGACTGCATTGGAAACTGTCATACT
>p2_36352 HWI-EAS440_0386:2:71:4992:2947#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTAC
>p2_36441 HWI-EAS440_0386:2:71:7655:9093#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGGGGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGAATGGCAAGTCTGAAGTGAAATACCCGGGCTCAACCTGGGAACTGCTTTGGAAACTGTTGTTCTAGAGTGTTG
>p2_37291 HWI-EAS440_0386:2:75:2654:2930#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_37292 HWI-EAS440_0386:2:75:15500:3047#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p2_37427 HWI-EAS440_0386:2:75:17389:13227#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_37793 HWI-EAS440_0386:2:77:16603:2466#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p2_37880 HWI-EAS440_0386:2:77:11070:8817#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_37985 HWI-EAS440_0386:2:77:8401:16367#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_38017 HWI-EAS440_0386:2:77:13529:19101#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGGGGCAAGCGTTATCCGGATTTACTGGGTGTAAAGGGAGCGTAGACGGAATGGCAAGTCTGAAGTGAAATACCCGGGCTCAACCTGGGAACTGCTTTGGAAACTGTTGTTCTAGGCTGTTGGAGAGGTAAGTGGAATTCCTGGTG
>p2_38493 HWI-EAS440_0386:2:80:12905:9503#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_38528 HWI-EAS440_0386:2:80:13500:11791#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p1_39127 HWI-EAS440_0386:2:84:11417:3032#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>p2_39175 HWI-EAS440_0386:2:84:12513:6706#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGG
>p1_39254 HWI-EAS440_0386:2:84:5143:12808#0/1 orig_bc=AACGCACGCTAG new_bc=AACGCACGCTAG bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAG
>t2_52630 HWI-EAS440_0386:5:48:16990:6975#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTTGATAAGTCTGAAGTTAAAGGCTGTGGCTCAACCATAGTTCGCTTTGGAAACTGTCAAACTTGAGTGCAGAAGGGGAGAG
>t2_52670 HWI-EAS440_0386:5:48:11227:8602#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTAC
>t2_52671 HWI-EAS440_0386:5:48:12051:8637#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCGG
>t2_52739 HWI-EAS440_0386:5:48:14315:11448#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAA
>t2_52841 HWI-EAS440_0386:5:48:3257:15721#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCGG
>t1_52964 HWI-EAS440_0386:5:52:9778:2855#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCC
>t2_52970 HWI-EAS440_0386:5:52:6994:3157#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTAC
>t1_53038 HWI-EAS440_0386:5:52:14917:5613#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTTGATAAGTCTGAAGTTAAAGGCTGTGGCTCAACCATAGTTCGCTTTGGAAACTGTCAAACTTGAGTGCAGAAGGGG
>t1_53176 HWI-EAS440_0386:5:52:6593:11349#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTT
>t2_53194 HWI-EAS440_0386:5:52:3945:11982#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGC
>t2_53250 HWI-EAS440_0386:5:52:9966:14855#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTAC
>t2_53290 HWI-EAS440_0386:5:52:5130:16397#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGC
>t1_53329 HWI-EAS440_0386:5:52:14413:18238#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCG
>t2_53395 HWI-EAS440_0386:5:53:4294:2974#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTAC
>t2_53531 HWI-EAS440_0386:5:53:17708:9105#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTTGATAAGTCTGAAGTTAAAGGCTGTGGCTCAACCATAGTTCGCTTTGGAAACTGTCAAACTTGAGTGCAGAAGGGGAGAG
>t2_53719 HWI-EAS440_0386:5:53:15322:17370#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCA
>t2_53750 HWI-EAS440_0386:5:53:12367:19097#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTTGATAAGTCTGAAGTTAAAGGCTGTGGCTCAACCATAGTTCGCTTTGGAAACTGTCAAACTTGAGTGCAGAAGGGGAGAG
>t2_53764 HWI-EAS440_0386:5:54:2344:1948#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAA
>t1_53967 HWI-EAS440_0386:5:54:10544:11545#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCGGAA
>t1_54144 HWI-EAS440_0386:5:54:12690:20621#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTT
>t2_54418 HWI-EAS440_0386:5:55:17299:14062#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTAC
>t1_54475 HWI-EAS440_0386:5:55:18045:16412#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCGGAA
>t1_54579 HWI-EAS440_0386:5:57:5661:1897#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCC
>t2_55465 HWI-EAS440_0386:5:59:3521:5889#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGCCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCGGAA
>t1_55525 HWI-EAS440_0386:5:59:8117:8387#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCC
>t1_55836 HWI-EAS440_0386:5:60:17033:2188#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCGGAA
>t2_56059 HWI-EAS440_0386:5:60:14779:12961#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCGG
>t2_56143 HWI-EAS440_0386:5:60:10116:17219#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCGG
>t1_56191 HWI-EAS440_0386:5:60:12195:19960#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTG
>t1_56398 HWI-EAS440_0386:5:62:1764:10337#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTG
>t1_56590 HWI-EAS440_0386:5:62:14521:17922#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCG
>t2_56639 HWI-EAS440_0386:5:65:15675:2221#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAA
>t1_56713 HWI-EAS440_0386:5:65:2032:5786#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTT
>t1_56790 HWI-EAS440_0386:5:65:1863:8992#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTT
>t2_56827 HWI-EAS440_0386:5:65:12520:10388#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAGAAGGGG
>t1_56940 HWI-EAS440_0386:5:65:19417:14992#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTT
>t1_57060 HWI-EAS440_0386:5:65:14396:20229#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTT
>t2_57101 HWI-EAS440_0386:5:71:11781:3199#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAA
>t1_57105 HWI-EAS440_0386:5:71:4972:3447#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTTGATAAGTCTGAAGTTAAAGGCTGTGGCTCAACCATAGTTCGCTTTGGAAACTGTCAAACTTGAGTGCAGAAGGGGAGAG
>t1_57179 HWI-EAS440_0386:5:71:12024:6939#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTG
>t2_57248 HWI-EAS440_0386:5:71:7274:9435#0/1 orig_bc=ATACTATTGCGC new_bc=ATACTATTGCGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCGG
>t1_57269 HWI-EAS440_0386:5:71:9902:10255#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTTGAGTACGCACAACGTTGGCGGAA
>t1_57351 HWI-EAS440_0386:5:71:12017:13776#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAGAAGGGG
>t1_57363 HWI-EAS440_0386:5:71:14597:14338#0/1 orig_bc=AGTGAGAGAAGC new_bc=AGTGAGAGAAGC bc_diffs=0
TACGGAAGGTCCAGGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCTGGAGATTAAGTGTGTTGTGAAATGTAGACGCTCAACGTCTGAATTGCAGCGCATACTGGTTTCCTT
>t1_1 random.sequence1
CTTCCGCGGAGCACCTGTATGCGAGTTATACTAATATCGTACAGCACCGATAGACAGTCTTCACTTACACCAAACTCTTACCACTGTGCCCCTGCAGTTTTTCTTGATGCTACAACTAACTCATCGACAGT
>p1_2 random.sequence2
TTGTTATAAGTTTCTGATATTTAATTTCGTAAATAGTGGTTCCAACCTACCTCCGTAAAGTATACCGAGATGAAACTTCCCACGGCTCGGGCGATGATGACGTGTGGACATCGGAGCGCCGGTCCGGATGC
>f3_130 f1_2278 HWI-EAS440_0386:1:32:3943:19113#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_131 f1_2727 HWI-EAS440_0386:1:33:17206:16370#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_132 f1_2919 HWI-EAS440_0386:1:34:7244:5240#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_133 f1_2990 HWI-EAS440_0386:1:34:15559:8361#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_134 f1_3856 HWI-EAS440_0386:1:36:7847:3654#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_135 f1_4379 HWI-EAS440_0386:1:37:18509:5405#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_136 f1_4866 HWI-EAS440_0386:1:38:15872:7019#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f3_137 f1_6581 HWI-EAS440_0386:1:41:12697:18427#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_138 f1_6871 HWI-EAS440_0386:1:42:12648:9905#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_139 f1_7004 HWI-EAS440_0386:1:42:12524:15765#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_140 f1_8307 HWI-EAS440_0386:1:45:2418:10930#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAAGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f3_141 f1_8746 HWI-EAS440_0386:1:46:3313:8982#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f3_142 f1_10106 HWI-EAS440_0386:1:49:11503:8253#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_143 f1_11949 HWI-EAS440_0386:1:53:11869:5956#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_144 f1_12885 HWI-EAS440_0386:1:55:6617:6505#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_145 f1_13027 HWI-EAS440_0386:1:55:2587:12315#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_146 f1_13697 HWI-EAS440_0386:1:56:12011:20385#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_147 f1_14665 HWI-EAS440_0386:1:59:14413:3423#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAGAA
>f3_148 f1_17256 HWI-EAS440_0386:1:66:9612:13415#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_149 f1_18550 HWI-EAS440_0386:1:70:6653:12933#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f3_150 f1_19304 HWI-EAS440_0386:1:72:14543:4190#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f3_151 f1_24744 HWI-EAS440_0386:1:86:13607:15613#0/1 orig_bc=ACACTGTTCATG new_bc=ACACTGTTCATG bc_diffs=0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAG
>not16S.1_130
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_131
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_132
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_133
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_134
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_135
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_136
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_137
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_138
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_139
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_140
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_141
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_142
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_143
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_144
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_145
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_146
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_147
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_148
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_149
GAGAAGATGCGGAGTCAATCATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_150
GTTGGTTTATGACGACGTCCGACATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>not16S.1_151
GTTGGTTTATGACGACGTCCGACATTACGTGCCAAGGTAGTCATTACCCATCGCGGGTGCCCGTGCATGCAAGGTGTTTGGCTGGAGGCCTACTCGGGGAATATCATAACCGCAGACAGTCAATACCTATCAGA
>f4_0
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_1
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_2
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_3
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_4
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_5
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_6
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_7
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_8
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_9
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_10
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_11
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_12
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_13
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_14
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_15
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_16
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_17
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_18
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_19
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_20
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f4_21
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG"""

    extra_seqs = """>f5_1300
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGCCCCC
>f5_1310
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGCCCCC
>f5_1320
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGCCCCC
>f5_1330
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGCCCCC
>f5_1340
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGCCCCC
>f5_1350
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGCCCCC
>f5_1360
TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f5_1370
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f5_1380
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f5_1390
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f5_1400
TACGGAAGATGCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f5_1410
TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f5_1420
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f5_1430
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f5_1440
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f5_1450
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f5_1460
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f5_1470
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAGAA
>f5_1480
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f5_1490
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f5_1500
TACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGGCGGGTTGTTAAGTCAGCGGTAAAATCGTGCGGCTCAACCGTACCGTGCCGTTGAAACTGGCAACCTTGAGTTCGGACAAGGCAGATGGAATTCGTGGTGT
>f5_1510
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAG
>f6_00
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGCCCCC
>f6_10
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGCCCCC
>f6_20
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGCCCCC
>f6_30
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGCCCCC
>f6_40
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGCCCCC
>f6_50
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_60
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_70
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_80
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_90
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_100
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_110
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_120
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_130
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_140
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_150
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_160
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_170
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_180
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_190
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_200
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
>f6_210
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAG
"""

    refseqs = """>426848
AGAGTTTGATCCTGGCTCAGGATGAACGCTAGCGGCAGGCTTAATACATGCAAGTCGAGGGGCAGCACTGGTAGCAATACCTGGTGGCGACCGGCGGACGGGTGCGTAACACGTATGCAACCTACCCTGTACAGGGGGATAGCCCGAGGAAATTCGGATTAATACCCCATACGATAAGAATCGGCATCGATTTTTATTGAAAGCTCCGGCGGTACAGGATGGGCATGCGCCCCATTAGCTAGTTGGTGAGGTAACGGCTCACCAAGGCTACGATGGGTAGGGGGCCTGAGAGGGTGATCCCCCACACTGGAACTGAGACACGGTCCAGACTCCTACGGGAGGCAGCAGTAAGGAATATTGGTCAATGGGCGCAAGCCTGAACCAGCCATGCCGCGTGCAGGAAGACTGCCATTATGGTTGTAAACTGCTTTTATATGGGAAGAAACCTCCGGACGTGTCCGGAGCTGACGGTACCATGTGAATAAGGATCGGCTAACTCCGTGCCAGCAGCCGCGGTAATACGGAGGATCCAAGCGTTATCCGGATTTATTGGGTTTAAAGGGTGCGTAGGCGGCGTGTTAAGTCAGAGGTGAAATTCGGCAGCTCAACTGTCAAATTGCCTTTGATACTGGCACACTTGAATGCGATTGAGGTAGGCGGAATGTGACATGTAGCGGTGAAATGCTTAGACATGTGACAGAACACCGATTGCGAAGGCAGCTTACCAAGTCGTTATTGACGCTGAGGCACGAAAGCGTGGGGAGCAAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGATAACTCGACGTTAGCGATACACTGTTAGCGTCCAAGCGAAAGCGTTAAGTTATCCACCTGGGAAGTACGATCGCAAGGTTGAAACTCAAAGGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGATACGCGAGGAACCTTACCAGGGCTTAAATGGGGAACGACCTTCTGGGAAACCAGAATTTCTTTTAGACGGTCCTCAAGGTGCTGCATGGTTGTCGTCAGCTCGTGCCGTGAGGTGTTGGGTTAAGTCCCGCAACGAGCGCAACCCCTACTGTTAGTTGCCAGCGGATAATGCCGGGGACTCTAGCGGAACTGCCTGTGCAAACAGAGAGGAAGGTGGGGATGACGTCAAATCATCACGGCCCTTACGTCCTGGGCTACACACGTGCTACAATGGCCGGTACAGAGGGCAGCCACTTCGTGAGAAGGAGCGAATCCTTAAAGCCGGTCTCAGTTCGGATTGTAGTCTGCAACTCGACTACATGAAGCTGGAATCGCTAGTAATCGCGTATCAGCCATGACGCGGTGAATACGTTCCCGGGCCTTGTACACACCGCCCGTCAAGCCATGGGAATTGGGAGTACCTAAAGTCGGTAACCGCAAGGAGCCGCCTAAGGTAATACCAGTGACTGGGGCTAAGTCGTAACAAGGTAGCCGTA
>42684
AGAGTTTGATCCTGGCTCAGATTGAACGCTGGCGGCATGCTTTACACATGCAAGTCGGACGGCAGCACAGAGGAGCTTGCTTCTTGGGTGGCGAGTGGCGAACGGGTGAGTGACGCATCGGAACGTACCGAGTAATGGGGGATAACTGTCCGAAAGGACAGCTAATACCGCATACGCCCTGAGGGGGAAAGCGGGGGATCTTAGGACCTCGCGTTATTCGAGCGGCCGATGTCTGATTAGCTGGTTGGCGGGGTAAAGGCCCACCAAGGCGACGATCAGTAGCGGGTCTGAGAGGATGATCCGCCACACTGGGACTGAGACACGGCCCAGACTCCTACGGGAGGCAGCAGTGGGGAATTTTGGACAATGGGCGCAAGCCTGATCCAGCCATGCCGCGTGTCTGAAGAAGGCCTTCGGGTTGTAAAGGACTTTTGTCAGGGAAGAAAAGGAACGTGTTAATACCATGTTCTGATGACGGTACCTGAAGAATAAGCACCGGCTAACTACGTGCCAGCAGCCGCGGTAATACGTAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGGGCGCAGACGGTTACTTAAGCGGGATGTGAAATCCCCGGGCTCAACCCGGGAACTGCGTTCCGAACTGGGTGGCTAGAGTGTGTCAGAGGGGGGTAGAATTCCACGTGTAGCAGTGAAATGCGTAGAGATGTGGAGGAATACCGATGGCGAAGGCAGCCCCCTGGGATAACACTGACGTTCATGCCCGAAAGCGTGGGTAGCAAACAGGGTTAGATACCCTGGTAGTCCACGCCCTAAACGATGTCGATTAGCTGTTGGGGCACTTGATGCCTTAGTAGCGTAGCTAACGCGTGAAATCGACCGCCTGGGGAGTACGGTCGCAAGATTAAAACTCAAAGGAATTGACGGGGACCCGCACAAGCGGTGGATGATGTGGATTAATTCGATGCAACGCGAAGAACCTTACCTGGTCTTGACATGTACGGAATCTTCCAGAGACGGAAGGGTGCCTTCGGGAGCCGTAACACAGGTGCTGCATGGCTGTCGTCAGCTCGTGTCGTGAGATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCTTGTCATTAGTTGCCATCACTTGGTTGGGCACTCTAATGAGACTGCCGGTGACAAACCGGAGGAAGGTGGGGATGACGTCAAGTCCTCATGGCCCTTATGACCAGGGCTTCACACGTCATACAATGGTCGGTACAGAGGGTAGCCAAGCCGCGAGGCGGAGCCAATCCCAGAAAACCGATCGTAGTCCGGATTGCACTCTGCAACTCGAGTGCATGAAGTCGGAATCGCTAGTAATCGCAGGTCAGCATACTGCGGTGAATACGTTCCCGGGTCTTGTACACACCGCCCGTCACACCATGGGAGTGGGGGATACCAGAAGCAGGTAGGCTAACCGCAAGGAGGCCGCTTGCCACGGTATGCTTCATGACTGGGGTGAAGTCGTAACAAGGTAAC
>342684
AGAGTTTGATCCTGGCTCAGGATGAACGCTAGCGGCAGGCTTAACACATGCAAGTCGAGGGGCATCGCGGGTAGCAATACCTGGCGGCGACCGGCGGAAGGGTGCGTAACGCGTGAGCGACATACCCGTGACAGGGGGATAACAGATGGAAACGTCTCCTAATACCCCATAAGATCATATATCGCATGGTATGTGATTGAAAGGTGAGAACCGGTCACGGATTGGCTCGCGTCCCATCAGGTAGACGGCGGGGCAGCGGCCCGCCGTGCCGACGACGGGTAGGGGCTCTGAGAGGAGTGACCCCCACAATGGAACTGAGACACGGTCCATACTCCTACGGGAGGCAGCAGTGAGGAATATTGGTCAATGGGCGGAAGCCTGAACCAGCCATGCCGCGTGCGGGAGGACGGCCCTATGGGTTGTAAACCGCTTTTGAGTGAGAGCAATAAGGTTCACGTGTGGACCGATGAGAGTATCATTCGAATAAGCATCGGCTAACTCCGTGCCAGCAGCCGCGGTAATACGGAGGATGCGAGCGTTATCCGGATTCATTGGGTTTAAAGGGTGCGTAGGCGGACATGTAAGTCCGAGGTGAAAGACCGGGGCCCAACCCCGGGGTTGCCTCGGATACTGTGTGTCTGGAGTGGACGTGCCGCCGGGGGAATGAGTGGTGTAGCGGTGAAATGCATAGATGTCACTCAGAACACCGATTGCGAAGGCACCTGGCGAATGTCTTACTGACGCTGAGGCACGAAAGCGTGGGGATCGAACAGGATTAGATACCCTGGTAGTCCACGCAGTAAACGATGATGGCTGTCCGTTCGCTCCGATAGGAGTGAGTAGACAAGCGAAAGCGCTAAGCCATCCACCTGGGGAGTACGGCCGCAAGGCTGAAACTCAAAGGAATTGACGGGGGCCCGCACAAGCGGAGGAACATGTGGTTTAATTCGATGATACGCGAGGAACCTTACCCGGGCTCGAACGGCAGGTGAACGATGCAGAGATGCAAAGGCCCTTCGGGGCGTCTGTCGAGGTGCTGCATGGTTGTCGTCAGCTCGTGCCGTGAGGTGTCGGCTCAAGTGCCATAACGAGCGCAACCCTTGCCTGCAGTTGCCATCGGGTAAAGCCGGGGACTCTGCAGGGACTGCCACCGCAAGGTGAGAGGAGGGGGGGGATGACGTCAAATCAGCACGGCCCTTACGTCCGGGGCGACACACGTGTTACAATGGCGGCCACAGCGGGAAGCCACCCAGTGATGGGGCGCGGATCCCAAAAAAGCCGCCTCAGTTCGGATCGGAGTCTGCAACCCGACTCCGTGAAGCTGGATTCGCTAGTAATCGCGCATCAGCCATGGCGCGGTGAATACGTTCCCGGGCCTTGTACACACCGCCCGTCAAGCCATGGGAGTCGTGGGCGCCTGAAGGCCGTGACCGCGAGGAGCGGCCTAGGGCGAACGCGGTGACTGGGGCTAAGTCGTAACAAGGTA
>295053
AGAGTTTGATCCTGGCTCAGGACGAACGCTGGCGGCGTGCCTAACACATGCAAGTCGAACGGAGATGCTCCTTCGGGAGTATCTTAGTGGCGAACGGGTGAGTAACGCGTGAGCAACCTGACCTTCACAGGGGGATAACCGCTGGAAACAGCAGCTAATACCGCATAACGTCGCAAGACCAAAGAGGGGGACCTTCGGGCCTCTTGCCATCGGATGTGCCCAGATGGGATTAGCTTGTTGGTGGGGTAACGGCTCACCAAGGCGACGATCCCTAGCTGGTCTGAGAGGATGACCAGCCACACTGGAACTGAGACACGGTCCAGACTCCTACGGGAGGCAGCAGTGGGGAATATTGCACAATGGGCGCAAGCCTGATGCAGCCATGCCGCGTGTATGAAGAAGGCCTTCGGGTTGTAAAGTACTTTCAGCGGGGAGGAAGGGAGTAAAGTTAATACCTTTGCTCATTGACGTTACCCGCAGAAGAAGCACCGGCTAACTCCGTGCCAGCAGCCGCGGTAATACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCACGCAGGCGGTTTGTTAAGTCAGATGTGAAATCCCCGGGCTCAACCTGGGAACTGCATCTGATACTGGCAAGCTTGAGTCTCGTAGAGGGGGGTAGAATTCCAGGTGTAGCGGTGAAATGCGTAGAGATCTGGAGGAATACCGGTGGCGAAGGCGGCCCCCTGGACGAAGACTGACGCTCAGGTGCGAAAGCGTGGGGAGCAAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGTCGACTTGGAGGTTGTGCCCTTGAGGCGTGGCTTCCGGAGCTAACGCGTTAAGTCGACCGCCTGGGGAGTACGGCCGCAAGGTTAAAACTCAAATGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGCAACGCGAAGAACCTTACCTGGTCTTGACATCCACAGAACTTTCCAGAGATGGATTGGTGCCTTCGGGAACTGTGAGACAGGTGCTGCATGGCTGTCGTCAGCTCGTGTTGTGAAATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCTTGTCCTTTGTTGCCAGCGGTCCGGCCGGGAACTCAAAGGAGACTGCCAGTGATAAACTGGAGGAAGGTGGGGATGACGTCAAGTCATCATGGCCCTTACGACCAGGGCTACACACGTGCTACAATGGCGCATACAAAGAGAAGCGACCTCGCGAGAGCAAGCGGACCTCATAAAGTGCGTCGTAGTCCGGATTGGAGTCTGCAACTCGACTCCATGAAGTCGGAATCGCTAGTAATCGTGGATCAGAATGCCACGGTGAATACGTTCCCGGGCCTTGCACACACCGCC
>879972
GACGAACGCTGGCGGCGTGCCTAATACATGCAAGTCGAACGAGATTGACCGGTGCTTGCACTGGTCAATCTAGTGGCGAACGGGTGAGTAACACGTGGGTAACCTGCCCATCAGAGGGGGATAACATTCGGAAACGGATGCTAAAACCGCATAGGTCTTCGAACCGCATGGTTTGAAGAGGAAAAGAGGCGCAAGCTTCTGCTGATGGATGGACCCGCGGTGTATTAGCTAGTTGGTGGGGTAACGGCTCACCAAGGCGACGATACATAGCCGACCTGAGAGGGTGATCGGCCACACTGGGACTGAGACACGGCCCAGACTCCTACGGGAGGCAGCAGTAGGGAATCTTCGGCAATGGACGGAAGTCTGACCGAGCAACGCCGCGTGAGTGAAGAAGGTTTTCGGATCGTAAAGCTCTGTTGTAAGAGAAGAACGAGTGTGAGAGTGGAAAGTTCACACTGTGACGGTATCTTACCAGAAAGGGACGGCTAACTACGTGCCAGCAGCCGCGGTAATACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAAGGCTGTGGCTTAACCATAGTACGCTTTGGAAACTGTTTAACTTGAGTGCAAGAGGGGAGAGTGGAATTCCATGTGTAGCGGTGAAATGCGTAGATATATGGAGGAACACCGGTGGCGAAAGCGGCTCTCTGGCTTGTAACTGACGCTGAGGCTCGAAAGCGTGGGGAGCAAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGAGTGCTAGGTGTTAGACCCTTTCCGGGGTTTAGTGCCGCAGCTAACGCATTAAGCACTCCGCCTGGGGAGTACGACCGCAGGGTTGAAACTCAAAGGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGAAGCAACGCGAAGAACCTTACCAGGTCTTGACATCCCTCTGACCGCTCTAGAGATAGAGCTTTCCTTCGGGACAGAGGTGACAGGTGGTGCATGGTTGTCGTCAGCTCGTGTCGTGAGATGTTGGGTTAAGTCCCGCAACGAGCGCAACCCCTATTGTTAGTTGCCATCATTCAGTTGGGCACTCTAGCGAGACTGCCGGTAATAAACCGGAGGAAGGTGGGGATGACGTCAAATCATCATGCCCCTTATGACCTGGGCTACACACGTGCTACAATGGCTGGTACAACGAGTCGCAAGCCGGTGACGGCAAGCTAATCTCTTAAAGCCAGTCTCAGTTCGGATTGTAGGCTGCAACTCGCCTACATGAAGTCGGAATCGCTAGTAATCGCGGATCAGCACGCCGCGGTGAATACGTTCCCGGGCCT
"""
    refseqs_tax = """426848	k__Bacteria; p__Bacteroidetes; c__VC2_1_Bac22; o__; f__; g__; s__
42684	k__Bacteria; p__Proteobacteria; c__Betaproteobacteria; o__Neisseriales; f__Neisseriaceae; g__; s__
342684	k__Bacteria; p__Bacteroidetes; c__Bacteroidia; o__Bacteroidales; f__; g__; s__
295053	k__Bacteria; p__Proteobacteria; c__Gammaproteobacteria; o__Enterobacteriales; f__Enterobacteriaceae; g__; s__
879972	k__Bacteria; p__Firmicutes; c__Bacilli; o__Lactobacillales; f__Streptococcaceae; g__Streptococcus; s__
"""

    refseqs_aligned = """>426848
 
>42684
 
>342684
 
>295053
 
>879972
 
"""

    refseqs_aligned_lanemask = get_template_alignment_column_mask()

    md = """#SampleID	BarcodeSequence	LinkerPrimerSequence	SampleType	year	month	day	subject	days_since_epoch	Description
f1	ACACTGTTCATG	GTGCCAGCMGCCGCGGTAA	feces	2008	10	22	1	14174	fecal1
f2	ACCAGACGATGC	GTGCCAGCMGCCGCGGTAA	feces	2008	10	23	1	14175	fecal2
f3	ACCAGACGATGC	GTGCCAGCMGCCGCGGTAA	feces	2008	10	23	1	14175	identical sequences to fecal2
f4	ACCAGACGATGC	GTGCCAGCMGCCGCGGTAA	feces	2008	10	23	1	14175	all sequences identical, map to GG 295053 at 97 percent id
f5	ACCAGACGATGC	GTGCCAGCMGCCGCGGTAA	feces	2008	10	23	1	14175	derived from f3 with some changes to sequences to add one new otu
f6	ACCAGACGATGC	GTGCCAGCMGCCGCGGTAA	feces	2008	10	23	1	14175	derived from f4 with some changes to sequences to add one new otu
p1	AACGCACGCTAG	GTGCCAGCMGCCGCGGTAA	L_palm	2008	10	21	1	14173	palm1, contains one randomly generated sequence
p2	ACACTGTTCATG	GTGCCAGCMGCCGCGGTAA	L_palm	2008	10	22	1	14174	palm2
t1	AGTGAGAGAAGC	GTGCCAGCMGCCGCGGTAA	Tongue	2008	10	21	1	14173	tongue1, contains one randomly generated sequence
t2	ATACTATTGCGC	GTGCCAGCMGCCGCGGTAA	Tongue	2008	10	22	1	14174	tongue2
not16S.1	ATACTATTGCGC	GTGCCAGCMGCCGCGGTAA	Other	2008	10	22	1	14174	randomly generated sequence plus some variants, these should not map to 16S
"""

    biom = """{"id": "None","format": "Biological Observation Matrix 1.0.0","format_url": "http://biom-format.org","type": "OTU table","generated_by": "QIIME 1.6.0-dev","date": "2013-02-09T09:30:11.550590","matrix_type": "sparse","matrix_element_type": "int","shape": [14, 9],"data": [[0,0,20],[0,1,18],[0,2,18],[0,3,22],[0,4,4],[1,4,1],[2,0,1],[2,4,1],[2,5,1],[3,6,1],[4,4,1],[5,7,20],[6,4,1],[7,4,1],[7,5,1],[8,4,1],[8,6,2],[8,8,3],[9,7,2],[10,5,1],[11,4,9],[11,5,20],[11,6,1],[11,8,4],[12,4,3],[12,6,19],[12,8,15],[13,0,1],[13,1,4],[13,2,4]],"rows": [{"id": "295053", "metadata": {"taxonomy": ["k__Bacteria"]}},{"id": "42684", "metadata": {"taxonomy": ["k__Bacteria", "p__Proteobacteria"]}},{"id": "None11", "metadata": {"taxonomy": ["Unclassified"]}},{"id": "None10", "metadata": {"taxonomy": ["Unclassified"]}},{"id": "None7", "metadata": {"taxonomy": ["Unclassified"]}},{"id": "None6", "metadata": {"taxonomy": ["Unclassified"]}},{"id": "None5", "metadata": {"taxonomy": ["k__Bacteria"]}},{"id": "None4", "metadata": {"taxonomy": ["Unclassified"]}},{"id": "None3", "metadata": {"taxonomy": ["k__Bacteria"]}},{"id": "None2", "metadata": {"taxonomy": ["k__Bacteria"]}},{"id": "None1", "metadata": {"taxonomy": ["Unclassified"]}},{"id": "879972", "metadata": {"taxonomy": ["k__Bacteria"]}},{"id": "None9", "metadata": {"taxonomy": ["Unclassified"]}},{"id": "None8", "metadata": {"taxonomy": ["k__Bacteria"]}}],"columns": [{"id": "f2", "metadata": null},{"id": "f1", "metadata": null},{"id": "f3", "metadata": null},{"id": "f4", "metadata": null},{"id": "p2", "metadata": null},{"id": "p1", "metadata": null},{"id": "t1", "metadata": null},{"id": "not16S.1", "metadata": null},{"id": "t2", "metadata": null}]}"""

    tree = """(None8:0.09606,((879972:0.05039,None3:0.00778)0.980:0.15948,((None11:0.07161,None4:0.06965)0.917:0.09643,(295053:0.06096,42684:0.15599)0.910:0.08898)0.899:0.09227)0.958:0.13976,(None7:0.10435,(None5:0.02626,None9:0.00014)1.000:0.25335)0.753:0.0465);"""

    result['seqs'] = seqs.split('\n')
    result['extra_seqs'] = extra_seqs.split('\n')
    result['map'] = md.split('\n')
    result['refseqs'] = refseqs.split('\n')
    result['biom'] = biom.split('\n')
    result['tree'] = tree.split('\n')
    result['refseqs_tax'] = refseqs_tax.split('\n')
    result['refseqs_aligned'] = refseqs_aligned.split('\n')
    result['refseqs_aligned_lanemask'] = refseqs_aligned_lanemask.split('\n')

    return result


def write_test_data(output_dir):
    """ write small test data set files to output_dir

        This function is convenient for interactive testing. If you need
        some test files to work with, you can just run:

        python -c "from qiime.test import write_test_data; write_test_data('.')"
    """
    test_data = get_test_data()
    for k, v in test_data.items():
        f = open(join(output_dir, k), 'w')
        f.write('\n'.join(v))
        f.close()


def get_test_data_fps():
    """ Returns test data as dict of filepaths.

    Filepaths are created with the tempfile module, and therefore do not
    explcitly need to be cleaned up.
    """
    test_data = get_test_data()
    temp_dir = get_qiime_temp_dir()
    result = {}
    for k, v in test_data.items():
        f = NamedTemporaryFile(prefix=k, dir=temp_dir)
        f.write('\n'.join(v))
        f.flush()
        result[k] = (f.name, f)
    return result


def run_script_usage_tests(test_data_dir,
                           scripts_dir,
                           working_dir,
                           verbose=False,
                           tests=None,
                           force_overwrite=False,
                           timeout=60):
    """ Test script_usage examples when test data is present in test_data_dir

        Returns a result summary string and a boolean indicating whether there
        were any errors or failures while running the commands.

        This code was derived from qcli-0.1.0. The author of this function,
         Greg Caporaso, gives permission to include this GPL code in QIIME.
    """
    working_dir = join(working_dir, 'script_usage_tests')

    logger = None
    if verbose:
        logger = sys.stdout

    script_tester = ScriptTester(logger=logger)
    script_tester(scripts_dir, test_data_dir, working_dir, scripts=tests,
                  timeout=timeout, force_overwrite=force_overwrite)
    result_summary = script_tester.result_summary()
    has_failures_or_errors = script_tester.has_failures_or_errors()

    if exists(working_dir):
        rmtree(working_dir)

    return result_summary, has_failures_or_errors

class UsageExampleImportError(ImportError):
    pass

class NullOutputStream(object):
    """Output stream that mimics writing to /dev/null.

    Taken from http://stackoverflow.com/a/2929954

    """

    def write(self, *_):
        pass

class ScriptTester(object):
    """Harness for testing command-line scripts.

    Given a directory of test data and a directory of scripts, this class
    attempts to import usage examples from each script and run the example
    commands using the corresponding test data.

    Basic stats are collected, including script errors and failures. In this
    context, a script error means that a problem has occurred while attempting
    to load the script and its usage examples (for example, an ``ImportError``,
    or an improperly-formatted script file). A failure means that a script was
    successfully loaded, but when running a usage example, the command returned
    an exit code that was not 0.

    The class also imposes time limits for how long a command can be run; if a
    command exceeds the allotted time, this is counted as a failure too.

    """

    def __init__(self, logger=None):
        """Initialize a script testing harness with optional logging.

        Arguments:
        logger -- file-like object to have status messages recorded to. Must
            have a ``write`` method. The user is responsible for opening and
            closing the "file" (if necessary). Status messages include
            successes, failures, errors, and warnings

        """
        if logger is None:
            logger = NullOutputStream()
        self.logger = logger

        self.total_scripts = 0
        self.total_commands = 0

        self.successes = []
        self.failures = []
        self.timeouts = []
        self.warnings = []

        # Maps script error type to a list of scripts that had the error. Each
        # error type has a partial error message that is used when formatting a
        # summary (see _format_script_error_summary). Each type also has a
        # second (generally more verbose) error message that is used when
        # formatting messages to be written to the logger (see
        # _record_script_error).
        self.script_errors = {
            'missing': ([],
                        'be loaded because they do not exist',
                        'Script %s does not exist.\n'),
            'import': ([],
                       'be imported',
                       'Could not import the script %s. Original error '
                       'message:\n\n%s'),
            'script_info': ([],
                            'have their usage examples loaded because the '
                            'script_info dictionary did not exist',
                            'script_info dictionary does not exist in script '
                            '%s. Original error message:\n\n%s'),
            'script_usage': ([],
                             'have their usage examples loaded because the '
                             'script_info dictionary did not have usage '
                             'examples',
                             'script_info dictionary in script %s does not '
                             'have usage examples that are accessible via key '
                             '"script_usage". Original error message:\n\n%s'),
            'other': ([],
                      'be loaded',
                      'Could not load the script %s. Original error '
                      'message:\n\n%s')
        }

    def __call__(self, scripts_dir, test_data_dir, working_dir, scripts=None,
                 timeout=60, force_overwrite=False):
        """Run the test harness over the scripts in the provided directory.

        This method may be called multiple times using the same
        ``ScriptTester`` instance. This may be useful, for example, if you want
        to use the same test harness to collate results for multiple script
        directories and generate a single master report when finished.

        This method does not return anything, as all results are recorded in
        instance variables. Use ``ScriptTester.result_summary`` to generate a
        summary report.

        Arguments:
        scripts_dir -- dirpath of scripts directory
        test_data_dir -- dirpath of corresponding test data directory
        working_dir -- dirpath where the tests will be run
        scripts -- list of script names to test (without the ``.py``
            extension). If not provided, all scripts that have test data in
            ``test_data_dir`` will be tested
        timeout -- time limit in seconds that a single script usage example
            (command) can run before being halted as a failure
        force_overwrite -- if ``True``, ``working_dir`` will be removed if it
            already exists

        """
        test_data_dir = abspath(test_data_dir)

        if force_overwrite and exists(working_dir):
            rmtree(working_dir)

        if scripts is None:
            scripts = [split(d)[1] for d in
                       sorted(glob(join(test_data_dir, '*'))) if isdir(d)]

        self._log('Scripts to test:\n %s' % ' '.join(scripts))
        self._log('')

        addsitedir(scripts_dir)

        for script_name in scripts:
            self.total_scripts += 1

            # import the usage examples - this is possible because we added
            # scripts_dir to the PYTHONPATH above
            try:
                usage_examples = self._load_usage_examples(scripts_dir,
                                                           script_name)
            except UsageExampleImportError:
                # _load_usage_examples has already taken care of
                # recording/reporting the errors, so skip to the next script to
                # test.
                continue

            script_fp = join(scripts_dir,
                             self._append_script_extension(script_name))

            self._log('Testing %d usage examples from: %s' %
                      (len(usage_examples), script_fp))

            # init the test environment
            test_input_dir = join(test_data_dir, script_name)
            test_working_dir = join(working_dir, script_name)
            copytree(test_input_dir, test_working_dir)
            chdir(test_working_dir)

            self._log('Running tests in: %s' % getcwd())
            self._log('Tests:')

            for usage_example in usage_examples:
                if '%prog' not in usage_example[2]:
                    msg = ('%s usage examples do not all use %%prog to '
                           'represent the command name. You may not be '
                           'running the version of the command that you think '
                           'you are!' % script_name)
                    self._log(msg)
                    self.warnings.append(msg)

                cmd = usage_example[2].replace('%prog', script_fp)
                self._run_command(cmd, timeout)

            self._log('')

    def has_failures_or_errors(self):
        """Return ``True`` if there's failures or errors in testing results.

        Useful as an overall check to see if there were any problems with a
        testing run. Status of warnings is ignored.

        """
        return (self._num_failures() > 0) or (self._num_script_errors() > 0)

    def result_summary(self):
        """Return a summary string reporting various test results.

        Includes failed scripts, as well as script errors stratified by error
        type. Warnings are also included.

        """
        summary = ['Ran %d commands to test %d scripts. %d of these commands '
                   'failed and %d scripts could not be tested due to errors.' %
                   (self.total_commands, self.total_scripts,
                    self._num_failures(), self._num_script_errors())]

        if self._num_failures() > 0:
            summary.append('Failed scripts were: %s' %
                           ' '.join(self._failed_scripts()))

        for error_info in self.script_errors.values():
            if len(error_info[0]) > 0:
                summary.append(self._format_script_error_summary(
                    error_info[0], error_info[1]))

        if self.warnings:
            summary.append('Warnings:')
            for warning in self.warnings:
                summary.append(' ' + warning)

        return '\n'.join(summary)

    def _load_usage_examples(self, scripts_dir, script_name):
        script_basename = self._append_script_extension(script_name)
        script_fp = join(scripts_dir, script_basename)

        if not exists(script_fp):
            self._record_script_error('missing', script_basename)
            raise UsageExampleImportError

        try:
            script = __import__(script_name)
        except ImportError as e:
            self._record_script_error('import', script_basename, format_exc())
            raise UsageExampleImportError
        except Exception as e:
            self._record_script_error('other', script_basename, format_exc())
            raise UsageExampleImportError

        try:
            usage_examples = script.script_info['script_usage']
        except AttributeError:
            self._record_script_error('script_info', script_basename,
                                      format_exc())
            raise UsageExampleImportError
        except KeyError:
            self._record_script_error('script_usage', script_basename,
                                      format_exc())
            raise UsageExampleImportError

        return usage_examples

    def _record_script_error(self, error_type, script_basename,
                             orig_error_msg=None):
        error_info = self.script_errors[error_type]
        error_info[0].append(script_basename)
        msg = error_info[2]

        if orig_error_msg is None:
            msg = msg % script_basename
        else:
            msg = msg % (script_basename, orig_error_msg)

        self._log(msg)

    def _run_command(self, cmd, timeout):
        self._log(cmd, append_newline=False)

        timed_out = False
        initiate_timeout(timeout)

        try:
            stdout, stderr, return_value = pyqi_system_call(cmd)
        except TimeExceededError:
            timed_out = True
        else:
            disable_timeout()

        self.total_commands += 1

        if timed_out:
            self.timeouts.append(cmd)
            msg = ": Timed out"
        elif return_value == 0:
            self.successes.append(cmd)
            msg = ": Pass"
        else:
            self.failures.append((cmd, stdout, stderr, return_value))
            msg = ": Failed\nStdout:\n%s\nStderr:\n%s\n" % (stdout, stderr)

        self._log(msg)

    def _num_failures(self):
        return len(self.failures) + len(self.timeouts)

    def _num_script_errors(self):
        num_errors = 0

        for error_info in self.script_errors.values():
            num_errors += len(error_info[0])

        return num_errors

    def _failed_scripts(self):
        failed = set()

        for failure in self.failures:
            failed.add(self._parse_script_name(failure[0]))
        for timeout in self.timeouts:
            failed.add(self._parse_script_name(timeout))

        return sorted(list(failed))

    def _format_script_error_summary(self, error_list, msg):
        return ('%d scripts could not %s. Scripts were: %s' %
                (len(error_list), msg, ' '.join(error_list)))

    def _append_script_extension(self, script_name):
        return script_name if script_name.endswith('.py') \
                else script_name + '.py'

    def _parse_script_name(self, cmd):
        return split(cmd.split()[0])[1]

    def _log(self, msg, append_newline=True):
        self.logger.write(msg)

        if append_newline:
            self.logger.write('\n')
