[med-svn] [unanimity] 03/04: Imported Upstream version 2.0.4+20161206+dfsg
Afif Elghraoui
afif at moszumanska.debian.org
Mon Dec 19 06:16:09 UTC 2016
This is an automated email from the git hooks/post-receive script.
afif pushed a commit to branch master
in repository unanimity.
commit eeb5d260cde9e71d20214469fa712356abf0b222
Author: Afif Elghraoui <afif at debian.org>
Date: Sun Dec 18 01:14:52 2016 -0800
Imported Upstream version 2.0.4+20161206+dfsg
---
.gitignore | 3 +
.gitmodules | 4 -
CMakeLists.txt | 2 +-
cmake/uny-compilerflags.cmake | 4 +-
cmake/uny-dependencies.cmake | 32 +-
cmake/uny-gitsha1.cmake | 2 +-
.../ZScoreMath.rst | 354 +++----
.../img/ZScore-HMM-figures.jpeg | Bin 0 -> 105415 bytes
.../{ => img}/pacbioHMM.svg.png | Bin
include/pacbio/Version.h.in | 1 +
include/pacbio/ccs/Consensus.h | 25 +-
include/pacbio/ccs/ConsensusSettings.h | 3 +-
include/pacbio/consensus/AbstractIntegrator.h | 24 +-
include/pacbio/consensus/Evaluator.h | 11 +-
include/pacbio/consensus/MonoMolecularIntegrator.h | 5 +
include/pacbio/data/State.h | 6 +-
include/pacbio/denovo/PoaGraph.h | 2 +
include/pacbio/denovo/SparsePoa.h | 2 +-
.../InvalidEvaluatorException.h} | 28 +-
include/pacbio/log/Logging.h | 406 --------
build.sh => scripts/ci/build.sh | 12 +-
scripts/ci/checkout-submodules.sh | 13 +
scripts/makeChangeLog.py | 31 -
scripts/nightly/build.sh | 42 +
scripts/nightly/checkout-submodules.sh | 13 +
scripts/nightly/test.sh | 20 +
setup.py | 26 +-
src/AbstractIntegrator.cpp | 42 +-
src/CMakeLists.txt | 4 -
src/ConsensusSettings.cpp | 59 +-
src/Evaluator.cpp | 25 +-
src/Polish.cpp | 56 +-
src/SparsePoa.cpp | 5 +-
src/Template.cpp | 32 +-
src/Utility.cpp | 7 +-
src/main/ccs.cpp | 146 +--
src/models/S_P1C1v2_Model.cpp | 2 +-
src/models/S_P2C2_Model.cpp | 395 ++++++++
src/poa/PoaGraph.cpp | 2 +
src/poa/PoaGraphImpl.cpp | 22 +
src/poa/PoaGraphImpl.h | 16 +-
src/poa/PoaGraphTraversals.cpp | 8 +-
swig/CMakeLists.txt | 11 +-
swig/ConsensusCore2.py | 1 +
tests/cram/100zmws.t | 64 +-
tests/cram/100zmws_byStrand.t | 134 +--
tests/cram/force.t | 14 +
tests/cram/internal/big.t | 20 +
tests/cram/logfile.t | 14 +
tests/cram/tiny.t | 4 +-
tests/cram/tiny_noPolish.t | 33 +
tests/data/params/SP2C2.json | 1026 ++++++++++++++++++++
tests/python/test_tool_contract.py | 2 +-
tests/unit/TestLoadModels.cpp | 27 +-
tests/unit/TestPoaConsensus.cpp | 45 +-
tests/unit/TestTemplate.cpp | 2 +-
56 files changed, 2293 insertions(+), 996 deletions(-)
diff --git a/.gitignore b/.gitignore
index 68fc691..4a77bb4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,5 @@
.DS_Store
/build
+/_deps
+/_rev_deps
+/unyve
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
index 461a8eb..1934faf 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -10,7 +10,3 @@
path = third-party/pbcopper
url = ../pbcopper.git
branch = master
-[submodule "third-party/htslib"]
- path = third-party/htslib
- url = ../htslib.git
- branch = pb
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 264241d..879c065 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
##############################################
cmake_policy(SET CMP0048 NEW)
-project(UNANIMITY VERSION 2.0.4 LANGUAGES CXX C)
+project(UNANIMITY VERSION 2.0.5 LANGUAGES CXX C)
cmake_minimum_required(VERSION 3.2)
set(ROOT_PROJECT_NAME ${PROJECT_NAME} CACHE STRING "root project name")
diff --git a/cmake/uny-compilerflags.cmake b/cmake/uny-compilerflags.cmake
index f5ede27..5b05174 100644
--- a/cmake/uny-compilerflags.cmake
+++ b/cmake/uny-compilerflags.cmake
@@ -5,9 +5,9 @@ include(CheckCXXCompilerFlag)
set(UNY_FLAGS "-std=c++11 -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable")
# gperftools support
-if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND APPLE)
set(UNY_LINKER_FLAGS "${UNY_LINKER_FLAGS} -Wl,-no_pie")
-endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
+endif(CMAKE_BUILD_TYPE STREQUAL "Debug" AND APPLE)
# static linking
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
diff --git a/cmake/uny-dependencies.cmake b/cmake/uny-dependencies.cmake
index a7a7409..ea3324c 100644
--- a/cmake/uny-dependencies.cmake
+++ b/cmake/uny-dependencies.cmake
@@ -9,6 +9,18 @@ if(NOT Boost_INCLUDE_DIRS)
find_package(Boost REQUIRED)
endif()
+# pbcopper
+if (NOT pbcopper_INCLUDE_DIRS OR
+ NOT pbcopper_LIBRARIES)
+ if (PYTHON_SWIG)
+ set(pbcopper_build_shared OFF CACHE INTERNAL "" FORCE)
+ endif()
+ set(pbcopper_build_tests OFF CACHE INTERNAL "" FORCE)
+ set(pbcopper_build_docs OFF CACHE INTERNAL "" FORCE)
+ set(pbcopper_build_examples OFF CACHE INTERNAL "" FORCE)
+ add_subdirectory(${UNY_ThirdPartyDir}/pbcopper external/pbcopper/build)
+endif()
+
# only require if NOT called from pip install
if (NOT PYTHON_SWIG)
# Threads
@@ -21,14 +33,6 @@ if (NOT PYTHON_SWIG)
find_package(ZLIB REQUIRED)
endif()
- # htslib
- if(NOT HTSLIB_INCLUDE_DIRS OR
- NOT HTSLIB_LIBRARIES)
- find_package(htslib
- PATHS ${UNY_ThirdPartyDir}/htslib
- REQUIRED)
- endif()
-
# pbbam
if (NOT PacBioBAM_INCLUDE_DIRS OR
NOT PacBioBAM_LIBRARIES)
@@ -36,9 +40,6 @@ if (NOT PYTHON_SWIG)
set(PacBioBAM_build_tests OFF CACHE INTERNAL "" FORCE)
set(PacBioBAM_build_tools OFF CACHE INTERNAL "" FORCE)
add_subdirectory(${UNY_ThirdPartyDir}/pbbam external/pbbam/build)
- if (TARGET htslib)
- add_dependencies(pbbam htslib)
- endif()
endif()
# cpp-optparse sources
@@ -54,13 +55,4 @@ if (NOT PYTHON_SWIG)
if (NOT SEQAN_INCLUDE_DIRS)
set(SEQAN_INCLUDE_DIRS ${UNY_ThirdPartyDir}/seqan/include CACHE INTERNAL "" FORCE)
endif()
-
- # pbcopper
- if (NOT pbcopper_INCLUDE_DIRS OR
- NOT pbcopper_LIBRARIES)
- set(pbcopper_build_tests OFF CACHE INTERNAL "" FORCE)
- set(pbcopper_build_docs OFF CACHE INTERNAL "" FORCE)
- set(pbcopper_build_examples OFF CACHE INTERNAL "" FORCE)
- add_subdirectory(${UNY_ThirdPartyDir}/pbcopper external/pbcopper/build)
- endif()
endif()
diff --git a/cmake/uny-gitsha1.cmake b/cmake/uny-gitsha1.cmake
index 8a25e7a..275c0b3 100644
--- a/cmake/uny-gitsha1.cmake
+++ b/cmake/uny-gitsha1.cmake
@@ -7,7 +7,7 @@ set(__find_git_sha1 YES)
function(find_git_sha1 _GIT_SHA1)
find_package(Git QUIET REQUIRED)
execute_process(COMMAND
- "${GIT_EXECUTABLE}" "describe" "--always" "--dirty=*"
+ "${GIT_EXECUTABLE}" "describe" "--always" "--dirty=-dirty"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
RESULT_VARIABLE res
OUTPUT_VARIABLE out
diff --git a/doc/ConsensusCore2-DesignAndImplementation/ZScoreMath.rst b/doc/ConsensusCore2-DesignAndImplementation/ZScoreMath.rst
index 14d13b9..184f18b 100644
--- a/doc/ConsensusCore2-DesignAndImplementation/ZScoreMath.rst
+++ b/doc/ConsensusCore2-DesignAndImplementation/ZScoreMath.rst
@@ -28,228 +28,148 @@ estimates.
Z-Score Motivation
------------------
-The idea is to compute the expected mean and variance of the log
-likelihood (LL) of sequences output by a given HMM. Thus when
-presented with a sequence that has a certain log probability, we can
-reason how far removed it is to "normal" such that outliers can be
-filtered away.
-
-An HMM is a series of Markov steps: transition and emisson. Each step
-will additively change the LL. In a simple left-to-right profile HMM
-with length, :math:`T`, each match/delete will be visited once. It is
-reasonable that sums of log probabilities might be close to normal
-under certain conditions.
-
-Here is the basic HMM structure with match, branch (same match base
-insert), stick (different match base insert), delete:
-
-.. figure:: pacbioHMM.svg.png
-
- The basic HMM structure of a single match state with match, branch,
- stick, and delete substates.
-
-For each "substate" (match, delete, branchIns, stickIns) we might
-compute that substate's average contribtuion to the the LL over the
-distribution of outputs induced by the HMM: E[LL] and Var[LL]. Then
-:math:`E[LL] = E[ \sum_{substates} LL] = \sum_{substates} E[LL]` by
-linearity of expectation. For IID substates this is :math:`T*E[LL]`. Var[LL]
-= :math:`Var[ \sum_{substates} LL] = \sum_{substates} Var[LL]` because each
-substate is independent so all covariances are 0. For IID substates
-this is :math:`T*Var[LL]`.
-
-For a motivational example, consider an "HMM" with a single
-multinomial :math:`p=(p_1,p_2,p_3,p_4)`. Here :math:`E[LL] =
-p*log(p).` :math:`E[LL^2] = p*log^2(p).` :math:`Var[LL]=
-E[LL^2]-E^2[LL]` :math:`= p*log^2(p) - (p*log(p))^2`. These are
-expected mean and variance of the LL by this simple multinomial. By
-stringing together multinomial emissions and transitions, we can
-estimate these quantities for an HMM.
-
-An HMM emits a string by entering a state, emitting an output
-according to an emission probability, making a random choice about
-what state to transition to next, transitioning to that new state, and
-repeating.
-
-Consider a single HMM state that has emission probabilities
-:math:`e_j`, transistion probabilities :math:`t_i`, and next state
-:math:`R_i` that outputs the rest of the output. The probability of
-this state is :math:`P=(e_j t_i \prod_k R_{ik})` where the product is
-the rest of the states multiplying their contributions. The log
-likelihood is :math:`LL=\log e_j + \log t_i + \sum_k \log
-R_{ik}`. Define :math:`\log e = \sum_j e_j \log(e_j)` and
-:math:`\log^2 e = \sum_j e_j \log^2(e_j)` be the expectations over the
-possible emission possibitilties.
-
-The expectation of log likelihood is :math:`EXP_{t_i} [(\log e + \log
-t_i + \sum_k \log R_{ik})]`. Note the expecation of the
-log-likelikhood of the rest of the derivation represented by the sum
-is :math:`EXP[ LL(R_i) ]` so we get :math:`EXP_{t_i} [(\log e + \log
-t_i + EXP[ LL(R_i)] ]`
-
-The expectation of log likelihood squared is :math:`EXP_{t_i}[ (\log
-e + \log t_i + \sum_k \log R_{ik})^2]`. Expand the square. The only
-complicating term is :math:`EXP_{t_i}[(\sum_k \log R_{ik})^2]` but we
-realize this to be the expectation of the log-likelihood squared of
-the rest of the derivation, :math:`EXP[ LL^2(R_i) ]`.
-
-Given this, we can write a dynamic program that computes the expected
-log-likelihood and expected log-likelihood squared of
-:math:`thisstate` derving a string of :math:`length` for every state
-and every length up to some maximum. With a large enough maximum
-length computed, contributions from possibly infinite self-loops in
-the insert states will be properly summed as the trailing terms become
-so small as to be negligible.
-
-The relvant python code that computes the expectation over the
-different choices of next rest state (nexts) with transition
-probabilities (nextp) and expected emissions (expEmLL, expEmLL2):
-
-.. code-block:: python
-
- # cycle through choices
- overallresult = [0.0, 0.0, 0.0]
- for ch in range(len(this.nexts)):
- transp = this.nextp[ch]
- rhs = self.derive( this.nexts[ch], newlength)
- A = self.mylog(transp) # log transition
- A2 = A*A # log transistion squared
- B = expEmLL # expected log emission likelihood
- B2= expEmLL2 # expected log squared emission likelihood
- C = rhs[1] # EXP[LL] of next
- C2= rhs[2] # EXP[LL^2] of next
- thisll = transp*(A+B+C)
- thisll2 = transp*( A2 + B2 + C2 + 2*A*B + 2*A*C +2*B*C)
- thisprob = transp*rhs[0]
- if thisprob>0.0:
- overallresult[0]=overallresult[0]+thisprob
- overallresult[1]=overallresult[1]+thisll
- overallresult[2]=overallresult[2]+thisll2
- self.memo[self.key(thisstate,length)]=overallresult
- return(overallresult)
-
-
-Z-Score for Filtering
----------------------
-
-One method for identifying garbage reads is the "Z-Score" described
-here [PBEP_4.pdf]. This result sums out the infinite sums caused by
-the looping insert states analytically to get an analytic result
-rather than a dynamic programming one.
-
-Here is the result verbatim from PBEF_4.pdf:
-
-+-------------------------+-----------------------------------------+
-| term | meaning |
-+=========================+=========================================+
-| :math:`p_m` | match transistion probability |
-+-------------------------+-----------------------------------------+
-| :math:`p_d` | deletion transistion probability |
-+-------------------------+-----------------------------------------+
-| :math:`p_s` | stick transition probability |
-+-------------------------+-----------------------------------------+
-| :math:`p_b` | branch transition probability |
-+-------------------------+-----------------------------------------+
-| :math:`l_m,l_d,l_s,l_b` | log of transition probabilities |
-+-------------------------+-----------------------------------------+
-| :math:`E[\rightarrow]` | expected LL from match or deletion |
-+-------------------------+-----------------------------------------+
-| :math:`E[\downarrow]` | expected LL from all insertions |
-+-------------------------+-----------------------------------------+
-| :math:`E[NN]` | mean LL from context |
-+-------------------------+-----------------------------------------+
-| :math:`E[M]` | mean logged match emission probability |
-+-------------------------+-----------------------------------------+
-| :math:`E[B]` | mean logged branch emission probability |
-+-------------------------+-----------------------------------------+
-| :math:`E[S]` | mean logged stick emission probability |
-+-------------------------+-----------------------------------------+
-| :math:`E[I]` | mean logged trans,emiss ins probability |
-+-------------------------+-----------------------------------------+
-
-Derivation:
-
-- :math:`E[NN] = E[\downarrow] + E[\rightarrow]`
-
-Break into simple match/delete and insert chains. Expected LL from
-context = expected LL from match/delete + expected LL from insertions
-
-- :math:`E[\rightarrow] = (l_m + E[M]) \frac{p_m}{p_m+p_d} + (l_d) \frac{p_d}{p_m+p_d}`
-
-Transistion weighted (LL from match trans+emis) and (LL from delete
-trans)
-
-- :math:`E[\downarrow]= E[I] \frac{p_s+p_b}{p_m+p_d}`
-
-Expected insertion LL weighted by expected length of insertion where
-:math:`(p_s+p_b)` is the probablity of looping in the insertion and
-:math:`(p_m+p_d)` is the probability of looping out.
-
-- :math:`E[I] = (l_b+E[B]+E[\rightarrow]) \frac{p_b}{p_b+p_s} + (l_s+E[S]+E[\rightarrow]) \frac{p_s}{p_b+p_s}`
-
-Transition weighted LL branch transition/emission and LL stick
-transition/emission within insertion. (Note this updates to three
-terms versus to two in the PBEP)
-
-For the second moment, we replace :math:`LL^2` for :math:`LL` in the
-above equations and are careful to carry the expectation of the
-likelihood or the expectation of the likelihood squared forward.
-
-
-+----------------------------------------------------------------------------+
-| Classic Identities: |
-+============================================================================+
-| :math:`E[X+Y]=E[X]+E[Y]` |
-+----------------------------------------------------------------------------+
-| :math:`Var(X) = E[X^2]-E^2[X]` |
-+----------------------------------------------------------------------------+
-| :math:`Var(X+Y) = Var(X) + Var(Y) + 2Cov(X,Y)` |
-+----------------------------------------------------------------------------+
-| :math:`E[a*X] = aE[X]` |
-+----------------------------------------------------------------------------+
-| :math:`Var(a*X) = a^2Var(X)` |
-+----------------------------------------------------------------------------+
-| :math:`E[XY]=E[X]E[Y]` if independent |
-+----------------------------------------------------------------------------+
-| :math:`\sum_{k=0}^\infty (1-p)^k*p*k*ll = ll*\frac{1-p}{p}` |
-+----------------------------------------------------------------------------+
-| :math:`\sum_{k=0}^\infty (1-p)^k*p*(k*ll)^2 = ll^2 \frac{(p-2)(p-1)}{p^2}` |
-+----------------------------------------------------------------------------+
-
-Z-Score Sanity Check
---------------------
+The idea of the Z-Score is to compute the expected mean and variance
+of the log likelihood (LL) of sequences output by a given HMM. Thus
+when presented with a sequence that has a certain log probability, we
+can reason how far removed it is to "normal" such that outliers can be
+filtered away. This Z-Score metric has shown some power at enabling
+us to filter out truly aberrant reads from consensus calling.
+
+The Arrow HMM model is a left-right "profile" HMM model; for each
+template position, the model will arrive at either the match or delete
+state corresponding to the template position, after sojourning through
+the preceding branch/stick states some number of times. A useful
+reduction of the model collapses the Branch and Stick states into an
+"E" ("Extra") state, and the Match/Delete states into an "N" ("Next")
+state . The following figure shows what the states look like
+corresponding to each template position.
+
+.. figure:: img/ZScore-HMM-figures.jpeg
+
+ (a) shows the states and edges corresponding to a single template
+ position in the Arrow model; (b) shows a simplification where
+ where we have collapsed the states that advance in the template
+ (Match and Delete become "N" ("Next") and those that remain in
+ place (Branch and Stick become "E" ("Extra"))
+
+
+For each template position, then, we can calculate the expectation and
+variance of the loglikelihood of sojourning through the "Extra" states
+and finally arriving at a "Next" state (and performing all the
+associated emissions). The expectation of LL over all states is then
+the sum of the expectation over each state. We make independence
+assumptions about the loglikelihood contributions from each state,
+thus enabling the variance to be decomposed as a simple sum as well.
+
+Z-Score parameters computation
+------------------------------
+
+*(Note that we use the nonstandard abbreviation* :math:`\log^k x = (\log x)^k` *in the following.)*
+
+.. math::
+ \newcommand{\E}{\textrm{E}}
+ \newcommand{\Var}{\textrm{Var}}
+ \newcommand{\Cov}{\textrm{Cov}}
+ \newcommand{\ahrule}{\shortintertext{\rule{\textwidth}{0.5pt}}}
+ \newcommand{\phantomeq}{\phantom{{}={}}}
+
+*Definitions:*
+
+.. math::
+ \begin{aligned}
+ L &= \textrm{likelihood} \\
+ E\textrm{(xtra)} &= B\textrm{(ranch or cognate extra)} + S\textrm{(tick or non-cognate extra)} \\
+ N\textrm{(ext)} &= M\textrm{(atch or incorporation)} + D\textrm{(eletion)} \\
+ \mathbb{O} &= \textrm{set of emission outcomes} \\
+ p_B &= \textrm{probability of a cognate extra} \\
+ p_S &= \textrm{probability of a non-cognate extra} \\
+ p_M &= \textrm{probability of an incorporation} \\
+ p_D &= \textrm{probability of a deletion} \\
+ p_E &= p_B + p_S \\
+ p_N &= p_M + p_D \\
+ p_N + p_E &= p_B + p_S + p_M + p_D = 1
+ \end{aligned}
+
+-------
+
+*Identities:*
+
+.. math::
+ \begin{aligned}
+ \sum_{k=0}^{\infty} p^k &= \frac{1}{1-p}, \textrm{ given } |p| < 1 \\
+ \sum_{k=0}^{\infty} k p^k &= \frac{p}{(1-p)^2}, \textrm{ given } |p| < 1 \\
+ \sum_{k=0}^{\infty} k^2 p^k &= \frac{p(1+p)}{(1-p)^3}, \textrm{ given } |p| < 1 \\
+ \end{aligned}
+
+-------
+
+*Expected loglikelihood contribution from each state type:*
+
+.. math::
+ \E[\log L] &= \textrm{expected log-likelihood of the model} \\
+ \E[\log B] &= \textstyle{\sum_{o \in \mathbb{O}}} \Pr(o|B) \log \Pr(o|B) \\ % \textrm{expected log-likelihood of cognate extra emission} \\
+ \E[\log S] &= \textstyle{\sum_{o \in \mathbb{O}}} \Pr(o|S) \log \Pr(o|S) \\ % \textrm{expected log-likelihood of non-cognate extra emission} \\
+ \E[\log M] &= \textstyle{\sum_{o \in \mathbb{O}}} \Pr(o|M) \log \Pr(o|M) \\ % \textrm{expected log-likelihood of incorporation emission} \\
+ \E[\log E] &= \frac{p_B}{p_B + p_S} (\log p_B + \E[\log B]) + \frac{p_S}{p_B + p_S} (\log p_S + \E[\log S]) \\
+ \E[\log N] &= \frac{p_M}{p_M + p_D} (\log p_M + \E[\log M]) + \frac{p_D}{p_M + p_D} \log p_D \\
+
+
+-------
+
+*Second moments*
+
+.. math::
+ \E[\log^2 L] &= \textrm{expected squared log-likelihood of the model} \\
+ \E[\log^2 B] &= \textstyle{\sum_{o \in \mathbb{O}}} \Pr(o|B) \log^2 \Pr(o|B) \\ % \textrm{expected squared log-likelihood of cognate extra emission} \\
+ \E[\log^2 S] &= \textstyle{\sum_{o \in \mathbb{O}}} \Pr(o|S) \log^2 \Pr(o|S) \\ % \textrm{expected squared log-likelihood of non-cognate extra emission} \\
+ \E[\log^2 M] &= \textstyle{\sum_{o \in \mathbb{O}}} \Pr(o|M) \log^2 \Pr(o|M) \\ % \textrm{expected squared log-likelihood of incorporation emission} \\
+ \E[\log^2 E] &= \frac{p_B}{p_B + p_S} (\log^2 p_B + 2 \cdot \E[\log B] \log p_B + \E[\log^2 B]) \mathrel{+} \\
+ &\phantomeq \frac{p_S}{p_B + p_S} (\log^2 p_S + 2 \cdot \E[\log S] \log p_S + \E[\log^2 S]) \\
+ \E[\log^2 N] &= \frac{p_M}{p_M + p_D} (\log^2 p_M + 2 \cdot \E[\log M] \log p_M + \E[\log^2 M]) + \frac{p_D}{p_M + p_D} \log^2 p_D \\
+
+-------
+
+*Expected loglikelihood:*
+
+.. math::
+ \begin{align}
+ \E[\log L] &= p_N \sum_{k=0}^{\infty} p_E^k \E[\log E^k N] \\
+ &= p_N \sum_{k=0}^{\infty} p_E^k (k \E[\log E] + \E[\log N]) \\
+ &= p_N \E[\log E] \sum_{k=0}^{\infty} k p_E^k + p_N \E[\log N] \sum_{k=0}^{\infty} p_E^k \\
+ &= p_N \E[\log E] \frac{p_E}{p_N^2} + p_N \E[\log N] \frac{1}{p_N} \\
+ &= \frac{p_E}{p_N} \E[\log E] + \E[\log N]
+ \end{align}
+
+
+---------
+
+*Variance of loglikelihood*
+
+.. math::
+ \begin{align}
+ \Var(\log L) &= \E[\log^2 L] - (\E[\log L])^2 \\
+ &= p_N \sum_{k=0}^{\infty} p_E^k \E[(\log E^k N)^2] - (\E[\log L])^2 \\
+ &= p_N \sum_{k=0}^{\infty} p_E^k (k \E[\log E] + \E[\log N])^2 - (\E[\log L])^2 \\
+ &= p_N \sum_{k=0}^{\infty} p_E^k k^2 \E[\log^2 E] \mathrel{+} \\
+ &\phantomeq 2 p_N \sum_{k=0}^{\infty} p_E^k k \E[\log E] \E[\log N] \mathrel{+} \\
+ &\phantomeq p_N \sum_{k=0}^{\infty} p_E^k \E[\log^2 N] \mathrel{-} \\
+ &\phantomeq (\E[\log L])^2 \\
+ &= p_N \E[\log^2 E] \frac{p_E (1+p_E)}{p_N^3} \mathrel{+} \\
+ &\phantomeq 2 p_N \E[\log E] \E[\log N] \frac{p_E}{p_N^2} \mathrel{+} \\
+ &\phantomeq p_N \E[\log^2 N] \frac{1}{p_N} \mathrel{-} \\
+ &\phantomeq (\E[\log L])^2 \\
+ &= \frac{p_E (1 + p_E)}{p_N^2} \E[\log^2 E] + 2 \frac{p_E}{p_N} \E[\log E] \E[\log N] + \E[\log^2 N] - (\E[\log L])^2
+ \end{align}
-As a sanity check we generated random deviates using a simple HMM with
-varying number of substates, computed means and variances, and
-compared to the computed expected values.
-
-The means and variances are close computed versus estimated.
-
-+-------+----------+---------+----------+--------+
-| size | mean | var | compmean | compvar|
-+=======+==========+=========+==========+========+
-| 32 |-26.65075 |59.80562 |-27.13874 |68.15969|
-+-------+----------+---------+----------+--------+
-| 60 |-50.99983 | 121.535 |-50.88515 |127.7994|
-+-------+----------+---------+----------+--------+
-| 120 |-101.8052 |256.4235 |-101.7703 |255.5988|
-+-------+----------+---------+----------+--------+
-| 240 |-202.6475 |473.0255 |-203.5406 |511.1977|
-+-------+----------+---------+----------+--------+
-| 480 |-407.2655 |1073.169 |-407.0812 |1022.395|
-+-------+----------+---------+----------+--------+
-
-Real-world performance on RSII data shows that the Z-score does have
-good performance in filtering garbage reads. Because we are able to
-adjust the Z-Score threshold, good performance is obtained.
Z-Score Shortcomings
--------------------
-The bursty errors occur in localized regions. For a long read, these
-localized bursts might not be detected by the Z-score metric. Overall
-the number of errors, if they were randomly distributed across the
-read, might be within what might be expected normally. The fact that
-they are all localized is what makes it abnormal.
+Unfortunately, a small region of deviance may not be noticed in a long
+read---bursty errors occur in localized regions. Overall the number
+of errors, if they were randomly distributed across the read, might be
+within what might be expected normally. The fact that they are all
+localized is what makes it abnormal.
An HMM can identify these localized bursts. The Viterbi path assigns
each match/delete state to a position in the read
diff --git a/doc/ConsensusCore2-DesignAndImplementation/img/ZScore-HMM-figures.jpeg b/doc/ConsensusCore2-DesignAndImplementation/img/ZScore-HMM-figures.jpeg
new file mode 100644
index 0000000..5f929c8
Binary files /dev/null and b/doc/ConsensusCore2-DesignAndImplementation/img/ZScore-HMM-figures.jpeg differ
diff --git a/doc/ConsensusCore2-DesignAndImplementation/pacbioHMM.svg.png b/doc/ConsensusCore2-DesignAndImplementation/img/pacbioHMM.svg.png
similarity index 100%
rename from doc/ConsensusCore2-DesignAndImplementation/pacbioHMM.svg.png
rename to doc/ConsensusCore2-DesignAndImplementation/img/pacbioHMM.svg.png
diff --git a/include/pacbio/Version.h.in b/include/pacbio/Version.h.in
index 430b5e4..f52d813 100644
--- a/include/pacbio/Version.h.in
+++ b/include/pacbio/Version.h.in
@@ -37,6 +37,7 @@
#pragma once
+#include <algorithm>
#include <string>
namespace PacBio {
diff --git a/include/pacbio/ccs/Consensus.h b/include/pacbio/ccs/Consensus.h
index 5cf998c..6104f46 100644
--- a/include/pacbio/ccs/Consensus.h
+++ b/include/pacbio/ccs/Consensus.h
@@ -62,8 +62,8 @@
#include <pacbio/data/ReadId.h>
#include <pacbio/data/SubreadResultCounter.h>
#include <pacbio/denovo/SparsePoa.h>
-#include <pacbio/log/Logging.h>
#include <pacbio/util/Timer.h>
+#include <pbcopper/logging/Logging.h>
namespace PacBio {
namespace CCS {
@@ -325,13 +325,17 @@ bool ReadAccuracyDescending(const std::pair<size_t, const TRead*>& a,
} // namespace anonymous
+/// \returns a std::pair containing a std::string for the consensus, and a size_t
+// describing the number of adapter-to-adapter reads successfully added
template <typename TRead>
-std::string PoaConsensus(const std::vector<const TRead*>& reads,
- std::vector<SparsePoa::ReadKey>* readKeys,
- std::vector<PoaAlignmentSummary>* summaries, const size_t maxPoaCov)
+std::pair<std::string, size_t> PoaConsensus(const std::vector<const TRead*>& reads,
+ std::vector<SparsePoa::ReadKey>* readKeys,
+ std::vector<PoaAlignmentSummary>* summaries,
+ const size_t maxPoaCov)
{
SparsePoa poa;
size_t cov = 0;
+ size_t nPasses = 0;
#if 0
// create a vector of indices into the original reads vector,
@@ -353,13 +357,16 @@ std::string PoaConsensus(const std::vector<const TRead*>& reads,
// SparsePoa::ReadKey key = poa.OrientAndAddRead(read.second->Seq);
// readKeys->at(read.first) = key;
readKeys->emplace_back(key);
- if (key >= 0 && (++cov) >= maxPoaCov) break;
+ if (key >= 0) {
+ if (read->Flags & BAM::ADAPTER_BEFORE && read->Flags & BAM::ADAPTER_AFTER) ++nPasses;
+ if ((++cov) >= maxPoaCov) break;
+ }
}
// at least 50% of the reads should cover
// TODO(lhepler) revisit this minimum coverage equation
const size_t minCov = (cov < 5) ? 1 : (cov + 1) / 2 - 1;
- return poa.FindConsensus(minCov, &(*summaries))->Sequence;
+ return std::make_pair(poa.FindConsensus(minCov, &(*summaries))->Sequence, nPasses);
}
// pass unique_ptr by reference to satisfy finickyness wrt move semantics in <future>
@@ -424,7 +431,9 @@ ResultType<ConsensusType> Consensus(std::unique_ptr<std::vector<TChunk>>& chunks
std::vector<SparsePoa::ReadKey> readKeys;
std::vector<PoaAlignmentSummary> summaries;
- std::string poaConsensus =
+ std::string poaConsensus;
+ size_t nPasses = 0;
+ std::tie(poaConsensus, nPasses) =
PoaConsensus(reads, &readKeys, &summaries, settings.MaxPoaCoverage);
if (poaConsensus.length() < settings.MinLength) {
@@ -447,7 +456,7 @@ ResultType<ConsensusType> Consensus(std::unique_ptr<std::vector<TChunk>>& chunks
result.Success += 1;
result.SubreadCounter.Success += activeReads;
result.emplace_back(ConsensusType{
- PolishResult(), chunk.Id, boost::none, poaConsensus, qvs, possiblePasses, 0, 0,
+ PolishResult(), chunk.Id, boost::none, poaConsensus, qvs, nPasses, 0, 0,
std::vector<double>(1), result.SubreadCounter.ReturnCountsAsArray(),
chunk.SignalToNoise, timer.ElapsedMilliseconds(), chunk.Barcodes});
} else {
diff --git a/include/pacbio/ccs/ConsensusSettings.h b/include/pacbio/ccs/ConsensusSettings.h
index 3e298c4..1bf57db 100644
--- a/include/pacbio/ccs/ConsensusSettings.h
+++ b/include/pacbio/ccs/ConsensusSettings.h
@@ -41,6 +41,7 @@
#include <thread>
#include <pbcopper/cli/CLI.h>
+#include <pbcopper/logging/Logging.h>
#include <pacbio/data/PlainOption.h>
@@ -56,7 +57,7 @@ struct ConsensusSettings
const size_t ChunkSize = 1;
bool ForceOutput;
std::string LogFile;
- std::string LogLevel;
+ Logging::LogLevel LogLevel;
double MaxDropFraction;
size_t MaxLength;
const size_t MaxPoaCoverage = std::numeric_limits<size_t>::max();
diff --git a/include/pacbio/consensus/AbstractIntegrator.h b/include/pacbio/consensus/AbstractIntegrator.h
index 536ff33..21401f3 100644
--- a/include/pacbio/consensus/AbstractIntegrator.h
+++ b/include/pacbio/consensus/AbstractIntegrator.h
@@ -58,7 +58,7 @@ struct IntegratorConfig
double MinZScore;
double ScoreDiff;
- IntegratorConfig(double minZScore = -3.5, double scoreDiff = 12.5);
+ IntegratorConfig(double minZScore = -3.4, double scoreDiff = 12.5);
};
/// At its core, this class holds a vector of Evaluators and provides helper
@@ -73,6 +73,10 @@ public:
virtual char operator[](size_t i) const = 0;
virtual operator std::string() const = 0;
+ /// This method throws InvalidEvaluatorException, every time the likelihood
+ /// can't be computed for one Evaluator; the respective Evaluator will be invalidated.
+ /// You MUST recompute the LLs for all your mutations of interest, as the
+ /// number of active Evaluators changed.
virtual double LL(const Mutation& mut);
virtual double LL() const;
@@ -87,10 +91,15 @@ public:
virtual PacBio::Data::State AddRead(const PacBio::Data::MappedRead& read) = 0;
/// Given a Mutation of interest, returns a vector of LLs,
- /// one LL per Evaluator, even for inactive ones.
+ /// one LL per active Evaluator; invalid Evaluators are omitted.
+ ///
+ /// This method throws InvalidEvaluatorException, every time the likelihood
+ /// can't be computed for one Evaluator; the respective Evaluator will be invalidated.
+ /// You MUST recompute the LLs for all your mutations of interest, as the
+ /// number of active Evaluators changed.
std::vector<double> LLs(const Mutation& mut);
- /// Using the current template, returns a vector of LLs,
- /// one LL per Evaluator, even for inactive ones.
+ /// Return the LL for each Evaluator, even invalid ones.
+ /// DO NOT use this in production code, only for debugging purposes.
std::vector<double> LLs() const;
/// For each Evaluator, returns the read name.
std::vector<std::string> ReadNames() const;
@@ -154,13 +163,6 @@ private:
}
};
-/// Accumulate all non inf or -inf doubles.
-inline double AccumulateNoInf(std::vector<double> input)
-{
- const auto AddNoInf = [](double a, double b) { return a + (std::isinf(b) ? 0.0 : b); };
- return std::accumulate(input.cbegin(), input.cend(), 0.0, AddNoInf);
-}
-
/// Helper function to get maximal number from a vector.
template <typename T>
inline T MaxElement(const std::vector<T>& in)
diff --git a/include/pacbio/consensus/Evaluator.h b/include/pacbio/consensus/Evaluator.h
index 2804343..db2b2a1 100644
--- a/include/pacbio/consensus/Evaluator.h
+++ b/include/pacbio/consensus/Evaluator.h
@@ -111,6 +111,10 @@ public:
/// Returns the LL of the Read, given the mutated template.
/// Returns -INF if deactivated.
+ ///
+ /// Throws an exception if the mutation caused a corner-cause failure.
+ /// In this case, the Evaluator gets deactivated. You MUST recompute the
+ /// LLs for all your mutations of interest, as this Evaluator will be invalid.
double LL(const Mutation& mut);
/// Returns the LL of the Read, given the current template.
@@ -143,9 +147,14 @@ public:
/// Returns -INF if deactivated.
int NumFlipFlops() const;
- /// Invalides this Evaluator and releases its implementation.
+ /// Manually releases this Evaluator from its implementation.
+ /// Cannot be used afterwards.
void Release();
+ /// For internal purposes:
+ /// Invalidates this Evaluator and releases its implementation.
+ void Invalidate();
+
public:
const AbstractMatrix& Alpha() const;
const AbstractMatrix& Beta() const;
diff --git a/include/pacbio/consensus/MonoMolecularIntegrator.h b/include/pacbio/consensus/MonoMolecularIntegrator.h
index 1209d02..ee4dac3 100644
--- a/include/pacbio/consensus/MonoMolecularIntegrator.h
+++ b/include/pacbio/consensus/MonoMolecularIntegrator.h
@@ -74,6 +74,11 @@ public:
operator std::string() const override;
/// Computes the LL sum of all Evaluators, given a templated mutated by mut.
+ ///
+ /// This method throws InvalidEvaluatorException, every time the likelihood
+ /// can't be computed for one Evaluator; the respective Evaluator will be invalidated.
+ /// You MUST recompute the LLs for all your mutations of interest, as the
+ /// number of active Evaluators changed.
double LL(const Mutation& mut) override;
/// Computes the LL sum of all Evaluators, given the current template.
inline double LL() const override { return AbstractIntegrator::LL(); }
diff --git a/include/pacbio/data/State.h b/include/pacbio/data/State.h
index 3919bf4..2c8a87e 100644
--- a/include/pacbio/data/State.h
+++ b/include/pacbio/data/State.h
@@ -47,12 +47,14 @@ enum struct State : uint8_t
POOR_ZSCORE,
TEMPLATE_TOO_SMALL,
MANUALLY_RELEASED,
+ INVALID,
SIZE
};
-static const char* StateName[] = {"VALID", "ALPHA/BETA MISMATCH", "POOR Z-SCORE",
- "TEMPLATE TOO SMALL", "MANUALLY RELEASED"};
+static const char* StateName[] = {
+ "VALID", "ALPHA/BETA MISMATCH", "POOR Z-SCORE", "TEMPLATE TOO SMALL", "MANUALLY RELEASED",
+ "INVALID"};
inline std::ostream& operator<<(std::ostream& os, State result)
{
diff --git a/include/pacbio/denovo/PoaGraph.h b/include/pacbio/denovo/PoaGraph.h
index d651d83..c052eaf 100644
--- a/include/pacbio/denovo/PoaGraph.h
+++ b/include/pacbio/denovo/PoaGraph.h
@@ -107,6 +107,8 @@ public:
void CommitAdd(PoaAlignmentMatrix* mat, std::vector<Vertex>* readPathOutput = NULL);
+ void PruneGraph(const int minCoverage);
+
// ----------
size_t NumReads() const;
diff --git a/include/pacbio/denovo/SparsePoa.h b/include/pacbio/denovo/SparsePoa.h
index fdc6371..9ea5a0a 100644
--- a/include/pacbio/denovo/SparsePoa.h
+++ b/include/pacbio/denovo/SparsePoa.h
@@ -146,7 +146,7 @@ public:
// Clean up the POA graph, pruning minority paths, to speed up
// successive AddRead operations.
//
- void PruneGraph(float minCoverageFraction);
+ void PruneGraph(int minCoverage);
private:
void repCheck();
diff --git a/include/pacbio/data/State.h b/include/pacbio/exception/InvalidEvaluatorException.h
similarity index 78%
copy from include/pacbio/data/State.h
copy to include/pacbio/exception/InvalidEvaluatorException.h
index 3919bf4..0552515 100644
--- a/include/pacbio/data/State.h
+++ b/include/pacbio/exception/InvalidEvaluatorException.h
@@ -35,29 +35,17 @@
#pragma once
-#include <iostream>
+#include <stdexcept>
+#include <string>
namespace PacBio {
-namespace Data {
+namespace Exception {
-enum struct State : uint8_t
+class InvalidEvaluatorException : public std::runtime_error
{
- VALID = 0,
- ALPHA_BETA_MISMATCH,
- POOR_ZSCORE,
- TEMPLATE_TOO_SMALL,
- MANUALLY_RELEASED,
-
- SIZE
+public:
+ InvalidEvaluatorException(const std::string& msg) : std::runtime_error(msg) {}
};
-static const char* StateName[] = {"VALID", "ALPHA/BETA MISMATCH", "POOR Z-SCORE",
- "TEMPLATE TOO SMALL", "MANUALLY RELEASED"};
-
-inline std::ostream& operator<<(std::ostream& os, State result)
-{
- os << PacBio::Data::StateName[static_cast<size_t>(result)];
- return os;
-}
-}
-} //::PacBio::Data
\ No newline at end of file
+} // namespace Exception
+} // namespace PacBio
\ No newline at end of file
diff --git a/include/pacbio/log/Logging.h b/include/pacbio/log/Logging.h
deleted file mode 100644
index b55a1b7..0000000
--- a/include/pacbio/log/Logging.h
+++ /dev/null
@@ -1,406 +0,0 @@
-// Copyright (c) 2014-2015, Pacific Biosciences of California, Inc.
-//
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted (subject to the limitations in the
-// disclaimer below) provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-//
-// * Neither the name of Pacific Biosciences nor the names of its
-// contributors may be used to endorse or promote products derived
-// from this software without specific prior written permission.
-//
-// NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
-// GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC
-// BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
-// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-// SUCH DAMAGE.
-
-// Author: Lance Hepler
-
-#pragma once
-
-#include <chrono>
-#include <condition_variable>
-#include <csignal>
-#include <cstdlib>
-#include <ctime>
-#include <exception>
-#include <functional>
-#include <iomanip>
-#include <iostream>
-#include <map>
-#include <memory>
-#include <mutex>
-#include <queue>
-#include <sstream>
-#include <stdexcept>
-#include <string>
-#include <thread>
-#include <utility>
-
-namespace PacBio {
-namespace Logging {
-
-// borrowed a little from primary's SmartEnum
-class LogLevel
-{
-public:
- LogLevel(const unsigned char value) : value_{value} {}
- LogLevel(const std::string& value) : value_{FromString(value)} {}
- enum : unsigned char
- {
- TRACE = 0,
- DEBUG = 1,
- INFO = 2,
- NOTICE = 3,
- WARN = 4,
- ERROR = 5,
- CRITICAL = 6,
- FATAL = 7
- };
-
- operator unsigned char() const { return value_; }
-private:
- inline static LogLevel FromString(const std::string& level)
- {
- if (level == "TRACE") return LogLevel::TRACE;
- if (level == "DEBUG") return LogLevel::DEBUG;
- if (level == "INFO") return LogLevel::INFO;
- if (level == "NOTICE") return LogLevel::NOTICE;
- if (level == "WARN") return LogLevel::WARN;
- if (level == "ERROR") return LogLevel::ERROR;
- if (level == "CRITICAL") return LogLevel::CRITICAL;
- if (level == "FATAL") return LogLevel::FATAL;
- throw std::invalid_argument("invalid log level");
- }
-
-private:
- unsigned char value_;
-};
-
-class LoggerConfig : public std::map<LogLevel, std::vector<std::reference_wrapper<std::ostream>>>
-{
-public:
- LoggerConfig(const std::map<LogLevel, std::vector<std::reference_wrapper<std::ostream>>>& cfg)
- : std::map<LogLevel, std::vector<std::reference_wrapper<std::ostream>>>(cfg)
- {
- }
-
- LoggerConfig(
- const std::map<std::string, std::vector<std::reference_wrapper<std::ostream>>>& cfg)
- {
- for (const auto& kv : cfg)
- (*this)[kv.first] = kv.second;
- }
-
- LoggerConfig(std::ostream& os, const LogLevel level = LogLevel::INFO)
- {
- for (size_t i = static_cast<size_t>(level); i < 8; ++i)
- (*this)[static_cast<LogLevel>(i)].push_back(os);
- }
-
- LoggerConfig(std::ostream& os, const std::string& level) : LoggerConfig(os, LogLevel(level)) {}
-};
-
-// necessary fwd decl
-class LogMessage;
-
-class Logger
-{
-public:
- template <typename... Args>
- Logger(Args&&... args)
- : cfg_(std::forward<Args>(args)...), writer_(&Logger::MessageWriter, this)
- {
-#ifdef NDEBUG
- if (Handles(LogLevel::TRACE))
- throw std::invalid_argument("one cannot simply log TRACE messages in release builds!");
-#endif
- }
-
- Logger(const Logger& logger) = delete;
-
- ~Logger()
- {
- if (!writer_.joinable()) throw std::runtime_error("this logger is already dead!");
-
- // place a terminal sentinel for MessageWriter to know it's done
- {
- std::lock_guard<std::mutex> g(m_);
- queue_.emplace(std::unique_ptr<std::pair<LogLevel, std::ostringstream>>());
- }
- pushed_.notify_all();
-
- // wait for everything to be flushed
- {
- std::unique_lock<std::mutex> lk(m_);
- popped_.wait(lk, [this]() { return queue_.empty(); });
- // endl implicitly flushes, so no need to call os_.flush() here
- }
-
- // join writer thread
- writer_.join();
- }
-
- static inline Logger& Default(Logger* logger = nullptr)
- {
- static std::unique_ptr<Logger> logger_(new Logger(std::cerr));
- if (logger) logger_.reset(logger);
- return *logger_;
- }
-
-private:
- inline bool Handles(const LogLevel level) const
- {
- return cfg_.find(level) != cfg_.end() && !cfg_.at(level).empty();
- }
-
- inline Logger& operator<<(std::unique_ptr<std::pair<LogLevel, std::ostringstream>>&& ptr)
- {
- if (!writer_.joinable()) throw std::runtime_error("this logger is dead!");
-
- {
- std::lock_guard<std::mutex> g(m_);
- queue_.emplace(
- std::forward<std::unique_ptr<std::pair<LogLevel, std::ostringstream>>>(ptr));
- }
- pushed_.notify_all();
- return *this;
- }
-
- void MessageWriter()
- {
- while (true) {
- std::unique_ptr<std::pair<LogLevel, std::ostringstream>> ptr;
-
- // wait on messages to arrive in the queue_, and pop them off
- {
- std::unique_lock<std::mutex> lk(m_);
- pushed_.wait(lk, [&ptr, this]() {
- if (queue_.empty()) return false;
-
- ptr = std::move(queue_.front());
- queue_.pop();
-
- return true;
- });
- }
-
- // if we've reached the null terminator, notify flush and stop
- if (!ptr) {
- popped_.notify_all();
- break;
- }
-
- // otherwise, push the message onto os_
- const LogLevel level = std::get<0>(*ptr);
- if (cfg_.find(level) != cfg_.end())
- for (const auto& os : cfg_.at(level))
- os.get() << std::get<1>(*ptr).str() << std::endl;
-
- // and notify flush we delivered a message to os_,
- popped_.notify_all();
- }
- }
-
-private:
- std::mutex m_;
- LoggerConfig cfg_;
- std::condition_variable popped_;
- std::condition_variable pushed_;
- std::queue<std::unique_ptr<std::pair<LogLevel, std::ostringstream>>> queue_;
- std::thread writer_;
-
- friend class LogMessage;
-};
-
-class LogMessage
-{
-public:
- LogMessage(const char* file __attribute__((unused)),
- const char* function __attribute__((unused)),
- unsigned int line __attribute__((unused)), const LogLevel level, Logger& logger)
- : logger_(logger)
- {
- using std::chrono::duration_cast;
- using std::chrono::milliseconds;
- using std::chrono::seconds;
- using std::chrono::system_clock;
-
- if (!logger_.Handles(level)) return;
-
- ptr_.reset(new std::pair<LogLevel, std::ostringstream>(
- std::piecewise_construct, std::forward_as_tuple(level), std::forward_as_tuple()));
-
- static const char* delim = " -|- ";
-
- // get the time, separated into seconds and milliseconds
- const auto now = system_clock::now();
- const auto secs = duration_cast<seconds>(now.time_since_epoch());
- const auto time = system_clock::to_time_t(system_clock::time_point(secs));
- const auto msec = duration_cast<milliseconds>(now.time_since_epoch() - secs).count();
-
- // format the time and print out the log header to the ostringstream
- // TODO(lhepler) make this std::put_time when we move to gcc-5
- char buf[20];
- std::strftime(buf, 20, "%Y%m%d %T.", std::gmtime(&time));
-
- std::get<1>(*ptr_) << ">|> " << buf << std::setfill('0') << std::setw(3)
- << std::to_string(msec) << delim << LogLevelRepr(level) << delim
- << function
-#ifndef NDEBUG
- << " at " << file << ':' << line
-#endif
- << delim << std::hex << std::showbase << std::this_thread::get_id()
- << std::noshowbase << std::dec << "||" << delim;
- }
-
- LogMessage(const LogMessage& msg) = delete;
-
- ~LogMessage()
- {
- if (ptr_) logger_ << std::move(ptr_);
- }
-
- template <typename T>
- inline LogMessage& operator<<(const T& t)
- {
- if (ptr_) std::get<1>(*ptr_) << t;
- return *this;
- }
-
-private:
- static const char* LogLevelRepr(LogLevel level)
- {
- // by specification these are all of length 10
- switch (level) {
- case LogLevel::TRACE:
- return "TRACE ";
- case LogLevel::DEBUG:
- return "DEBUG ";
- case LogLevel::INFO:
- return "INFO ";
- case LogLevel::NOTICE:
- return "NOTICE ";
- case LogLevel::WARN:
- return "WARN ";
- case LogLevel::ERROR:
- return "ERROR ";
- case LogLevel::CRITICAL:
- return "CRITICAL ";
- case LogLevel::FATAL:
- return "FATAL ";
- default:
- return "OTHER ";
- }
- }
-
-private:
- std::unique_ptr<std::pair<LogLevel, std::ostringstream>> ptr_;
- Logger& logger_;
-};
-
-// trace is disabled under Release builds (-DNDEBUG)
-#ifdef NDEBUG
-#define PBLOGGER_LEVEL(lg, lvl) \
- if (PacBio::Logging::lvl != PacBio::Logging::LogLevel::TRACE) \
- PacBio::Logging::LogMessage(__FILE__, __func__, __LINE__, PacBio::Logging::lvl, (lg))
-#else
-#define PBLOGGER_LEVEL(lg, lvl) \
- PacBio::Logging::LogMessage(__FILE__, __func__, __LINE__, PacBio::Logging::lvl, (lg))
-#endif
-
-#define PBLOGGER_TRACE(lg) PBLOGGER_LEVEL(lg, LogLevel::TRACE)
-#define PBLOGGER_DEBUG(lg) PBLOGGER_LEVEL(lg, LogLevel::DEBUG)
-#define PBLOGGER_INFO(lg) PBLOGGER_LEVEL(lg, LogLevel::INFO)
-#define PBLOGGER_NOTICE(lg) PBLOGGER_LEVEL(lg, LogLevel::NOTICE)
-#define PBLOGGER_WARN(lg) PBLOGGER_LEVEL(lg, LogLevel::WARN)
-#define PBLOGGER_ERROR(lg) PBLOGGER_LEVEL(lg, LogLevel::ERROR)
-#define PBLOGGER_CRITICAL(lg) PBLOGGER_LEVEL(lg, LogLevel::CRITICAL)
-#define PBLOGGER_FATAL(lg) PBLOGGER_LEVEL(lg, LogLevel::FATAL)
-
-#define PBLOG_LEVEL(lvl) PBLOGGER_LEVEL(PacBio::Logging::Logger::Default(), lvl)
-
-#define PBLOG_TRACE PBLOG_LEVEL(LogLevel::TRACE)
-#define PBLOG_DEBUG PBLOG_LEVEL(LogLevel::DEBUG)
-#define PBLOG_INFO PBLOG_LEVEL(LogLevel::INFO)
-#define PBLOG_NOTICE PBLOG_LEVEL(LogLevel::NOTICE)
-#define PBLOG_WARN PBLOG_LEVEL(LogLevel::WARN)
-#define PBLOG_ERROR PBLOG_LEVEL(LogLevel::ERROR)
-#define PBLOG_CRITICAL PBLOG_LEVEL(LogLevel::CRITICAL)
-#define PBLOG_FATAL PBLOG_LEVEL(LogLevel::FATAL)
-
-inline void InstallSignalHandlers(Logger& logger = Logger::Default())
-{
- using std::raise;
- using std::signal;
-
- static Logger& logger_ = logger;
-
- std::set_terminate([]() {
- if (auto eptr = std::current_exception()) {
- try {
- std::rethrow_exception(eptr);
- } catch (const std::exception& e) {
- PBLOGGER_FATAL(logger_) << "caught exception: \"" << e.what() << '"';
- } catch (...) {
- PBLOGGER_FATAL(logger_) << "caught unknown exception type";
- }
- }
- // call the SIGABRT handler (below)
- std::abort();
- });
- signal(SIGABRT, [](int) {
- {
- PBLOGGER_FATAL(logger_) << "caught SIGABRT";
- }
- logger_.~Logger();
- signal(SIGABRT, SIG_DFL);
- raise(SIGABRT);
- });
- signal(SIGINT, [](int) {
- {
- PBLOGGER_FATAL(logger_) << "caught SIGINT";
- }
- logger_.~Logger();
- signal(SIGINT, SIG_DFL);
- raise(SIGINT);
- });
- signal(SIGSEGV, [](int) {
- {
- PBLOGGER_FATAL(logger_) << "caught SIGSEGV";
- }
- logger_.~Logger();
- signal(SIGSEGV, SIG_DFL);
- raise(SIGSEGV);
- });
- signal(SIGTERM, [](int) {
- {
- PBLOGGER_FATAL(logger_) << "caught SIGTERM";
- }
- logger_.~Logger();
- signal(SIGTERM, SIG_DFL);
- raise(SIGTERM);
- });
-}
-
-} // namespace Logging
-} // namespace PacBio
diff --git a/build.sh b/scripts/ci/build.sh
old mode 100644
new mode 100755
similarity index 95%
rename from build.sh
rename to scripts/ci/build.sh
index 2595f77..13ef668
--- a/build.sh
+++ b/scripts/ci/build.sh
@@ -1,4 +1,5 @@
#!/bin/bash
+set -euo pipefail
# Function definitions
GetBBRepo () {
@@ -33,9 +34,9 @@ module load git gcc/5.3.0 python/2.7.9 cmake cram swig ccache virtualenv zlib/1.
echo "#############################"
echo "# EXTERNAL DEPENDENCIES"
echo "## Create external dependency directory"
-if [ ! -d _deps ] ; then mkdir _deps ; fi
+if [ ! -d _deps ] ; then mkdir _deps ; fi
echo "## Create reverse external dependency directory"
-if [ ! -d _rev_deps ] ; then mkdir _rev_deps ; fi
+if [ ! -d _rev_deps ] ; then mkdir _rev_deps ; fi
GetBBRepo GenomicConsensus _rev_deps
GetBBRepo ConsensusCore _deps
@@ -57,7 +58,9 @@ echo "## Create missing virtualenv"
if [ ! -d unyve ] ; then /mnt/software/v/virtualenv/13.0.1/virtualenv.py unyve ; fi
echo "## Get into virtualenv"
+set +u
source unyve/bin/activate
+set -u
echo "## Install pip modules"
pip install --upgrade pip
@@ -77,7 +80,6 @@ echo "## Build source"
( cd build &&\
rm -rf * &&\
CMAKE_BUILD_TYPE=ReleaseWithAssert cmake -DZLIB_INCLUDE_DIR=/mnt/software/z/zlib/1.2.5/include -DZLIB_LIBRARY=/mnt/software/z/zlib/1.2.5/lib/libz.so -DCMAKE_EXE_LINKER_FLAGS="-static-libstdc++" -GNinja .. )
-( cd build && ninja htslibSrc )
( cd build && ninja )
echo "## pip install CC2"
@@ -100,4 +102,6 @@ python -c "import ConsensusCore2 ; print ConsensusCore2.__version__"
echo "## Test CC2 via GC"
( cd _rev_deps/GenomicConsensus && make check )
-deactivate
\ No newline at end of file
+set +u
+deactivate
+set -u
\ No newline at end of file
diff --git a/scripts/ci/checkout-submodules.sh b/scripts/ci/checkout-submodules.sh
new file mode 100755
index 0000000..d3c3835
--- /dev/null
+++ b/scripts/ci/checkout-submodules.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+set -euo pipefail
+
+echo "## Fetch submodules"
+source /mnt/software/Modules/current/init/bash
+module load git
+
+# Bamboo's checkout of unanimity doesn't set the "origin" remote to
+# something meaningful, which means we can't resolve the relative
+# submodules. Override the remote here.
+git remote set-url origin ssh://git@bitbucket.nanofluidics.com:7999/sat/unanimity.git
+
+git submodule update --init --remote
diff --git a/scripts/makeChangeLog.py b/scripts/makeChangeLog.py
deleted file mode 100644
index 5623b60..0000000
--- a/scripts/makeChangeLog.py
+++ /dev/null
@@ -1,31 +0,0 @@
-""" File to generate a CHANGELOG from git commits. This will parse the git log
-command and convert any commit with `**` in the title into a changelog event """
-
-cl = open("CHANGELOG", 'w')
-cl.write("Recent Program Changes:\n\n")
-
-import os
-from subprocess import *
-
-GIT_COMMIT_FIELDS = ['id', 'author_name', 'author_email', 'date', 'message']
-GIT_LOG_FORMAT = ['%H', '%an', '%ae', '%ad', '%s']
-
-p = Popen('git log --format="%s"' % GIT_LOG_FORMAT, shell=True, stdout=PIPE)
-(log, _) = p.communicate()
-log = log.strip().split("\n")
-
-log = [row.strip().replace("'","").split(",") for row in log]
-log = [dict(zip(GIT_COMMIT_FIELDS, row)) for row in log]
-
-for commit in log:
- msg = commit["message"]
- if msg.count("**") > 0:
- dt = commit["date"].split(" ")
- date = "-".join(dt[2:4])
- msg = msg.replace("]","").replace("**","")
- id = commit["id"][1:7]
- cl.write("\t*" + " " + msg + " " + date + " " + id + "\n")
-
-cl.write("\n\nFile is automatically created by makeChangeLog.py\n\n\n")
-
-cl.close()
\ No newline at end of file
diff --git a/scripts/nightly/build.sh b/scripts/nightly/build.sh
new file mode 100755
index 0000000..0bb3b82
--- /dev/null
+++ b/scripts/nightly/build.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+set -euo pipefail
+
+echo "# DEPENDENCIES"
+echo "## Load modules"
+source /mnt/software/Modules/current/init/bash
+module load git gcc/5.3.0 python/2.7.9 cmake swig ccache virtualenv zlib/1.2.5 ninja boost
+
+echo "## Get into virtualenv"
+if [ ! -d venv ]
+then
+ /mnt/software/v/virtualenv/13.0.1/virtualenv.py venv
+fi
+set +u
+source venv/bin/activate
+set -u
+
+echo "## Install pip modules"
+pip install --upgrade pip
+pip install cram nose
+
+pip install xmlbuilder jsonschema avro requests iso8601
+pip install --no-deps git+https://github.com/PacificBiosciences/pbcommand.git
+
+pip install numpy cython h5py pysam
+pip install --no-deps git+https://github.com/PacificBiosciences/pbcore.git
+
+# pip install jinja2 networkx xmlbuilder requests fabric
+# pip install --no-deps git+https://github.com/PacificBiosciences/pbsmrtpipe.git
+
+echo "## Fetch unanimity submodules"
+( git submodule update --init --remote )
+
+echo "# BUILD"
+echo "## Create build directory "
+if [ ! -d build ] ; then mkdir build ; fi
+
+echo "## Build source"
+( cd build &&\
+ rm -rf * &&\
+ CMAKE_BUILD_TYPE=ReleaseWithAssert cmake -DZLIB_INCLUDE_DIR=/mnt/software/z/zlib/1.2.5/include -DZLIB_LIBRARY=/mnt/software/z/zlib/1.2.5/lib/libz.so -DCMAKE_EXE_LINKER_FLAGS="-static-libstdc++" -GNinja .. )
+( cd build && ninja )
diff --git a/scripts/nightly/checkout-submodules.sh b/scripts/nightly/checkout-submodules.sh
new file mode 100755
index 0000000..d3c3835
--- /dev/null
+++ b/scripts/nightly/checkout-submodules.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+set -euo pipefail
+
+echo "## Fetch submodules"
+source /mnt/software/Modules/current/init/bash
+module load git
+
+# Bamboo's checkout of unanimity doesn't set the "origin" remote to
+# something meaningful, which means we can't resolve the relative
+# submodules. Override the remote here.
+git remote set-url origin ssh://git@bitbucket.nanofluidics.com:7999/sat/unanimity.git
+
+git submodule update --init --remote
diff --git a/scripts/nightly/test.sh b/scripts/nightly/test.sh
new file mode 100755
index 0000000..1c01590
--- /dev/null
+++ b/scripts/nightly/test.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+set -euo pipefail
+
+echo "# DEPENDENCIES"
+echo "## Load modules"
+source /mnt/software/Modules/current/init/bash
+module load gcc/5.3.0 python/2.7.9 zlib/1.2.5 graphviz samtools
+
+set +u
+source venv/bin/activate
+set -u
+
+echo "# TEST"
+echo "## Running internal tests"
+export
+__PBTEST_CCS_EXE="$(pwd -P)/build/ccs" cram -v --xunit-file=uny-internal-cram.xml tests/cram/internal/*.t
+
+set +u
+deactivate
+set -u
diff --git a/setup.py b/setup.py
index 5e2de22..45a9c1e 100644
--- a/setup.py
+++ b/setup.py
@@ -13,6 +13,11 @@ from setuptools import setup, Extension
from shutil import copy2, rmtree
from subprocess import Popen
+def iteritems(d):
+ if sys.version_info >= (3, 0):
+ return d.items()
+ return d.iteritems()
+
def ParseVersion():
thisDir = os.path.dirname(os.path.realpath(__file__))
cmakeLists = os.path.join(thisDir, "CMakeLists.txt")
@@ -81,7 +86,7 @@ class CMake(object):
def set_generator(self, gen):
if gen not in set(["Default", "Ninja"]):
- raise ValueError("valid generators must be in (default, ninja)")
+ raise ValueError("valid generators must be in (Default, Ninja)")
if gen == "Default":
gen = None
self.build = ["make"]
@@ -101,7 +106,7 @@ class CMake(object):
configure = copy(self.configure)
if self.generator:
configure.append("-G{0}".format(self.generator))
- for k, v in self.definitions.iteritems():
+ for k, v in iteritems(self.definitions):
configure.append("-D{0}={1}".format(k, v))
configure.append(sourceDir)
print("Configuring with command `{0}`".format(" ".join(configure)), file=sys.stderr)
@@ -124,16 +129,22 @@ class MyBuildExt(build_ext):
except OSError:
pass
env = os.environ.copy()
- cmake = CMake(env)
+ cmake = CMake(env, verbose=("--verbose" in sys.argv or "-v" in sys.argv))
cmake.add_definition_from_env("Boost_INCLUDE_DIRS")
cmake.add_definition_from_env("PYTHON_INCLUDE_DIRS")
+ cmake.add_definition_from_env("pbcopper_INCLUDE_DIRS")
+ cmake.add_definition_from_env("pbcopper_LIBRARIES")
+ cmake.add_definition_from_env("GIT_EXECUTABLE")
cmake.add_definition_from_env("SWIG_COMMAND")
+ cmake.add_definition_from_env("UNY_use_ccache")
cmake.add_definition_from_env("CMAKE_BUILD_TYPE", "RelWithDebInfo")
+ cmake.add_definition_from_env("PYTHON_EXECUTABLE", sys.executable)
cmake.add_definition("PYTHON_SWIG", "1")
cmake.add_definition("UNY_build_tests", "0")
cmake.add_definition("UNY_build_bin", "0")
- cmake.add_definition("PYTHON_EXECUTABLE", sys.executable)
- cmake.set_generator("Ninja" if which("ninja", env) else "Default")
+ availableGenerator = "Ninja" if which("ninja", env) else "Default"
+ desiredGenerator = cmake.env.get("CMAKE_GENERATOR", availableGenerator)
+ cmake.set_generator(desiredGenerator)
targets = ["_ConsensusCore2"]
try:
cmake(thisDir, self.build_temp, targets)
@@ -142,7 +153,7 @@ class MyBuildExt(build_ext):
rmtree(self.build_temp)
os.makedirs(self.build_temp)
cmake(thisDir, self.build_temp, targets)
- for fname in ("_ConsensusCore2.so", "__init__.py"):
+ for fname in ["_ConsensusCore2.so", "ConsensusCore2.py"]:
copy2(os.path.join(self.build_temp, "swig", "lib", fname), destDir)
setup(
@@ -153,8 +164,9 @@ setup(
url="http://www.github.com/PacificBiosciences/ConsensusCore2",
description="A library for generating consensus sequences for PacBio data",
license="BSD",
- ext_package="ConsensusCore2",
ext_modules=[Extension("_ConsensusCore2", [])],
+ package_dir={"": "swig"},
+ py_modules=["ConsensusCore2"],
install_requires=["numpy >= 1.6.0"],
setup_requires=["numpy >= 1.6.0"],
cmdclass={"build_ext": MyBuildExt}
diff --git a/src/AbstractIntegrator.cpp b/src/AbstractIntegrator.cpp
index 9a28404..969a4e8 100644
--- a/src/AbstractIntegrator.cpp
+++ b/src/AbstractIntegrator.cpp
@@ -42,6 +42,7 @@
#include <pacbio/consensus/AbstractIntegrator.h>
#include <pacbio/consensus/AbstractMatrix.h>
+#include <pacbio/exception/InvalidEvaluatorException.h>
#include <pacbio/data/Sequence.h>
@@ -51,6 +52,7 @@ namespace PacBio {
namespace Consensus {
using namespace PacBio::Data;
+using namespace PacBio::Exception;
namespace {
@@ -91,28 +93,50 @@ Data::State AbstractIntegrator::AddRead(std::unique_ptr<AbstractTemplate>&& tpl,
return evals_.back().Status();
}
-double AbstractIntegrator::LL(const Mutation& fwdMut) { return AccumulateNoInf(LLs(fwdMut)); }
+double AbstractIntegrator::LL(const Mutation& fwdMut)
+{
+ const auto lls = LLs(fwdMut);
+ return std::accumulate(lls.cbegin(), lls.cend(), 0.0);
+}
-double AbstractIntegrator::LL() const { return AccumulateNoInf(LLs()); }
+double AbstractIntegrator::LL() const
+{
+ const auto functor = [](const Evaluator& eval) { return eval.IsValid() ? eval.LL() : 0; };
+ const auto lls = TransformEvaluators<double>(functor);
+ return std::accumulate(lls.cbegin(), lls.cend(), 0.0);
+}
std::vector<double> AbstractIntegrator::LLs(const Mutation& fwdMut)
{
const Mutation revMut(ReverseComplement(fwdMut));
- const auto functor = [&fwdMut, &revMut](Evaluator& eval) {
- switch (eval.Strand()) {
+ // Compute individual LLs of each Evaluator
+ std::vector<double> lls;
+ lls.reserve(evals_.size());
+ for (auto& e : evals_) {
+ // Ignore invalid Evaluators
+ if (!e.IsValid()) continue;
+
+ double ll;
+
+ switch (e.Strand()) {
case StrandType::FORWARD:
- return eval.LL(fwdMut);
+ ll = e.LL(fwdMut);
+ break;
case StrandType::REVERSE:
- return eval.LL(revMut);
+ ll = e.LL(revMut);
+ break;
case StrandType::UNMAPPED:
- return NEG_DBL_INF;
+ // unmapped Evaluators should not be used
+ throw InvalidEvaluatorException("Unmapped read in mutation testing");
default:
throw std::runtime_error("Unknown StrandType");
}
- };
- return TransformEvaluators<double>(functor);
+ lls.emplace_back(ll);
+ }
+
+ return lls;
}
std::vector<double> AbstractIntegrator::LLs() const
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6231ddc..4d9c1ba 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -108,10 +108,6 @@ if (UNY_build_bin)
${CMAKE_DL_LIBS}
)
- if (TARGET htslib)
- add_dependencies(ccs htslib)
- endif()
-
if (TARGET pbbam)
add_dependencies(ccs pbbam)
endif()
diff --git a/src/ConsensusSettings.cpp b/src/ConsensusSettings.cpp
index 34244b5..27bd5c0 100644
--- a/src/ConsensusSettings.cpp
+++ b/src/ConsensusSettings.cpp
@@ -75,7 +75,7 @@ const PlainOption MinZScore{
{ "minZScore" },
"Minimum Z Score",
"Minimum z-score to use a subread. NaN disables this filter.",
- CLI::Option::FloatType(-3.5)
+ CLI::Option::FloatType(-3.4)
};
const PlainOption MaxDropFraction{
"max_drop_fraction",
@@ -89,7 +89,14 @@ const PlainOption NoPolish{
{ "noPolish" },
"No Polish CCS",
"Only output the initial template derived from the POA (faster, less accurate).",
- CLI::Option::BoolType()
+ CLI::Option::BoolType(false)
+};
+const PlainOption Polish{
+ "polish",
+ { "polish" },
+ "Polish CCS",
+ "Emit high-accuracy CCS sequences polished using the Arrow algorithm",
+ CLI::Option::BoolType(true)
};
const PlainOption MinReadScore{
"min_read_score",
@@ -149,13 +156,6 @@ const PlainOption LogFile{
"Log to a file, instead of STDERR.",
CLI::Option::StringType("")
};
-const PlainOption LogLevel{
- "log_level",
- { "logLevel" },
- "Set Log Level",
- "Set log level.",
- CLI::Option::StringType("INFO")
-};
const PlainOption RichQVs{
"rich_qvs",
{ "richQVs" },
@@ -184,7 +184,7 @@ ConsensusSettings::ConsensusSettings(const PacBio::CLI::Results& options)
: ByStrand(options[OptionNames::ByStrand])
, ForceOutput(options[OptionNames::ForceOutput])
, LogFile(std::forward<std::string>(options[OptionNames::LogFile]))
- , LogLevel(std::forward<std::string>(options[OptionNames::LogLevel]))
+ , LogLevel(options.LogLevel())
, MaxDropFraction(options[OptionNames::MaxDropFraction])
, MaxLength(options[OptionNames::MaxLength])
, MinLength(options[OptionNames::MinLength])
@@ -198,12 +198,25 @@ ConsensusSettings::ConsensusSettings(const PacBio::CLI::Results& options)
: static_cast<float>(options[OptionNames::MinZScore]))
, ModelPath(std::forward<std::string>(options[OptionNames::ModelPath]))
, ModelSpec(std::forward<std::string>(options[OptionNames::ModelSpec]))
- , NoPolish(options[OptionNames::NoPolish])
- , NThreads(ThreadCount(options[OptionNames::NumThreads]))
, ReportFile(std::forward<std::string>(options[OptionNames::ReportFile]))
, RichQVs(options[OptionNames::RichQVs])
, WlSpec(std::forward<std::string>(options[OptionNames::Zmws]))
{
+ // N.B. If the user somehow specifies both polish and noPolish, noPolish wins.
+ // Unfortunately there's no sensible way to check for this condition and error out.
+ // This could be improved upon in the pbcopper API, perhaps.
+ NoPolish = options[OptionNames::NoPolish] || !options[OptionNames::Polish];
+
+ // N.B. This is the trick to resolved nthreads from either our
+ // option or the "nproc" which has meaning in tool contracts.
+ // Derek says he may streamline the API in the future.
+ int requestedNThreads;
+ if (options.IsFromRTC()) {
+ requestedNThreads = options.NumProcessors();
+ } else {
+ requestedNThreads = options[OptionNames::NumThreads];
+ }
+ NThreads = ThreadCount(requestedNThreads);
}
size_t ConsensusSettings::ThreadCount(int n)
@@ -219,12 +232,15 @@ PacBio::CLI::Interface ConsensusSettings::CreateCLI(const std::string& descripti
const std::string& version)
{
using Option = PacBio::CLI::Option;
+ using Task = PacBio::CLI::ToolContract::Task;
+
PacBio::CLI::Interface i{"ccs", description, version};
i.AlternativeToolContractName("pbccs");
- i.AddHelpOption(); // use built-in help output
- i.AddVersionOption(); // use built-in version output
+ i.AddHelpOption(); // use built-in help output
+ i.AddLogLevelOption(); // use built-in logLevel option
+ i.AddVersionOption(); // use built-in version output
// clang-format off
i.AddPositionalArguments({
@@ -246,17 +262,17 @@ PacBio::CLI::Interface ConsensusSettings::CreateCLI(const std::string& descripti
OptionNames::MinReadScore,
OptionNames::ByStrand,
OptionNames::NoPolish,
+ OptionNames::Polish,
OptionNames::RichQVs,
OptionNames::ReportFile,
OptionNames::ModelPath,
OptionNames::ModelSpec,
OptionNames::NumThreads,
- OptionNames::LogFile,
- OptionNames::LogLevel
+ OptionNames::LogFile
});
const std::string id = "pbccs.tasks.ccs";
- CLI::ToolContract::Task tcTask(id);
+ Task tcTask(id);
tcTask.AddOption(OptionNames::MinSnr);
tcTask.AddOption(OptionNames::MinReadScore);
tcTask.AddOption(OptionNames::MaxLength);
@@ -265,11 +281,12 @@ PacBio::CLI::Interface ConsensusSettings::CreateCLI(const std::string& descripti
tcTask.AddOption(OptionNames::MinPredictedAccuracy);
tcTask.AddOption(OptionNames::MinZScore);
tcTask.AddOption(OptionNames::MaxDropFraction);
- tcTask.AddOption(OptionNames::NoPolish);
+ tcTask.AddOption(OptionNames::Polish);
tcTask.AddOption(OptionNames::ByStrand);
tcTask.AddOption(OptionNames::ModelPath);
tcTask.AddOption(OptionNames::ModelSpec);
tcTask.AddOption(OptionNames::ReportFile);
+ tcTask.NumProcessors(Task::MAX_NPROC);
tcTask.InputFileTypes({
{
@@ -283,8 +300,8 @@ PacBio::CLI::Interface ConsensusSettings::CreateCLI(const std::string& descripti
tcTask.OutputFileTypes({
{
"bam_output",
- "ConsensusReadSet",
- "Output DataSet XML file",
+ "Consensus Sequences",
+ "Consensus sequences generated by CCS2",
"PacBio.DataSet.ConsensusReadSet",
"ccs"
}
@@ -297,4 +314,4 @@ PacBio::CLI::Interface ConsensusSettings::CreateCLI(const std::string& descripti
return i;
}
}
-} // ::PacBio::CCS
\ No newline at end of file
+} // ::PacBio::CCS
diff --git a/src/Evaluator.cpp b/src/Evaluator.cpp
index e258ee9..5ea55c2 100644
--- a/src/Evaluator.cpp
+++ b/src/Evaluator.cpp
@@ -38,7 +38,9 @@
#include <string>
#include <pacbio/consensus/Evaluator.h>
+#include <pacbio/exception/InvalidEvaluatorException.h>
#include <pacbio/exception/StateError.h>
+#include <pbcopper/logging/Logging.h>
#include "EvaluatorImpl.h"
@@ -107,7 +109,19 @@ std::string Evaluator::ReadName() const
double Evaluator::LL(const Mutation& mut)
{
- if (IsValid()) return impl_->LL(mut);
+ if (IsValid()) {
+ double ll = impl_->LL(mut);
+
+ // If the mutation of interest caused a corner-case failure,
+ // release this Evaluator and report this issue via an exception.
+ if (std::isinf(ll)) {
+ const std::string name = ReadName();
+ Invalidate();
+ throw InvalidEvaluatorException("negative inf in mutation testing: '" + name + "'");
+ }
+
+ return ll;
+ }
return NEG_DBL_INF;
}
@@ -168,13 +182,15 @@ void Evaluator::Status(State nextState)
if (curState_ == State::VALID)
curState_ = nextState;
else
- std::cerr << "Log this behaviour and return" << std::endl;
+ PBLOG_ERROR << "Log this behaviour and return";
if (curState_ != State::VALID) impl_.reset(nullptr);
}
void Evaluator::Release() { Status(State::MANUALLY_RELEASED); }
+void Evaluator::Invalidate() { Status(State::INVALID); }
+
const AbstractMatrix& Evaluator::Alpha() const
{
if (IsValid()) {
@@ -214,9 +230,8 @@ const AbstractMatrix* Evaluator::BetaView(MatrixViewConvention c) const
void Evaluator::CheckZScore(const double minZScore, const std::string& model)
{
// the zscore filter is disabled under the following conditions
- // - unsupported model
- for (const auto& m : {"S/P1-C1", "S/P2-C2/prospective-compatible"})
- if (model.find(m) != std::string::npos) return;
+ // - unsupported model (anything not P6-C4)
+ if (model.find("P6-C4") == std::string::npos) return;
// - threshold undefined or too low
if (std::isnan(minZScore) || minZScore <= -100.0) return;
diff --git a/src/Polish.cpp b/src/Polish.cpp
index 8e92552..c274a35 100644
--- a/src/Polish.cpp
+++ b/src/Polish.cpp
@@ -46,8 +46,11 @@
#include <boost/optional.hpp>
+#include <pbcopper/logging/Logging.h>
+
#include <pacbio/consensus/AbstractIntegrator.h>
#include <pacbio/consensus/Polish.h>
+#include <pacbio/exception/InvalidEvaluatorException.h>
using namespace std;
@@ -202,14 +205,35 @@ PolishResult Polish(AbstractIntegrator* ai, const PolishConfig& cfg)
for (size_t i = 0; i < cfg.MaximumIterations; ++i) {
// find the best mutations given our parameters
{
- const double LL = ai->LL();
list<ScoredMutation> scoredMuts;
-
- for (const auto& mut : muts) {
- const double ll = ai->LL(mut);
- if (ll > LL) scoredMuts.emplace_back(mut.WithScore(ll));
- ++result.mutationsTested;
- }
+ int mutationsTested = 0;
+ bool hasNewInvalidEvaluator;
+
+ // Compute new sets of possible mutations until no Evaluators are
+ // being invalided.
+ do {
+ // Compute the LL only with the active Evaluators
+ const double LL = ai->LL();
+
+ hasNewInvalidEvaluator = false;
+ try {
+ // Get set of possible mutations
+ for (const auto& mut : muts) {
+ const double ll = ai->LL(mut);
+ if (ll > LL) scoredMuts.emplace_back(mut.WithScore(ll));
+ ++mutationsTested;
+ }
+ } catch (const Exception::InvalidEvaluatorException& e) {
+ // If an Evaluator exception occured,
+ // retry without problematic Evaluator
+ PBLOG_INFO << e.what();
+ hasNewInvalidEvaluator = true;
+ scoredMuts.clear();
+ mutationsTested = 0;
+ }
+ } while (hasNewInvalidEvaluator);
+
+ result.mutationsTested += mutationsTested;
// take best mutations in separation window, apply them
muts = BestMutations(&scoredMuts, cfg.MutationSeparation);
@@ -296,10 +320,20 @@ vector<int> ConsensusQualities(AbstractIntegrator& ai)
if (m.Start() > i) continue;
// TODO (lhepler): this is dumb, but untestable mutations,
// aka insertions at ends, cause all sorts of weird issues
- const double score = ai.LL(m) - LL;
- // this really should never happen
- if (score >= 0.0) continue;
- scoreSum += exp(score);
+ double score;
+ try {
+ score = ai.LL(m) - LL;
+ } catch (const Exception::InvalidEvaluatorException& e) {
+ // If an Evaluator exception occured, report and skip!
+ // We need to handle this!
+ std::string error = "In Polish::ConsensusQualities(ai): ";
+ error += e.what();
+ PBLOG_ERROR << error;
+ continue;
+ }
+ assert(score <= 0.0);
+
+ if (score < 0) scoreSum += exp(score);
}
quals.emplace_back(ScoreSumToQV(scoreSum));
}
diff --git a/src/SparsePoa.cpp b/src/SparsePoa.cpp
index 189944e..5821051 100644
--- a/src/SparsePoa.cpp
+++ b/src/SparsePoa.cpp
@@ -47,7 +47,7 @@
#include <pacbio/ccs/SparseAlignment.h>
#include <pacbio/denovo/SparsePoa.h>
-#include <pacbio/log/Logging.h>
+#include <pbcopper/logging/Logging.h>
using PacBio::Poa::detail::SdpAnchorVector;
using PacBio::Align::AlignConfig;
@@ -220,7 +220,8 @@ void SparsePoa::WriteGraphCsvFile(const std::string& filename) const
graph_->WriteGraphCsvFile(filename);
}
-void SparsePoa::PruneGraph(float /* minCoverageFraction */) {}
+void SparsePoa::PruneGraph(const int minCoverage) { graph_->PruneGraph(minCoverage); }
+
void SparsePoa::repCheck()
{
assert(graph_->NumReads() == readPaths_.size());
diff --git a/src/Template.cpp b/src/Template.cpp
index 830a4a4..76bb9a8 100644
--- a/src/Template.cpp
+++ b/src/Template.cpp
@@ -186,31 +186,33 @@ std::pair<double, double> AbstractTemplate::SiteNormalParameters(const size_t i)
const double p_d = params.Deletion, l_d = std::log(p_d), l2_d = l_d * l_d;
const double p_b = params.Branch, l_b = std::log(p_b), l2_b = l_b * l_b;
const double p_s = params.Stick, l_s = std::log(p_s), l2_s = l_s * l_s;
+ const double p_n = p_m + p_d; // next
+ const double p_e = p_b + p_s; // extra
- // First moment expectations (zero terms used for clarity)
+ // first moment expectations (zero terms used for clarity)
const double E_M = ExpectedLLForEmission(MoveType::MATCH, prev, curr, MomentType::FIRST);
const double E_D = 0.0;
const double E_B = ExpectedLLForEmission(MoveType::BRANCH, prev, curr, MomentType::FIRST);
const double E_S = ExpectedLLForEmission(MoveType::STICK, prev, curr, MomentType::FIRST);
+ const double E_N = (l_m + E_M) * p_m / p_n + (l_d + E_D) * p_d / p_n;
+ const double E_E = (l_b + E_B) * p_b / p_e + (l_s + E_S) * p_s / p_e;
- // Calculate first moment
- const double E_MD = (l_m + E_M) * p_m / (p_m + p_d) + (l_d + E_D) * p_d / (p_m + p_d);
- const double E_I = (l_b + E_B) * p_b / (p_b + p_s) + (l_s + E_S) * p_s / (p_b + p_s);
- const double E_BS = E_I * (p_s + p_b) / (p_m + p_d);
- const double mean = E_MD + E_BS;
+ // calculate first moment
+ const double mean = E_N + p_e * E_E / p_n;
- // Calculate second momment
- // Key expansion used repeatedly here: (A + B)^2 = A^2 + 2AB + B^2
+ // second moment expectations
const double E2_M = ExpectedLLForEmission(MoveType::MATCH, prev, curr, MomentType::SECOND);
+ const double E2_D = 0.0;
const double E2_S = ExpectedLLForEmission(MoveType::STICK, prev, curr, MomentType::SECOND);
const double E2_B = ExpectedLLForEmission(MoveType::BRANCH, prev, curr, MomentType::SECOND);
- const double E2_MD =
- (l2_m + 2 * l_m * E_M + E2_M) * p_m / (p_m + p_d) + l2_d * p_d / (p_m + p_d);
- const double E2_I = (l2_b + 2 * E_B * l_b + E2_B) * p_b / (p_b + p_s) +
- (l2_s + 2 * E_S * l_s + E2_S) * p_s / (p_b + p_s);
- const double E2_BS = E2_I * (p_s + p_b) / (p_m + p_d);
- const double moment2 = E2_BS + 2 * E_BS * E_MD + E2_MD;
- const double var = moment2 - mean * mean;
+ const double E2_N = (l2_m + 2 * l_m * E_M + E2_M) * p_m / p_n + l2_d * p_d / p_n;
+ const double E2_E =
+ (l2_b + 2 * E_B * l_b + E2_B) * p_b / p_e + (l2_s + 2 * E_S * l_s + E2_S) * p_s / p_e;
+
+ // calculate second moment
+ const double E2_LL = E2_N + 2 * p_e * E_N * E_E / p_n + p_e * (1 + p_e) * E2_E / (p_n * p_n);
+ const double var = E2_LL - (mean * mean);
+
return std::make_pair(mean, var);
}
diff --git a/src/Utility.cpp b/src/Utility.cpp
index f969ec8..7475653 100644
--- a/src/Utility.cpp
+++ b/src/Utility.cpp
@@ -71,9 +71,6 @@ bool FileExists(const string& path)
string FileExtension(const string& path)
{
- auto pathLower = path;
- std::transform(pathLower.begin(), pathLower.end(), pathLower.begin(), ::tolower);
-
size_t fileStart = path.find_last_of("/");
if (fileStart == string::npos) fileStart = 0;
@@ -88,7 +85,9 @@ string FileExtension(const string& path)
// increment beyond '.'
++extStart;
- return path.substr(fileStart + extStart, path.length() - fileStart - extStart);
+ auto suffix = path.substr(fileStart + extStart, path.length() - fileStart - extStart);
+ std::transform(suffix.begin(), suffix.end(), suffix.begin(), ::tolower);
+ return suffix;
}
void FlattenFofn(vector<string>& res, const string& file)
diff --git a/src/main/ccs.cpp b/src/main/ccs.cpp
index 7d76dee..0cf478a 100644
--- a/src/main/ccs.cpp
+++ b/src/main/ccs.cpp
@@ -66,9 +66,8 @@
#include <pacbio/data/Interval.h>
#include <pacbio/data/ReadId.h>
#include <pacbio/io/Utility.h>
-#include <pacbio/log/Logging.h>
#include <pacbio/parallel/WorkQueue.h>
-#include <pacbio/util/ExecUtils.h>
+#include <pbcopper/logging/Logging.h>
#include <pacbio/Version.h>
@@ -89,8 +88,8 @@ using boost::numeric_cast;
using boost::optional;
// these strings are part of the BAM header, they CANNOT contain newlines
-const std::string DESCRIPTION = "Generate circular consensus sequences (ccs) from subreads.";
-const std::string APPNAME = "ccs";
+const string DESCRIPTION = "Generate circular consensus sequences (ccs) from subreads.";
+const string APPNAME = "ccs";
typedef ReadType<ReadId> Subread;
typedef ChunkType<ReadId, Subread> Chunk;
@@ -98,13 +97,13 @@ typedef ResultType<ConsensusType> Results;
const auto CircularConsensus = &PacBio::CCS::Consensus<Chunk>;
-inline std::string QVsToASCII(const std::vector<int>& qvs)
+inline string QVsToASCII(const vector<int>& qvs)
{
- std::string result;
+ string result;
result.reserve(qvs.size());
for (const int qv : qvs) {
- result.push_back(static_cast<char>(std::min(std::max(0, qv), 93) + 33));
+ result.push_back(static_cast<char>(min(max(0, qv), 93) + 33));
}
return result;
@@ -236,7 +235,7 @@ Results FastqWriterThread(WorkQueue<Results>& queue, const string& fname)
return counts;
}
-BamHeader PrepareHeader(const std::string& cmdLine, const DataSet& ds)
+BamHeader PrepareHeader(const string& cmdLine, const DataSet& ds)
{
using boost::algorithm::join;
@@ -251,8 +250,10 @@ BamHeader PrepareHeader(const std::string& cmdLine, const DataSet& ds)
for (const auto& bam : ds.BamFiles()) {
for (const auto& rg : bam.Header().ReadGroups()) {
- if (rg.ReadType() != "SUBREAD")
- std::cerr << "invalid input file, READTYPE must be SUBREAD" << std::endl;
+ if (rg.ReadType() != "SUBREAD") {
+ PBLOG_FATAL << "invalid input file, READTYPE must be SUBREAD";
+ exit(EXIT_FAILURE);
+ }
ReadGroupInfo readGroup(rg.MovieName(), "CCS");
readGroup.BindingKit(rg.BindingKit())
@@ -315,21 +316,50 @@ void WriteResultsReport(ostream& report, const Results& counts)
counts.SubreadCounter.WriteResultsReport(report);
}
+static std::vector<ExternalResource> BarcodeSets(const ExternalResources& ext)
+{
+ std::vector<ExternalResource> output;
+ for (const auto& resource : ext) {
+ const auto bcs = BarcodeSets(resource.ExternalResources());
+ output.insert(output.end(), bcs.begin(), bcs.end());
+
+ if (resource.MetaType() == "PacBio.DataSet.BarcodeSet") output.push_back(resource);
+ }
+ return output;
+}
+
static int Runner(const PacBio::CLI::Results& args)
{
+ // logging
+ //
+ // Initialize logging as the very first step. This allows us to redirect
+ // incorrect CLI usage to a log file.
+ ofstream logStream;
+ {
+ const auto logLevel = args.LogLevel();
+ const std::string logFile = args["log_file"];
+
+ Logger* logger;
+ if (!logFile.empty()) {
+ logStream.open(logFile);
+ logger = &Logger::Default(new Logger(logStream, logLevel));
+ } else {
+ logger = &Logger::Default(new Logger(cerr, logLevel));
+ }
+ InstallSignalHandlers(*logger);
+ }
+
using boost::algorithm::join;
using boost::make_optional;
- SetColumns();
-
// Get source args
- const std::vector<std::string> files = args.PositionalArguments();
+ const vector<string> files = args.PositionalArguments();
// input validation
if (files.size() != 2) {
- std::cerr << "ERROR: Please provide the INPUT and OUTPUT files.\n"
- << " See --help for more info about positional arguments." << std::endl;
- return EXIT_FAILURE;
+ PBLOG_FATAL << "ERROR: Please provide the INPUT and OUTPUT files. See --help for more info "
+ "about positional arguments.";
+ exit(EXIT_FAILURE);
}
const string inputFile = files.front();
@@ -341,51 +371,38 @@ static int Runner(const PacBio::CLI::Results& args)
//
//
optional<Whitelist> whitelist(none);
- const std::string& wlSpec = settings.WlSpec;
+ const string& wlSpec = settings.WlSpec;
try {
if (!wlSpec.empty()) whitelist = Whitelist(wlSpec);
} catch (...) {
- std::cerr << "option --zmws: invalid specification: '" + wlSpec + "'" << std::endl;
+ PBLOG_FATAL << "option --zmws: invalid specification: '" + wlSpec + "'";
+ exit(EXIT_FAILURE);
}
// verify input file exists
- if (!FileExists(inputFile))
- std::cerr << "INPUT: file does not exist: '" + inputFile + "'" << std::endl;
+ if (!FileExists(inputFile)) PBLOG_FATAL << "INPUT: file does not exist: '" + inputFile + "'";
// verify output file does not already exist
- if (FileExists(outputFile) && !settings.ForceOutput)
- std::cerr << "OUTPUT: file already exists: '" + outputFile + "'" << std::endl;
-
- if (settings.ByStrand && settings.NoPolish)
- std::cerr << "option --byStrand: incompatible with --noPolish" << std::endl;
-
- // logging
- //
- //
- ofstream logStream;
- {
- const std::string& logLevel = settings.LogLevel;
- const std::string& logFile = settings.LogFile;
+ if (FileExists(outputFile) && !settings.ForceOutput) {
+ PBLOG_FATAL << "OUTPUT: file already exists: '" + outputFile + "'";
+ exit(EXIT_FAILURE);
+ }
- if (!logFile.empty()) {
- logStream.open(logFile);
- Logger::Default(new Logger(logStream, logLevel));
- } else {
- Logger::Default(new Logger(cerr, logLevel));
- }
- InstallSignalHandlers();
+ if (settings.ByStrand && settings.NoPolish) {
+ PBLOG_FATAL << "option --byStrand: incompatible with --noPolish";
+ exit(EXIT_FAILURE);
}
// load models from file or directory
//
//
{
- const std::string& modelPath = settings.ModelPath;
+ const string& modelPath = settings.ModelPath;
if (!modelPath.empty()) {
PBLOG_INFO << "Loading model parameters from: '" << modelPath << "'";
if (!LoadModels(modelPath)) {
PBLOG_FATAL << "Failed to load models from: " << modelPath;
- exit(-1);
+ exit(EXIT_FAILURE);
}
}
}
@@ -398,23 +415,23 @@ static int Runner(const PacBio::CLI::Results& args)
PBLOG_DEBUG << "Found consensus models for: (" << join(avail, ", ") << ')';
DataSet ds(inputFile);
+ const string& modelSpec = settings.ModelSpec;
// test that all input chemistries are supported
{
set<string> used;
- const std::string& modelSpec = settings.ModelSpec;
if (!modelSpec.empty()) {
PBLOG_INFO << "Overriding model selection with: '" << modelSpec << "'";
if (!(OverrideModel(modelSpec) && used.insert(modelSpec).second)) {
PBLOG_FATAL << "Failed to find specified model: " << modelSpec;
- exit(-1);
+ exit(EXIT_FAILURE);
}
} else {
try {
used = ds.SequencingChemistries();
} catch (InvalidSequencingChemistryException& e) {
PBLOG_FATAL << e.what();
- exit(-1);
+ exit(EXIT_FAILURE);
}
vector<string> unavail;
@@ -425,7 +442,7 @@ static int Runner(const PacBio::CLI::Results& args)
if (!unavail.empty()) {
PBLOG_FATAL << "Unsupported chemistries found: (" << join(unavail, ", ") << "), "
<< "supported chemistries are: (" << join(avail, ", ") << ")";
- exit(-1);
+ exit(EXIT_FAILURE);
}
}
PBLOG_DEBUG << "Using consensus models for: (" << join(used, ", ") << ')';
@@ -433,7 +450,7 @@ static int Runner(const PacBio::CLI::Results& args)
if (!ValidBaseFeatures(ds)) {
PBLOG_FATAL << "Missing base features: IPD or PulseWidth";
- exit(-1);
+ exit(EXIT_FAILURE);
}
const auto filter = PbiFilter::FromDataSet(ds);
@@ -456,8 +473,8 @@ static int Runner(const PacBio::CLI::Results& args)
if (isBam) {
unique_ptr<BamWriter> ccsBam(
new BamWriter(outputFile, PrepareHeader(args.InputCommandLine(), ds)));
- const std::string pbiFileName = outputFile + ".pbi";
- unique_ptr<PbiBuilder> ccsPbi(settings.PbIndex ? new PbiBuilder(pbiFileName) : nullptr);
+ const string pbiFileName = outputFile + ".pbi";
+ unique_ptr<PbiBuilder> ccsPbi(new PbiBuilder(pbiFileName));
writer = async(launch::async, BamWriterThread, ref(workQueue), move(ccsBam), move(ccsPbi),
settings.RichQVs);
@@ -466,28 +483,29 @@ static int Runner(const PacBio::CLI::Results& args)
if (isXml) {
// Prepare dataset
- const std::string desc =
- "Points to the ccs bam file generated by pbccs " + PacBio::UnanimityVersion();
- const std::string name = "ccs bam";
- const std::string metatype = "PacBio.DataSet.ConsensusReadSet";
+ const string metatype = "PacBio.ConsensusReadFile.ConsensusReadBamFile";
DataSet ccsSet(DataSet::TypeEnum::CONSENSUS_READ);
ExternalResource resource(metatype, outputFile);
- resource.Name(name).Description(desc);
resource.FileIndices().Add(pbi);
+ for (const auto& barcodeSet : BarcodeSets(ds.ExternalResources()))
+ resource.ExternalResources().Add(barcodeSet);
+
ccsSet.ExternalResources().Add(resource);
+ ccsSet.Name(ccsSet.TimeStampedName());
// File path without .bam suffix
const auto outputPrefix = outputFile.substr(0, outputFile.size() - 4);
// Save dataset
- std::ofstream ccsOut(outputPrefix + ".consensusreadset.xml");
+ ofstream ccsOut(outputPrefix + ".consensusreadset.xml");
ccsSet.SaveToStream(ccsOut);
}
} else if (outputExt == "fastq" || outputExt == "fq") {
writer = async(launch::async, FastqWriterThread, ref(workQueue), ref(outputFile));
} else {
- std::cerr << "OUTPUT: invalid file extension: '" + outputExt + "'" << std::endl;
+ PBLOG_FATAL << "OUTPUT: invalid file extension: '" + outputExt + "'";
+ exit(EXIT_FAILURE);
}
unique_ptr<vector<Chunk>> chunk(new vector<Chunk>());
@@ -525,9 +543,10 @@ static int Runner(const PacBio::CLI::Results& args)
skipZmw = true;
else {
skipZmw = false;
+ string chem(modelSpec.empty() ? read.ReadGroup().SequencingChemistry() : modelSpec);
chunk->emplace_back(Chunk{ReadId(movieNames[movieName], *holeNumber),
vector<Subread>(), SNR(snr[0], snr[1], snr[2], snr[3]),
- read.ReadGroup().SequencingChemistry(), barcodes});
+ move(chem), barcodes});
}
}
@@ -539,7 +558,7 @@ static int Runner(const PacBio::CLI::Results& args)
read.BarcodeReverse() != get<1>(*barcodes) ||
read.BarcodeQuality() != get<2>(*barcodes))) {
PBLOG_FATAL << "invalid data: \"bc\" or \"bq\" tag did not agree between subreads!";
- exit(-1);
+ exit(EXIT_FAILURE);
}
vector<uint8_t> ipd;
@@ -554,11 +573,10 @@ static int Runner(const PacBio::CLI::Results& args)
else
pw = vector<uint8_t>(read.Sequence().length(), 0);
- chunk->back().Reads.emplace_back(
- Subread{ReadId(movieNames[movieName], *holeNumber,
- Interval(read.QueryStart(), read.QueryEnd())),
- read.Sequence(), std::move(ipd), std::move(pw), read.LocalContextFlags(),
- read.ReadAccuracy()});
+ chunk->back().Reads.emplace_back(Subread{
+ ReadId(movieNames[movieName], *holeNumber,
+ Interval(read.QueryStart(), read.QueryEnd())),
+ read.Sequence(), move(ipd), move(pw), read.LocalContextFlags(), read.ReadAccuracy()});
}
// run the remaining tasks
@@ -570,7 +588,7 @@ static int Runner(const PacBio::CLI::Results& args)
// wait for the writer thread and get the results counter
// then add in the snr/minPasses counts and write the report
auto counts = writer.get();
- const std::string& reportFile = settings.ReportFile;
+ const string& reportFile = settings.ReportFile;
if (reportFile == "-")
WriteResultsReport(cout, counts);
diff --git a/src/models/S_P1C1v2_Model.cpp b/src/models/S_P1C1v2_Model.cpp
index 9db4328..58f08ee 100644
--- a/src/models/S_P1C1v2_Model.cpp
+++ b/src/models/S_P1C1v2_Model.cpp
@@ -67,7 +67,7 @@ class S_P1C1v2_Model : public ModelConfig
REGISTER_MODEL(S_P1C1v2_Model);
public:
- static std::set<std::string> Names() { return {"S/P1-C1.2::PwSnr"}; }
+ static std::set<std::string> Names() { return {"S/P1-C1.2::PwSnr", "S/P1-C1.3::PwSnr"}; }
S_P1C1v2_Model(const SNR& snr);
std::unique_ptr<AbstractRecursor> CreateRecursor(std::unique_ptr<AbstractTemplate>&& tpl,
const MappedRead& mr, double scoreDiff) const;
diff --git a/src/models/S_P2C2_Model.cpp b/src/models/S_P2C2_Model.cpp
new file mode 100644
index 0000000..9472269
--- /dev/null
+++ b/src/models/S_P2C2_Model.cpp
@@ -0,0 +1,395 @@
+// Copyright (c) 2014-2016, Pacific Biosciences of California, Inc.
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted (subject to the limitations in the
+// disclaimer below) provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// * Neither the name of Pacific Biosciences nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+// GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY PACIFIC
+// BIOSCIENCES AND ITS CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL PACIFIC BIOSCIENCES OR ITS
+// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+// SUCH DAMAGE.
+
+// Author: Lance Hepler
+
+#include <cassert>
+#include <cmath>
+#include <memory>
+#include <stdexcept>
+
+#include <pacbio/consensus/ModelConfig.h>
+#include <pacbio/data/Read.h>
+
+#include "../ModelFactory.h"
+#include "../Recursor.h"
+
+using namespace PacBio::Data;
+
+namespace PacBio {
+namespace Consensus {
+namespace {
+
+template <typename T>
+inline T clip(const T val, const T range[2])
+{
+ return std::max(range[0], std::min(val, range[1]));
+}
+
+constexpr double kCounterWeight = 3.0;
+constexpr size_t nOutcomes = 12;
+constexpr size_t nContexts = 16;
+
+class S_P2C2_Model : public ModelConfig
+{
+ REGISTER_MODEL(S_P2C2_Model);
+
+public:
+ static std::set<std::string> Names() { return {"S/P2-C2::PwSnr"}; }
+ S_P2C2_Model(const SNR& snr);
+ std::unique_ptr<AbstractRecursor> CreateRecursor(std::unique_ptr<AbstractTemplate>&& tpl,
+ const MappedRead& mr, double scoreDiff) const;
+ std::vector<TemplatePosition> Populate(const std::string& tpl) const;
+ double ExpectedLLForEmission(MoveType move, uint8_t prev, uint8_t curr,
+ MomentType moment) const;
+
+private:
+ SNR snr_;
+ double ctxTrans_[nContexts][4];
+ double cachedEmissionExpectations_[nContexts][3][2];
+};
+
+REGISTER_MODEL_IMPL(S_P2C2_Model);
+
+// TODO(lhepler) comments regarding the CRTP
+class S_P2C2_Recursor : public Recursor<S_P2C2_Recursor>
+{
+public:
+ S_P2C2_Recursor(std::unique_ptr<AbstractTemplate>&& tpl, const MappedRead& mr,
+ double scoreDiff);
+ static inline std::vector<uint8_t> EncodeRead(const MappedRead& read);
+ static inline double EmissionPr(MoveType move, uint8_t emission, uint8_t prev, uint8_t curr);
+ virtual double UndoCounterWeights(size_t nEmissions) const;
+};
+
+constexpr double snrRanges[4][2] = {{4.06761408, 7.87333488}, // A
+ {7.56100464, 14.9044018}, // C
+ {4.05258036, 6.67833996}, // G
+ {6.47991323, 10.7843523}}; // T
+
+constexpr double emissionPmf[3][nContexts][nOutcomes] = {
+ {// matchPmf
+ {0.00735664387, 0.00190428659, 0.000128987185, 3.19609285e-05, 0.0579789127, 0.00159365177,
+ 0.000377851288, 2.64641792e-05, 0.925861388, 0.0039544046, 0.000740333577, 4.51157354e-05},
+ {0.00268702382, 0.0103554239, 5.5569919e-05, 0.00010710572, 0.0119429479, 0.0349107323,
+ 0.000173873688, 3.71404194e-05, 0.0132184981, 0.925935393, 0.000163937702, 0.000412353133},
+ {0.000303779953, 5.76150405e-05, 0.00682147837, 0.00396954594, 0.000590520182, 1.49898804e-05,
+ 0.0623840757, 0.00479826006, 0.000162992201, 0.000111189159, 0.896219743, 0.0245658107},
+ {0.000142620524, 3.85177333e-05, 0.00440064256, 0.018046601, 0.000210517258, 2.23325708e-05,
+ 0.0272865144, 0.0538911959, 0.000157354862, 0.000143746285, 0.0491787167, 0.84648124},
+ {0.00733096773, 0.00166007937, 0.000121497496, 0.000116125734, 0.0573233988, 0.00126886069,
+ 0.00071151983, 7.74436926e-05, 0.927257837, 0.0023603384, 0.00153974443, 0.000232186399},
+ {0.00219335118, 0.0112686045, 4.01328525e-05, 5.02885136e-05, 0.0117893856, 0.0371141169,
+ 1.68691479e-05, 1.56068136e-05, 0.0116461848, 0.925851525, 1.25205575e-05, 1.41414695e-06},
+ {0.000117348076, 1.75083299e-05, 0.00297146156, 0.0016269759, 0.000296647296, 4.87166628e-05,
+ 0.0284358458, 0.002344226, 0.000568544223, 0.000237602686, 0.942157699, 0.021177424},
+ {9.37972006e-05, 6.24310526e-05, 0.00526664739, 0.0207263945, 0.00012215642, 2.11772913e-05,
+ 0.0320582675, 0.06180119, 0.000243487269, 0.000476247908, 0.0530240115, 0.826104192},
+ {0.00314264389, 0.00082820948, 9.08246005e-05, 9.38915756e-05, 0.028554939, 0.000783143672,
+ 0.000364350553, 2.37054476e-05, 0.961214998, 0.00421586002, 0.000391376658, 0.000296057041},
+ {0.00119090385, 0.00593803619, 2.03588382e-05, 4.41352391e-05, 0.00628544188, 0.0204138621,
+ 0.000138312951, 6.76020532e-05, 0.00866986949, 0.956464996, 0.000533431456, 0.000233049758},
+ {6.43734294e-05, 1.22650033e-05, 0.00210011572, 0.00131543919, 9.48512735e-05, 9.02245873e-06,
+ 0.0243938729, 0.00215317529, 0.00018372826, 3.35949921e-05, 0.950122398, 0.0195171634},
+ {3.66710321e-05, 4.51849068e-05, 0.0024483006, 0.010397222, 8.29270369e-05, 1.71244431e-05,
+ 0.0166213186, 0.0346020058, 8.05756611e-05, 0.000443816688, 0.0317772895, 0.903447564},
+ {0.00584782932, 0.00152030367, 8.92185665e-05, 8.75578495e-05, 0.0450024718, 0.00128621735,
+ 0.000488191126, 3.73830825e-05, 0.940618603, 0.00388969117, 0.00110426833, 2.82644734e-05},
+ {0.00124169992, 0.00586665604, 3.58345575e-05, 7.76586763e-05, 0.00564348936, 0.0178975167,
+ 0.000131182094, 2.75294579e-05, 0.00733345492, 0.961559728, 0.000111068097, 7.41824771e-05},
+ {5.36955022e-05, 3.60866503e-05, 0.00270197625, 0.00158018444, 8.86444887e-05, 7.11501847e-06,
+ 0.0271717889, 0.00206535023, 0.000463746178, 0.000180875439, 0.946297025, 0.0193535123},
+ {4.54423247e-05, 1.30264171e-05, 0.00201775615, 0.00868651464, 2.93835524e-05, 8.6504974e-06,
+ 0.0146074997, 0.0295302164, 1.74359077e-05, 6.74859902e-06, 0.0306931623, 0.914344164}},
+ {// branchPmf
+ {0.13965274, 0.000214059166, 0.000214059166, 0.000214059166, 0.258968176, 0.000214059166,
+ 0.000214059166, 0.000214059166, 0.599666611, 0.000214059166, 0.000214059166, 0},
+ {0.000190616771, 0.0678223351, 0.000190616771, 0.000190616771, 0.000190616771, 0.100087597,
+ 0.000190616771, 0.000190616771, 0.000190616771, 0.830565134, 0.000190616771, 0},
+ {0.000101396092, 0.000101396092, 0.0616730324, 0.000101396092, 0.000101396092, 0.000101396092,
+ 0.143805821, 0.000101396092, 0.000101396092, 0.000101396092, 0.793709977, 0},
+ {0.000303994885, 0.000303994885, 0.000303994885, 0.1284746, 0.000303994885, 0.000303994885,
+ 0.000303994885, 0.141454447, 0.000303994885, 0.000303994885, 0.000303994885, 0.727334999},
+ {0.0433312739, 3.22994963e-05, 3.22994963e-05, 3.22994963e-05, 0.117471222, 3.22994963e-05,
+ 3.22994963e-05, 3.22994963e-05, 0.838939108, 3.22994963e-05, 3.22994963e-05, 0},
+ {4.12209605e-05, 0.0329945236, 4.12209605e-05, 4.12209605e-05, 4.12209605e-05, 0.0452292927,
+ 4.12209605e-05, 4.12209605e-05, 4.12209605e-05, 0.921446416, 4.12209605e-05, 0},
+ {5.6318833e-05, 5.6318833e-05, 0.0532155899, 5.6318833e-05, 5.6318833e-05, 5.6318833e-05,
+ 0.12387295, 5.6318833e-05, 5.6318833e-05, 5.6318833e-05, 0.822460909, 0},
+ {0.000171851328, 0.000171851328, 0.000171851328, 0.0769974228, 0.000171851328, 0.000171851328,
+ 0.000171851328, 0.115058917, 0.000171851328, 0.000171851328, 0.000171851328, 0.806396998},
+ {0.0289415541, 3.57312452e-05, 3.57312452e-05, 3.57312452e-05, 0.0863096576, 3.57312452e-05,
+ 3.57312452e-05, 3.57312452e-05, 0.884462938, 3.57312452e-05, 3.57312452e-05, 0},
+ {7.76665226e-05, 0.0487889535, 7.76665226e-05, 7.76665226e-05, 7.76665226e-05, 0.0563094047,
+ 7.76665226e-05, 7.76665226e-05, 7.76665226e-05, 0.89428031, 7.76665226e-05, 0},
+ {0.000224675996, 0.000224675996, 0.11442169, 0.000224675996, 0.000224675996, 0.000224675996,
+ 0.177555734, 0.000224675996, 0.000224675996, 0.000224675996, 0.706225168, 0},
+ {0.000147262818, 0.000147262818, 0.000147262818, 0.0548667631, 0.000147262818, 0.000147262818,
+ 0.000147262818, 0.0766653324, 0.000147262818, 0.000147262818, 0.000147262818, 0.867142539},
+ {0.0251062443, 3.11750569e-05, 3.11750569e-05, 3.11750569e-05, 0.0860636051, 3.11750569e-05,
+ 3.11750569e-05, 3.11750569e-05, 0.88858075, 3.11750569e-05, 3.11750569e-05, 0},
+ {5.64847834e-05, 0.0293039817, 5.64847834e-05, 5.64847834e-05, 5.64847834e-05, 0.0459491268,
+ 5.64847834e-05, 5.64847834e-05, 5.64847834e-05, 0.924295013, 5.64847834e-05, 0},
+ {5.20954226e-05, 5.20954226e-05, 0.0339074593, 5.20954226e-05, 5.20954226e-05, 5.20954226e-05,
+ 0.103213362, 5.20954226e-05, 5.20954226e-05, 5.20954226e-05, 0.862462415, 0},
+ {2.41719133e-05, 2.41719133e-05, 2.41719133e-05, 0.0373123704, 2.41719133e-05, 2.41719133e-05,
+ 2.41719133e-05, 0.0666923249, 2.41719133e-05, 2.41719133e-05, 2.41719133e-05, 0.895777757}},
+ {// stickPmf
+ {0.000146474028, 0.0297946523, 0.0803446626, 0.0323153575, 0.000146474028, 0.0181368779,
+ 0.159977298, 0.0152271765, 0.000146474028, 0.244223284, 0.299539822, 0.120001447},
+ {0.0754353435, 0.000106711295, 0.108178173, 0.05166508, 0.0659944961, 0.000106711295,
+ 0.235061774, 0.0369961862, 0.0285965147, 0.000106711295, 0.241613261, 0.156139038},
+ {0.150889801, 0.0424857824, 0.000318026612, 0.147445837, 0.0393052032, 0.0282810617,
+ 0.000318026612, 0.0807560198, 0.00326633483, 0.214809655, 0.000318026612, 0.291806225},
+ {0.140090388, 0.0466498235, 0.0955223418, 0.000146946243, 0.100971439, 0.0170277817,
+ 0.173755469, 0.000146946243, 0.00152457994, 0.141450628, 0.282713657, 0},
+ {0.000119247588, 0.0383163304, 0.11255615, 0.0436285288, 0.000119247588, 0.0192856198,
+ 0.175758018, 0.020358817, 0.000119247588, 0.197235316, 0.288470104, 0.104033374},
+ {0.0468282051, 3.20346125e-05, 0.0825016476, 0.0378754242, 0.0868836623, 3.20346125e-05,
+ 0.146909879, 0.0191351973, 0.260577625, 3.20346125e-05, 0.213141376, 0.10605088},
+ {0.146293011, 0.0331663512, 0.000105430841, 0.0501755794, 0.207187242, 0.0102551561,
+ 0.000105430841, 0.027888217, 0.283407964, 0.0599407043, 0.000105430841, 0.181369481},
+ {0.125236617, 0.0361508505, 0.0591068896, 0.000121340743, 0.165565282, 0.00791956686,
+ 0.150064084, 0.000121340743, 0.202982991, 0.0283175644, 0.224413472, 0},
+ {0.000210016244, 0.0414240647, 0.101760633, 0.0428484744, 0.000210016244, 0.0179312948,
+ 0.161526364, 0.0189973372, 0.000210016244, 0.240930978, 0.173671163, 0.200279644},
+ {0.0495830034, 4.61487199e-05, 0.151014753, 0.067951325, 0.0907268765, 4.61487199e-05,
+ 0.315461425, 0.0277696796, 0.128849485, 4.61487199e-05, 0.0567220636, 0.111782943},
+ {0.11555575, 0.0292950248, 0.00014832042, 0.0456759293, 0.15337244, 0.00761339039,
+ 0.00014832042, 0.0203902102, 0.249082062, 0.122098355, 0.00014832042, 0.256471877},
+ {0.147130835, 0.0327619952, 0.0756043295, 0.000188145734, 0.212444944, 0.0101329647,
+ 0.114642199, 0.000188145734, 0.294425221, 0.107175814, 0.00530540568, 0},
+ {8.22405627e-05, 0.0221237714, 0.037137767, 0.0162121049, 8.22405627e-05, 0.0187609213,
+ 0.080696449, 0.0269716446, 8.22405627e-05, 0.248406873, 0.205991108, 0.343452639},
+ {0.049159614, 5.43832178e-05, 0.0514031038, 0.0203847824, 0.0855463843, 5.43832178e-05,
+ 0.0980144614, 0.0239136025, 0.168927456, 5.43832178e-05, 0.158422773, 0.344064673},
+ {0.137668134, 0.0267105699, 0.000142351166, 0.0441201525, 0.19166368, 0.0114882132,
+ 0.000142351166, 0.0202277277, 0.273478098, 0.129199413, 0.000142351166, 0.165016958},
+ {0.0443720703, 0.011998886, 0.0370775788, 3.30887484e-05, 0.0768170894, 0.00839411198,
+ 0.110338914, 3.30887484e-05, 0.22919549, 0.235978299, 0.245761384, 0}}};
+
+constexpr double transProbs[nContexts][3][4] = {
+ {// AA
+ {-7.36174689, 1.61101289, -0.268464948, 0.0143320448},
+ {-3.22220388, 0.496986063, -0.181868245, 0.0125555841},
+ {2.63396482, -1.49671632, 0.145790372, -0.00463126882}},
+ {// AC
+ {-4.29124266, 0.474781729, -0.0691005634, 0.0024944116},
+ {-5.8759345, 0.769176344, -0.0794793302, 0.0026603066},
+ {-2.52278775, -0.0673361054, -0.00420963573, 0.000173101656}},
+ {// AG
+ {1.44776405, -1.89806596, 0.230489754, -0.00788373432},
+ {3.62328388, -3.16155741, 0.380413687, -0.0139731804},
+ {-2.4113731, 1.5617699, -0.464222808, 0.0330184761}},
+ {// AT
+ {-1.52188949, -0.619888164, 0.0344820232, -0.000466695436},
+ {7.25871708, -2.89355725, 0.226545422, -0.00503769654},
+ {1.80689962, -0.775311988, 0.00287885444, 0.00212630128}},
+ {// CA
+ {-1.58612186, -0.153996667, -0.019362539, 0.00340134003},
+ {-5.44435394, 1.26703171, -0.267105283, 0.0166778421},
+ {2.91356449, -1.87150825, 0.226540613, -0.010786308}},
+ {// CC
+ {2.73738367, -1.52165103, 0.134485954, -0.00364414263},
+ {-1.96380465, -0.0304224195, -0.00741383211, 0.000655817377},
+ {-5.65275902, 0.8554781, -0.0747563725, 0.00213841659}},
+ {// CG
+ {6.82408162, -5.00340617, 0.843280331, -0.0477216713},
+ {0.922836644, -1.39570517, 0.0615167062, 0.00625866765},
+ {-7.49471908, 4.08850937, -0.931670394, 0.06135184}},
+ {// CT
+ {-2.03471379, -0.183049895, -0.0161448893, 0.00147588228},
+ {-0.39397695, -0.497506148, -0.0025279351, 0.00199848358},
+ {-3.14511306, 0.866929002, -0.161209014, 0.00724003881}},
+ {// GA
+ {-4.03613088, 0.951183897, -0.1707077, 0.00951914769},
+ {-2.73727929, -0.0846264685, -0.0762702838, 0.00765998521},
+ {-0.0115161507, -0.676772845, 0.0186902046, 0.00114061014}},
+ {// GC
+ {-4.0450919, 0.19441825, -0.0196572463, 0.000545513282},
+ {-0.590738944, -0.563607207, 0.0397364279, -0.000835263676},
+ {-0.650606525, -0.793978644, 0.0672391429, -0.0019742867}},
+ {// GG
+ {-7.1216888, 0.704299447, -0.00675682556, -0.00429905236},
+ {4.0135083, -2.99745283, 0.330100699, -0.00866415885},
+ {-2.95159941, 1.52304256, -0.417790358, 0.0301178899}},
+ {// GT
+ {-5.71687526, 1.02827154, -0.128832359, 0.00416099843},
+ {-6.35542589, 1.25709282, -0.1917998, 0.00889679996},
+ {-1.20027791, 0.152425947, -0.0921121841, 0.00518033583}},
+ {// TA
+ {-1.75233077, -0.0165381386, -0.0154477996, 0.00191469353},
+ {-3.79457085, 0.695703623, -0.170024823, 0.0125082712},
+ {2.14044448, -1.41498734, 0.116355694, -0.00281465688}},
+ {// TC
+ {-1.89375385, -0.103804215, -0.00397067386, 0.000435442231},
+ {-4.05701629, 0.431318996, -0.0460802272, 0.0014783096},
+ {-4.07119813, 0.0340792867, 0.00636890829, -0.000665968456}},
+ {// TG
+ {7.14617037, -5.07757031, 0.837708073, -0.0452627753},
+ {1.69236944, -2.28936276, 0.274337077, -0.00888968456},
+ {-4.60392728, 2.15828049, -0.515604387, 0.0324594302}},
+ {// TT
+ {-2.82895825, -0.159891687, 0.0556441946, -0.00321555705},
+ {2.92995068, -1.83116699, 0.202125712, -0.00725218663},
+ {0.981168958, -0.682236621, 0.0147684255, 0.00146373056}}};
+
+inline double CalculateExpectedLLForEmission(const size_t move, const uint8_t row,
+ const size_t moment)
+{
+ double expectedLL = 0;
+ for (size_t i = 0; i < nOutcomes; i++) {
+ double curProb = emissionPmf[move][row][i];
+ double lgCurProb = std::log(curProb);
+ if (moment == static_cast<uint8_t>(MomentType::FIRST))
+ expectedLL += curProb * lgCurProb;
+ else if (moment == static_cast<uint8_t>(MomentType::SECOND))
+ expectedLL += curProb * (lgCurProb * lgCurProb);
+ }
+ return expectedLL;
+}
+
+S_P2C2_Model::S_P2C2_Model(const SNR& snr) : snr_(snr)
+{
+ for (size_t ctx = 0; ctx < nContexts; ++ctx) {
+ const uint8_t bp = ctx & 3; // (equivalent to % 4)
+ const double snr1 = clip(snr_[bp], snrRanges[bp]), snr2 = snr1 * snr1, snr3 = snr2 * snr1;
+ double sum = 1.0;
+
+ // cached transitions
+ ctxTrans_[ctx][0] = 1.0;
+ for (size_t j = 0; j < 3; ++j) {
+ double xb = transProbs[ctx][j][0] + snr1 * transProbs[ctx][j][1] +
+ snr2 * transProbs[ctx][j][2] + snr3 * transProbs[ctx][j][3];
+ xb = std::exp(xb);
+ ctxTrans_[ctx][j + 1] = xb;
+ sum += xb;
+ }
+ for (size_t j = 0; j < 4; ++j)
+ ctxTrans_[ctx][j] /= sum;
+
+ // cached expectations
+ for (size_t move = 0; move < 3; ++move)
+ for (size_t moment = 0; moment < 2; ++moment)
+ cachedEmissionExpectations_[ctx][move][moment] =
+ CalculateExpectedLLForEmission(move, ctx, moment);
+ }
+}
+
+std::unique_ptr<AbstractRecursor> S_P2C2_Model::CreateRecursor(
+ std::unique_ptr<AbstractTemplate>&& tpl, const MappedRead& mr, double scoreDiff) const
+{
+ return std::unique_ptr<AbstractRecursor>(
+ new S_P2C2_Recursor(std::forward<std::unique_ptr<AbstractTemplate>>(tpl), mr, scoreDiff));
+}
+
+std::vector<TemplatePosition> S_P2C2_Model::Populate(const std::string& tpl) const
+{
+ std::vector<TemplatePosition> result;
+
+ if (tpl.empty()) return result;
+
+ result.reserve(tpl.size());
+
+ // calculate transition probabilities
+ uint8_t prev = detail::TranslationTable[static_cast<uint8_t>(tpl[0])];
+ if (prev > 3) throw std::invalid_argument("invalid character in template!");
+
+ for (size_t i = 1; i < tpl.size(); ++i) {
+ const uint8_t curr = detail::TranslationTable[static_cast<uint8_t>(tpl[i])];
+ if (curr > 3) throw std::invalid_argument("invalid character in template!");
+ const auto row = (prev << 2) | curr;
+ const auto params = ctxTrans_[row];
+ result.emplace_back(TemplatePosition{
+ tpl[i - 1], prev,
+ params[0], // match
+ params[1], // branch
+ params[2], // stick
+ params[3] // deletion
+ });
+ prev = curr;
+ }
+ result.emplace_back(TemplatePosition{tpl.back(), prev, 1.0, 0.0, 0.0, 0.0});
+
+ return result;
+}
+
+double S_P2C2_Model::ExpectedLLForEmission(const MoveType move, const uint8_t prev,
+ const uint8_t curr, const MomentType moment) const
+{
+ const size_t row = (prev << 2) | curr;
+ return cachedEmissionExpectations_[row][static_cast<uint8_t>(move)]
+ [static_cast<uint8_t>(moment)];
+}
+
+S_P2C2_Recursor::S_P2C2_Recursor(std::unique_ptr<AbstractTemplate>&& tpl, const MappedRead& mr,
+ double scoreDiff)
+ : Recursor<S_P2C2_Recursor>(std::forward<std::unique_ptr<AbstractTemplate>>(tpl), mr, scoreDiff)
+{
+}
+
+std::vector<uint8_t> S_P2C2_Recursor::EncodeRead(const MappedRead& read)
+{
+ std::vector<uint8_t> result;
+
+ result.reserve(read.Length());
+
+ for (size_t i = 0; i < read.Length(); ++i) {
+ if (read.PulseWidth[i] < 1U) throw std::runtime_error("invalid PulseWidth in read!");
+ const uint8_t pw = std::min(2, read.PulseWidth[i] - 1);
+ const uint8_t bp = detail::TranslationTable[static_cast<uint8_t>(read.Seq[i])];
+ if (bp > 3) throw std::invalid_argument("invalid character in read!");
+ const uint8_t em = (pw << 2) | bp;
+ if (em > 11) throw std::runtime_error("read encoding error!");
+ result.emplace_back(em);
+ }
+
+ return result;
+}
+
+double S_P2C2_Recursor::EmissionPr(MoveType move, uint8_t emission, uint8_t prev, uint8_t curr)
+{
+ assert(move != MoveType::DELETION);
+ const auto row = (prev << 2) | curr;
+ return emissionPmf[static_cast<uint8_t>(move)][row][emission] * kCounterWeight;
+}
+
+double S_P2C2_Recursor::UndoCounterWeights(const size_t nEmissions) const
+{
+ return -std::log(kCounterWeight) * nEmissions;
+}
+} // namespace anonymous
+} // namespace Consensus
+} // namespace PacBio
diff --git a/src/poa/PoaGraph.cpp b/src/poa/PoaGraph.cpp
index c663fd3..434060e 100644
--- a/src/poa/PoaGraph.cpp
+++ b/src/poa/PoaGraph.cpp
@@ -74,6 +74,8 @@ void PoaGraph::CommitAdd(PoaAlignmentMatrix* mat, std::vector<Vertex>* readPathO
impl->CommitAdd(mat, readPathOutput);
}
+void PoaGraph::PruneGraph(const int minCoverage) { impl->PruneGraph(minCoverage); }
+
size_t PoaGraph::NumReads() const { return impl->NumReads(); }
const PoaConsensus* PoaGraph::FindConsensus(const AlignConfig& config, int minCoverage) const
diff --git a/src/poa/PoaGraphImpl.cpp b/src/poa/PoaGraphImpl.cpp
index 789e1ec..1a1e906 100644
--- a/src/poa/PoaGraphImpl.cpp
+++ b/src/poa/PoaGraphImpl.cpp
@@ -427,6 +427,28 @@ void PoaGraphImpl::CommitAdd(PoaAlignmentMatrix* mat_, std::vector<Vertex>* read
repCheck();
}
+void PoaGraphImpl::PruneGraph(const int minCoverage)
+{
+ // We have to use an iterator since we're modifying the graph as we go
+ graph_traits<BoostGraph>::vertex_iterator vi, vi_end, next;
+ tie(vi, vi_end) = vertices(g_);
+ for (next = vi; vi != vi_end; vi = next) {
+ ++next;
+ if (vertexInfoMap_[*vi].Reads < minCoverage) {
+ clear_vertex(*vi, g_);
+ remove_vertex(*vi, g_);
+ }
+ }
+
+ // Re-index all vertices to the range [0, num_vertices(g_)]
+ graph_traits<BoostGraph>::vertices_size_type current_index = 0;
+ index_map_t index_map = get(vertex_index, g_);
+ // clang-format off
+ BGL_FORALL_VERTICES(v, g_, BoostGraph)
+ index_map[v] = current_index++;
+ // clang-format on
+}
+
size_t PoaGraphImpl::NumReads() const { return numReads_; }
string PoaGraphImpl::ToGraphViz(int flags, const PoaConsensus* pc) const
diff --git a/src/poa/PoaGraphImpl.h b/src/poa/PoaGraphImpl.h
index 93e6d5b..d7ddefa 100644
--- a/src/poa/PoaGraphImpl.h
+++ b/src/poa/PoaGraphImpl.h
@@ -76,19 +76,20 @@ struct PoaNode
float Score;
float ReachingScore;
- void Init(size_t id, char base, int reads)
+ void Init(size_t id, char base, int reads, int spanning)
{
this->Id = id;
this->Base = base;
this->Reads = reads;
- this->SpanningReads = 0;
+ this->SpanningReads = spanning;
this->Score = 0;
this->ReachingScore = 0;
}
- PoaNode() { Init(0, 'N', 0); }
- PoaNode(size_t id, char base) { Init(id, base, 1); }
- PoaNode(size_t id, char base, int reads) { Init(id, base, reads); }
+ PoaNode() { Init(0, 'N', 0, 0); }
+ PoaNode(size_t id, char base) { Init(id, base, 1, 0); }
+ PoaNode(size_t id, char base, int reads) { Init(id, base, reads, 0); }
+ PoaNode(size_t id, char base, int reads, int spanning) { Init(id, base, reads, spanning); }
};
// External-facing vertex id type
@@ -145,11 +146,11 @@ class PoaGraphImpl
void repCheck() const;
- VD addVertex(char base, int nReads = 1)
+ VD addVertex(char base, int nReads = 1, int spanningReads = 0)
{
VD vd = add_vertex(g_);
Vertex vExt = totalVertices_++;
- vertexInfoMap_[vd] = PoaNode(vExt, base, nReads);
+ vertexInfoMap_[vd] = PoaNode(vExt, base, nReads, spanningReads);
vertexLookup_[vExt] = vd;
indexMap_[vd] = liveVertices_++;
return vd;
@@ -252,6 +253,7 @@ public:
PoaConsensus* FindConsensus(const PacBio::Align::AlignConfig& config,
int minCoverage = -INT_MAX);
+ void PruneGraph(const int minCoverage);
size_t NumReads() const;
string ToGraphViz(int flags, const PoaConsensus* pc) const;
diff --git a/src/poa/PoaGraphTraversals.cpp b/src/poa/PoaGraphTraversals.cpp
index a10da98..3b8b747 100644
--- a/src/poa/PoaGraphTraversals.cpp
+++ b/src/poa/PoaGraphTraversals.cpp
@@ -227,6 +227,7 @@ void PoaGraphImpl::tracebackAndThread(std::string sequence,
const AlignmentColumn* curCol;
VD v = null_vertex, forkVertex = null_vertex;
VD u = exitVertex_;
+ int span = 0;
VD startSpanVertex;
VD endSpanVertex = alignmentColumnForVertex.at(exitVertex_)->PreviousVertex[I];
@@ -265,7 +266,7 @@ void PoaGraphImpl::tracebackAndThread(std::string sequence,
// In local model thread read bases, adjusting i (should stop at 0)
while (i > 0) {
assert(alignMode == AlignMode::LOCAL);
- VD newForkVertex = addVertex(sequence[READPOS]);
+ VD newForkVertex = addVertex(sequence[READPOS], 1, span);
add_edge(newForkVertex, forkVertex, g_);
VERTEX_ON_PATH(READPOS, newForkVertex);
forkVertex = newForkVertex;
@@ -284,7 +285,7 @@ void PoaGraphImpl::tracebackAndThread(std::string sequence,
int prevRow = ArgMax(prevCol->Score);
while (i > static_cast<int>(prevRow)) {
- VD newForkVertex = addVertex(sequence[READPOS]);
+ VD newForkVertex = addVertex(sequence[READPOS], 1, span);
add_edge(newForkVertex, forkVertex, g_);
VERTEX_ON_PATH(READPOS, newForkVertex);
forkVertex = newForkVertex;
@@ -307,7 +308,7 @@ void PoaGraphImpl::tracebackAndThread(std::string sequence,
}
} else if (reachingMove == ExtraMove || reachingMove == MismatchMove) {
// begin a new arc with this read base
- VD newForkVertex = addVertex(sequence[READPOS]);
+ VD newForkVertex = addVertex(sequence[READPOS], 1, span);
if (forkVertex == null_vertex) {
forkVertex = v;
}
@@ -321,6 +322,7 @@ void PoaGraphImpl::tracebackAndThread(std::string sequence,
v = u;
u = prevVertex;
+ span = curNodeInfo.SpanningReads;
}
startSpanVertex = v;
diff --git a/swig/CMakeLists.txt b/swig/CMakeLists.txt
index e9c9319..8ea300e 100644
--- a/swig/CMakeLists.txt
+++ b/swig/CMakeLists.txt
@@ -17,6 +17,9 @@ include_directories(SYSTEM
# We could use python -c "print(sysconfig.get_config_var('CCSHARED'))",
# but it's honestly unnecessary and requires providing PYTHON_EXECUTABLE
target_compile_options(cc2 PUBLIC -fPIC)
+if (TARGET pbcopper)
+ target_compile_options(pbcopper PUBLIC -fPIC)
+endif()
add_compile_options(-fPIC)
# ConsensusCore2_wrap.cxx
@@ -25,10 +28,8 @@ set(SWIG_COMMAND swig CACHE PATH "swig PATH")
add_custom_command(OUTPUT ConsensusCore2_wrap.cxx
COMMAND ${SWIG_COMMAND} -Wextra -c++ -python -builtin -module ConsensusCore2
-I${UNY_IncludeDir} -I${CMAKE_BINARY_DIR}/generated
- -o ${CMAKE_BINARY_DIR}/swig/ConsensusCore2_wrap.cxx -outdir ${CMAKE_BINARY_DIR}/swig
+ -o ${CMAKE_BINARY_DIR}/swig/ConsensusCore2_wrap.cxx -outdir ${CMAKE_BINARY_DIR}/swig/lib
${UNY_SwigDir}/ConsensusCore2.i
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/swig/ConsensusCore2.py
- ${CMAKE_BINARY_DIR}/swig/lib/__init__.py
)
# _ConsensusCore2.so
@@ -38,7 +39,8 @@ add_library(_ConsensusCore2 MODULE
target_include_directories(_ConsensusCore2
PUBLIC ${UNY_IncludeDir}
- PUBLIC ${CMAKE_BINARY_DIR}/generated
+ ${CMAKE_BINARY_DIR}/generated
+ ${pbcopper_INCLUDE_DIRS}
)
set(CC2_LIBRARIES
@@ -49,6 +51,7 @@ set(CC2_LIBRARIES
target_link_libraries(_ConsensusCore2
${CC2_LIBRARIES}
+ ${pbcopper_LIBRARIES}
)
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
diff --git a/swig/ConsensusCore2.py b/swig/ConsensusCore2.py
new file mode 100644
index 0000000..8a7c730
--- /dev/null
+++ b/swig/ConsensusCore2.py
@@ -0,0 +1 @@
+raise RuntimeError("something unexpectedly bad happened during installation of ConsensusCore2, which is broken")
diff --git a/tests/cram/100zmws.t b/tests/cram/100zmws.t
index 4727181..da19f58 100644
--- a/tests/cram/100zmws.t
+++ b/tests/cram/100zmws.t
@@ -7,6 +7,8 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
>|> \d{8} \d{2}:\d{2}:\d{2}\.\d{3} -|- DEBUG -|- operator() -|- [0-9,a-f,x]+|| -|- Skipping read m150825_055401_42161_c100844482550000001823159012311525_s1_p0/413/9570_12297, ALPHA/BETA MISMATCH (re)
>|> \d{8} \d{2}:\d{2}:\d{2}\.\d{3} -|- DEBUG -|- operator() -|- [0-9,a-f,x]+|| -|- Skipping read m150825_055401_42161_c100844482550000001823159012311525_s1_p0/429/4100_6514, ALPHA/BETA MISMATCH (re)
>|> \d{8} \d{2}:\d{2}:\d{2}\.\d{3} -|- DEBUG -|- operator() -|- [0-9,a-f,x]+|| -|- Skipping read m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2359/6103_8488, ALPHA/BETA MISMATCH (re)
+ >|> \d{8} \d{2}:\d{2}:\d{2}\.\d{3} -|- DEBUG -|- operator() -|- [0-9,a-f,x]+|| -|- Skipping read m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2436/33592_34506, ALPHA/BETA MISMATCH (re)
+ >|> \d{8} \d{2}:\d{2}:\d{2}\.\d{3} -|- DEBUG -|- operator() -|- [0-9,a-f,x]+|| -|- Skipping read m150825_055401_42161_c100844482550000001823159012311525_s1_p0/3046/0_2116, ALPHA/BETA MISMATCH (re)
$ grep -c ^@ test.fq
100
$ cat test.fq
@@ -42,10 +44,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGGTAAAGTAATGCCTCTACGTCAGTCGGAACAATGTCGTCGTGTAACTCGACGATCTTAGGAGCTACTAAGGAGAGTCTGTAGGGAACCGACTGGGAAGGTGCCACAAGTTTTCTCTACTACTCCGTCTCCTAAAACAACTCCAAGTGGAAGGTCTGTGGGTTTTTGAGTATAGTCCGTATCTAGACCCAAAAGGGCTTACCTTCGCAATGAAAGAATATCCTTATAGACACGAACGGGAAGAACGGAATCGTTATTAATGACGTCGTACAACGTTTTCCAAGTTCTCCTCTTCCTCCGGATTCGGTTTGGGTTATCTCAACTAGTCCTTTCAAAGACATTGGAGAGTTTCACCTTCCCGTTAAGGTAGAACCCTCAGCATGTTTCACCCCCGGTGACCACTCAGTTACGGAATGTTTTTAAGCCACCTCAGCT [...]
+
~~~~~~~~~~~~~~~~~~~~~~~~~(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\~~~~~~~~~~~~~~~~~~~~~~x~~~~~~~~r~~~~~~~~~~~~~~~~~~~{~~~~~~~~~~~~~w~~~~~~~~~~~~~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~r~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/428/ccs np:i:16 rq:f:0.999632
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/428/ccs np:i:16 rq:f:0.999492
AAGCAGTGGTATCAACGCAGAGTACGGGGCTTAAATGTCGGGAAATTGGGTTTGCGCCGCCTTCAGGGGCAGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAACTA [...]
+
- i~~d~~~b~~~[~}~~Vizw~~~~~M~~~~e~b~~~~~}F~~t~~v~D~~i~~~~zi~~s~r~~~H~~~~~~~~~~2~~~~~~~~f~r~o~~~~i~~~~~u~~u~~~~~~~~~~~b~~uuuz~~~U~~~~~~k~~~~~~s~~~~~~~~y~~m~~~~|r~~~~~~~~~~~~~x~~w~z~~~~~~~}~~uj~~j~~~z~~~\~~~~~~~~~~~~~X~~c~]~9~~~g~~~~~~~~~~~rj~~~~uv]~~~~~~~~~~~~~~~m~v~~~v~~~~~~~R~V~~akn~~w~~w^~~~~~~~~z~\~~~n~~~~~~~~~}~~~~~~~~b~~~~h~~~~Y~~~~~l~~y~~~~~~~~~~~ym~~~~~~}~~~}~~i}~~~~~p~x~~~~~~~~~~~t~~~~w~~nr~~~k~~~~~~z~~~v~~~~~uW~w~~~~~~~~~w~~{~~hW~^~~c~c~H~W}~~~~x~w~~r~~~~~p~~~j~|~~~~y~~M~~~m~~~~ [...]
+ i~~d~~~b~~~[~}~~Vizw~~~~~M~~~~e~b~~~~~}F~~t~~v~D~~i~~~~zi~~s~r~~~H~~~~~~~~~~2~~~~~~~~f~r~o~~~~i~~~~~u~~u~~~~~~~~~~~b~~uuuz~~~U~~~~~~k~~~~~~s~~~~~~~~y~~m~~~~|r~~~~~~~~~~~~~x~~w~z~~~~~~~}~~uj~~j~~~z~~~\~~~~~~~~~~~~~X~~c~]~9~~~g~~~~~~~~~~~rj~~~~uv]~~~~~~~~~~~~~~~m~v~~~v~~~~~~~R~V~~akn~~w~~w^~~~~~~~~z~\~~~n~~~~~~~~~}~~~~~~~~b~~~~h~~~~Y~~~~~l~~y~~~~~~~~~~~ym~~~~~~}~~~}~~i}~~~~~p~x~~~~~~~~~~~t~~~~w~~nr~~~k~~~~~~z~~~v~~~~~uW~w~~~~~~~~~w~~{~~hW~^~~c~c~H~W}~~~~x~w~~r~~~~~p~~~j~|~~~~y~~M~~~m~~~~ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/429/ccs np:i:10 rq:f:0.9993
AAGCAGTGGTATCAACGCAGAGTACGGGGTTGGTGTATTTATCCGCTACGTGGTGGATGAACATGGATGCGAACGACATTTCGAAATATACGCAATGATATCCAACCCTACCGAAACAGCAATAATTGTAGAAGGTAGCATATCATGCCGAGAGTTTACTACGTTGTAGCGAGTTTAGTTGAAATAGTTTGTGATGTGTAAACTAAAACATACCAAATGGTAAAACTTGTCACCCCCATTTACATTGCGACAGACACAGTTATGGAGTGGATGGAAGTGTGTTCGACTGTCAAGACCCTTCTATAATAGTCGAACCAGTACGGTAAGTGGGCAACATGCCCATATAAGTCGAAGCATTTCAAATGGTTCATCCAGTAGACGACGATGTCCTAGACAGTCATGTCTCTTCCCCATTTGAAGTCATGTAGTGGTTGTCTACTTTTTCATTGAAGACGTCCACCTCAACGCTATGAACGTTAGTTGAGACAAT [...]
+
@@ -53,15 +55,15 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/456/ccs np:i:17 rq:f:0.999773
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGGTAACTATCTTAAAAACTTCTAAACTGCTGCTTAGTAGGCAATAATCGACTAAATCCATAATTTTTGCGACCAAACGCAAACTTCAAGAATTTTAGACTTTGAAGACCGCATCGGCAAACCCCATTTTAGATACCACTTTAATTTCCAGTTAATCTACGACGCAAGTCACTTCTTTGTCGTTAAGTTTTATTTAACTGTCGCAAACAACAAAATGGTTTTCTAAATTTACTAAAACCAGGACGCACCTAACTTTCTAAACAAGCACAAGTTTAGCTTCTTCGTAAACGTCACCGCGAACTTTGACGCAAGAATTTTCCATGACCATTTCTGGTTGGTTAGCCGAATTTGGCAGTTCATGTTTTTCCACATAGCCATTGACTCCCACGAATAGGTCTCTTTCTTCTTGTTCCATGCGAATGTAAACGATTAGGCG [...]
+
- ~~~~~~~~~~~~~~~~~~~~~~~~~&~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_~~~~~~~~~e~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~D~~~~~~~~~~\~~~~~y~~~~~~~~~~~S~~~~~~~~~~~~~~~r~~~~~~~~~~~~i~~~~m~~~~~~~~~~~~\~~~~~~~{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{~~~~~~~~~~~~~~~y~~~~~~`~~~~~~~~~~~~~~j~~~~~~~~~~~~~~~~W~~~~~~~~~~~~~~~~~~~~~~~~~~~~~h~~~~~~~~~~~~~~~~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~f~~~~h~~~~~~~~~~~~~~~~|~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~ [...]
+ ~~~~~~~~~~~~~~~~~~~~~~~~~&~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_~~~~~~~~~e~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~D~~~~~~~~~~\~~~~~y~~~~~~~~~~~S~~~~~~~~~~~~~~~r~~~~~~~~~~~~i~~~~m~~~~~~~~~~~~\~~~~~~~{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{~~~~~~~~~~~~~~~y~~~~~~`~~~~~~~~~~~~~~j~~~~~~~~~~~~~~~~W~~~~~~~~~~~~~~~~~~~~~~~~~~~~~h~~~~~~~~~~~~~~~~}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~f~~~~h~~~~~~~~~~~~~~~~|~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/578/ccs np:i:10 rq:f:0.999474
AAGCAGTGGTATCAACGCAGAGTACGGGGCATACTGCAAGACTTGTAGGCCCATGAATTACCCGCTTAGGCAATGGGTAGACCTTTCCTTGCCGCGTGGAACAAACCGCCATGAGTGTTTTACGTTTACGGTCGGCGACCGGAGTCACAGCGCGACCAACGGGGCCAGGCAAAGGCCCATAGGCTTTTCCATCGGCACGCGACCGATTCCATCAAGTGTTAGGTGCAATCCCCATTCGGGACGGACACGCGAGAGCGTTAGTCGGCGCGTGCGCGGGACTATTTAGCGAAGGTCGCCGATCGTTTGCCCGTAAAACTAACTGGCAAAAGCCTAAGTGCTGTTTCGGGTGCAATGGTATAACTTCCCACATTTAGCCGAATAGCGCCAACAGCGTTATTATTTGGAACCAAGCAGTGGGCGATGTCAGCGACAATTCCACTTTGGTAGAGGTCGTTCTTTTGTAGAAAACAATCTAACATAACTATGACAC [...]
+
_~~~~~~l~~~w~_~flU~~~_~~n9~~~~~ifn~{tM~|~ry~~~~r~H~~~~v~~a~~E~~~~d~[m~~e~~^~~~~~~Z~V~~X~j~nm~~q~~l~B~~V~~[~~`~~~~~z~{R~~~~s~h~~b~^~~~`~~~~[~d~~~~c~|g]zP|yQQ~y~\>~~~Y~~X~~l~~h~Y~~~~~V~~Z~~~G~~~~k~l~k}p~~e~~~B~,}j~k~~j~~J~~Y~[nRj~~N~~~~Z~|Q~~~~U~~-~~~Udizxh~g~~~~~~R~~~jU~|~~~Y~~~Y~~g~~~j}{x~g~~~VY~~~}nUj~~}M~~l~W~~~x~q~~~H~}?~~~qg~~q~~~l~~}Yy~~G~~eSkk~~S~?~{m~~~~I~~~}VU~~jeM~~~~k~|njT~j~~l{ehZ~~n~~T~p@~R~f~~~~zTm~G~~~}~~~~s~~~~~or~~~k~~U\~~j~~~~~f~~n~{~~-~~~~~~{P~~~~u~~~~a~~~~m~~~~~~~|~k [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/603/ccs np:i:12 rq:f:0.999894
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/603/ccs np:i:12 rq:f:0.999868
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTGTTTAACGCAAATGCCACCAATACATATGTGTCCTCTTAATGTTTGCATGCTTAATCTTTTGATTATTATTTCCTCTTTCTTTCTATTACTAACTTTGTAACTCTCGCTAACCGAATCAACATAAATACGTCAACGAATCAAATGTTGATCTCAAATATCTGTGTCCATGAAATTTCGGATCGTAATCTGCTCTACTTTTGTTATTACAACAAGAACTTCGACTAAAGAACGGACTATCTTGTCTAATAATAATGGCACTAAGTGCATACTTTCTCGACTACATTGACGACTCAAAATAAGAAAGGGAGTTTTTATACATTGACCTAACTCACTACTACGCCTTGGTTACCTTTGAACCTTTCGTTGTCAAAGTTCGTACGATGGTAAGTGCTTTCTACTCCTACCGCTATTTGGTTGAGAACCTGTTAAATGAGATG [...]
+
- ~~~~~~~~~~~~~\~~~~k~~~~~~'~~~~~~~~~~~~~~~~~~~~~~~~~~~m~~a~~~~i~~~~r~~{~~~~~~~~~~~~~~h~~~~~~~~~j~~~~~~~~~~|~~~d~~~~~~~~~~~~~~~~~~y~~~a~~~~x~~~~~e~~e~~~~~~~~~~~~y~~~g~~z~~~d~~~~}~~~~~~~~~~~~~~~~o~~~z~~~~~~~~y~~~~~~~~~~~r~~~~|~~m~~~u~~~~~~~~~~~~~~~~~~V~~~~~~~~~~~\~~~~~~~~s~x~~~~m~~~~~~~~~~~~~~~~v~~~~~~m~~~~~\~v~~~w~~~~~~~~ve~~~~~~~~~rs~~~~~~~~~~~T~~~~~~~u~~k~~~~i~~~~~~~}~~~~~v~~r~~~~~~~~~~~~{~~~~~~~~~~~`~~~w~~~J~~~~~~z~~m~~~~~~~~x~~{~`~~x~~~~~Q~~~~~~~p~~yb~~z~~Y~~u~c~~~~~~~~~~{~w~~~~~~~~q [...]
+ ~~~~~~~~~~~~~\~~~~k~~~~~~&~~~~~~~~~~~~~~~~~~~~~~~~~~~m~~a~~~~i~~~~r~~{~~~~~~~~~~~~~~h~~~~~~~~~j~~~~~~~~~~|~~~d~~~~~~~~~~~~~~~~~~y~~~a~~~~x~~~~~e~~e~~~~~~~~~~~~y~~~g~~z~~~d~~~~}~~~~~~~~~~~~~~~~o~~~z~~~~~~~~y~~~~~~~~~~~r~~~~|~~m~~~u~~~~~~~~~~~~~~~~~~V~~~~~~~~~~~\~~~~~~~~s~x~~~~m~~~~~~~~~~~~~~~~v~~~~~~m~~~~~\~v~~~w~~~~~~~~ve~~~~~~~~~rs~~~~~~~~~~~T~~~~~~~u~~k~~~~i~~~~~~~}~~~~~v~~r~~~~~~~~~~~~{~~~~~~~~~~~`~~~w~~~J~~~~~~z~~m~~~~~~~~x~~{~`~~x~~~~~Q~~~~~~~p~~yb~~z~~Y~~u~c~~~~~~~~~~{~w~~~~~~~~q [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/624/ccs np:i:14 rq:f:0.999806
TGGTATCAACGCAGAGTACGGGGCTTAAATGTCGGGAAATTGGGTTTGCGCCGCCTTCAGGGGCAGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAACTAGTGCAG [...]
+
@@ -121,11 +123,11 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1216/ccs np:i:23 rq:f:0.999443
AAGCAGTGGTATCAACGCAGAGTACGGGGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAACTAGTGCAGTTGCTAAAGTGCCAACTAAGGTTCGTCTTGAAGCAAT [...]
+
- ~~~~~~~~~~~~~[~~~~~~~~~~~>~~~~~~~.~~~~~~~~~~~~x~z~~~~~~~~h~~l~l~~~~~~~~~x~~~~~~~~~C~~~~~~~~~~~~~U~~~~~l~~~~~~~~~~~p~~~~~~~~~~~~~~~~~~~~~~t~~~c~~j_~~X~~~~~~~~~~~y~~~~~~~~~v~~m~~~L~~~~~~~~~~~~~~~~|~~~~~~u~~~~~~~~~~~~~~~~~{~~_~~~x~~~~~~t~~~~~~~y~~~~~~~~~~~~~~a~~~l~~~~~~q~~~~~~~~~~~~~~~~n~~~~[~~~~4x~~w~~~~~~~~~~~~I~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~y~~w~~~~~O~~~~~~~~~~x~~~~~~~~~~\~~~~~~~~~~~~~~n~y~~~~~~~~i~~~~|~~~~n~g~~]~~~~~~~~~~~~~~~~n~~m~~~j~~~~~~~~~~~~~~~~~~~~~I~t~~~~~~~~~~~~~~~~~~~~~~~ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1226/ccs np:i:11 rq:f:0.998883
- AACGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTCCAATCTGGCAGATTAGATACAGCTATAGAGCGAATCACACGTCTCCTTAGATAACTGGCAAATCTTCACAATTACGCAAGACCATAGAATAGTCCTAAGCAACATTTGCCGCATCGACCAAATCATGGCTTTGCACTCCAACTTTGCCTGAATCGTGTCAGACTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGAGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCAGCACGCAATCGCAAGATACGCAGTAATGCTAAACCATACTTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCGAGCACAACGCTTCTTGGCTACACAT [...]
+ ~~~~~~~~~~~~~\~~~~~~~~~~~>~~~~~~~.~~~~~~~~~~~~x~z~~~~~~~~h~~l~l~~~~~~~~~x~~~~~~~~~C~~~~~~~~~~~~~U~~~~~l~~~~~~~~~~~p~~~~~~~~~~~~~~~~~~~~~~t~~~c~~j_~~X~~~~~~~~~~~y~~~~~~~~~v~~m~~~L~~~~~~~~~~~~~~~~|~~~~~~u~~~~~~~~~~~~~~~~~{~~_~~~x~~~~~~t~~~~~~~y~~~~~~~~~~~~~~a~~~l~~~~~~q~~~~~~~~~~~~~~~~n~~~~[~~~~4x~~w~~~~~~~~~~~~I~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~y~~w~~~~~O~~~~~~~~~~x~~~~~~~~~~\~~~~~~~~~~~~~~n~y~~~~~~~~i~~~~|~~~~n~g~~]~~~~~~~~~~~~~~~~n~~m~~~j~~~~~~~~~~~~~~~~~~~~~I~t~~~~~~~~~~~~~~~~~~~~~~~ [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1226/ccs np:i:11 rq:f:0.998655
+ AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTCCAATCTGGCAGATTAGATACAGCTATAGAGCGAATCACACGTCTCCTTAGATAACTGGCAAATCTTCACAATTACGCAAGACCATAGAATAGTCCTAAGCAACATTTGCCGCATCGACCAAATCATGGCTTTGCACTCCAACTTTGCCTGAATCGTGTCAGACTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGAGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCAGCACGCAATCGCAAGATACGCAGTAATGCTAAACCATACTTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCGAGCACAACGCTTCTTGGCTACAC [...]
+
- `:-)Td~~~~~D~n~{~~n~x}x$~~~~~~~~~~~~~~~~~~~~~~~~~pF;jq~}zpi~f~~km~il~T~q~rWXFz~t~~~t_~~d`({ngey~d~T~nm`zT~~~\~ua~~gJk~~~~.GB~~ogm_~t~Pg.Xtsd{~~g~U~o^~~~R~uk;F~zl~ppxwXWnU~Z~~~io~[~db~~rM{N~*~^~lG~|o]~~MJ~~Ko~t~J~w~ez~ag^jE~~~|~Y~~s~M~~gSn~{~tm~n~~~~e~v^o|qczr~_~~~~[q~z`~~~ia~~n~~S~L~l~t~m~~~soX~l~i~~~p~>~_~J~Z~~~j~~v~~~[~~X~uG~c|~kJVsrV}~glg6L:glVVzf~NP~~zU~~Rg~~{r}D]h~q\esb~w|j~gVMll~u~~]etCqtU~}~@|H~~I~~~~z^~~`\xgL~wt}~~~p~X~|b~f~~~l~qr~~~~~~i~~_~~H~~~~~[v~~~~~x|~e~s~vm~pO~S~m~`rrns~ [...]
+ 2`$Z(8[Q~~~~~3~h~{~~i~r~^%~~~~~~~~~~~~~~~~~~~~~~~~~oE;jq~}zpi~f~~km~il~T~q~rWXFz~t~~~t_~~d`({ngey~d~T~nm`zT~~~\~ua~~gJk~~~~.GB~~ogm_~t~Pg.Xtsd{~~g~U~o^~~~R~uk;F~zl~ppxwXWnU~Z~~~io~[~db~~rM{N~*~^~lG~|o]~~MJ~~Ko~t~J~w~ez~ag^jE~~~|~Y~~s~M~~gSn~{~tm~n~~~~e~v^o|qczr~_~~~~[q~z`~~~ia~~n~~S~L~l~t~m~~~soX~l~i~~~p~>~_~J~Z~~~j~~v~~~[~~X~uG~c|~kJVsrV}~glg6L:glVVzf~NP~~zU~~Rg~~{r}D]h~q\esb~w|j~gVMll~u~~]etCqtU~}~@|H~~I~~~~z^~~`\xgL~wt}~~~p~X~|b~f~~~l~qr~~~~~~i~~_~~H~~~~~[v~~~~~x|~e~s~vm~pO~S~m~`rrn [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1234/ccs np:i:10 rq:f:0.999644
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTGACGCAAATGCCACCAATACATATGTGTCCTCTTAATGTTTGCATGCTTAATCTTTTGATTATTATTTCCTCTTTCTTTCTATTACTAACTTTGTAACTCTCGCTAACCGAATCAACATAAATACGTCAACGAATCAAATGTTGATCTCAAATATCTGTGTCCATGAAATTTCGGATCGTAATCTGCTCTACTTTTGTTATTACAACAAGAACTTCGACTAAAGAACGGACTATCTTGTCTAATAATAATGGCACTAAGTGCATACTTTCTCGACTACATCGACGACTCAAAATAAGAAAGGGAGTTTTTATACATTGACCTAACTCACTACTACGCCTTGGTTACCTTTGAACCTTTCGTTGTCAAAGTTCGTACGATGGTAAGTGCTTTCTACTCCTACCGCTATTTGGTTGAGAACCTGTTAAATGAGATGGTTCG [...]
+
@@ -133,7 +135,7 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1241/ccs np:i:17 rq:f:0.999516
AAGCAGTGGTATCAACGCAGAGTACGGGACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCTCTACTAGTCTTCTCTGAGGAACCATGAGATGGATAGTGGGGGACCTGAGTCATACTAGGGTAACTTCTTATATGGTGACATCACTCCTACCGTAGAGGGGGACGGTAGTCTGTGGGAAATCTACCCTAGTGAAGAAAGGTAAGAGAATGTCTGAACATTACCTGTAGACGAAGGTACTCTCAGAACAACTACTCTCACATACGGAAAGGTTTGGGTCCTTGGTCAAAGGACTTTACTGACTCTGCAGACGATGAATATCTGAACCAACACTACTATCAAAGATGTTCGACTAGACCTCTCGTGGTAGGGCCTGGAAGTCAAAAGACTTCTCTATGGGTACTAGGTAGGTAGTTAGAGTACGGTCCCTG [...]
+
- y~~~o~r|~~~~~w~u~_~~~~~~~L~~~k~~~~~~V~~~~~~~~~r~~~~~~}~~~~~~~~zn~~~~~~k~~~~~~~~~~~~~:~~~~~~~~~~~~~~zM~~~~~~~u~x~~|~~~}~~~~~~~~~~~~~p~~~~~~~~~x~q~~~~~~~~U~~~~s~E~~~~~v~~k~~~~~~~~~~y~~~~~~\~~|~~~~~~~~~~~~~~~}~X~~~~~~~~~~,~~~~~~~~~~~~~~~~n~~r~~~~~~]~~~~~~~|~~h~~~~~n~~x~~~~~~~~~f~y~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~v~~~~~~~~m~q~~~~t~~f~~~z~~~~~~~j~~q~~~x~~~z~~~~~~~||~~~ja~~~~~~~~~~~~~VwK~~~~_~~~k~~h~~~~~~j~~~~~~~~~p~~~~~~~|~~~h~~~~}V~~~~~w@~~~~~~~~~~~~~~X~~~~~~~~~~s~~~~~~~~j~~~~~~~~j~~~4 [...]
+ k~u~p~r|~~~~~w~u~_~~~~~~~L~~~k~~~~~~V~~~~~~~~~r~~~~~~}~~~~~~~~zn~~~~~~k~~~~~~~~~~~~~:~~~~~~~~~~~~~~zM~~~~~~~u~x~~|~~~}~~~~~~~~~~~~~p~~~~~~~~~x~q~~~~~~~~U~~~~s~E~~~~~v~~k~~~~~~~~~~y~~~~~~\~~|~~~~~~~~~~~~~~~}~X~~~~~~~~~~,~~~~~~~~~~~~~~~~n~~r~~~~~~]~~~~~~~|~~h~~~~~n~~x~~~~~~~~~f~y~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~v~~~~~~~~w~k~~~~c~~f~~~z~~~~~~~j~~q~~~x~~~z~~~~~~~||~~~ja~~~~~~~~~~~~~VwK~~~~_~~~k~~h~~~~~~j~~~~~~~~~p~~~~~~~|~~~h~~~~}V~~~~~w@~~~~~~~~~~~~~~X~~~~~~~~~~s~~~~~~~~j~~~~~~~~j~~~4 [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1250/ccs np:i:10 rq:f:0.999746
AAGCAGTGGTATCAACGCAGAGTACGGGGTGGAGAAGCAAATACTTGGATACCGAATTTAGAGGCCATAGGTTATGGAAAAAGTCAGTGGATTAGATAGTAAAAGTCGAAATCTTTATATTCGGTTCGATGTACTACGTTATTCGCGACTGTTCTGTCATGATAGTTTTTTATATAGTCCTAATAAAAGGAGTTTTTAAAGTAAATGACATTTCAGTAGTAAAAGTTTAAGAGCTTTTTGTTCTGCCAGACGTTCTGATAGTTGAGGAAAACGTGTGGTCAGCTAATAACTTGTGGTATGGAGTAAACGAACATCCAACAGTATGTACAATCGTATGAGAAAGGACAAATCTGAAGACGATATTAGAGGGAGTCCAACAAGTTTGTGATGATTCACGTAAGGAAATCGAAATGTAAGATTATTCGTCAATGGAGGTATAAGACAACACACCAAGTAATTATACGCGACGAGTTTTCATGTTGACGATCCC [...]
+
@@ -153,7 +155,7 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1426/ccs np:i:13 rq:f:0.999505
AAGCAGTGGTATCAACGCAGAGTACGGGGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATTACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAACTAGTGCAGTTGCTAAAGTGCCAACTAAGGTTCGTCTTGAAGCAA [...]
+
- |~~O{~hf~~~~~Z~~~N~|~x~~~5~~iil~~K~~~~~~~~v~~~{~b~~e~~~~~T~~{Q,~r~~~~_}~l~~~~~h~~~^~~~~~~w~~~~~~o~~~~~~~~U~~~~t~~~@~~~~~k~~~~~~~u~~hk~l~~~~t~x~~~X~~s~~~~~~~~n{t~~~~~~~~~~o~~[~~~I~~~{~~~|~~~~\~~~g~~~~~~r~~~~~~~~~,~~~~~~fyB~~~r~~~~~~~V~W~a~AH~~~~~~~Yf~~~o~~~lt~~~t~~~~~~c~~v~~~~q~~~~~~~~W~~~qd~~~~~{~~~~~~~~N}k~~~~B~~w~j~^~~~~~}~~~~~~~~|z~~~~~~~L~~}~~~~~~~|~r~~~w~~~~~b~~~~z~~~~~~R~~~~~~~~~~~~~~z~~~{~:~~~~r~~\~~~~~~o~~~~j~~~~~~~~~u~~y~~vv~~s~~~y~~~~~~~~~~t~~Yz~~~~~~t~~~~}~~[~~~s~~]v~~~~~~~~ [...]
+ |~~O{~hf~~~~~Z~~~N~|~x~~~5~~~fp~~K~~~~~~~~v~~~{~b~~e~~~~~T~~{Q,~r~~~~_}~l~~~~~h~~~^~~~~~~w~~~~~~o~~~~~~~~U~~~~t~~~@~~~~~k~~~~~~~u~~hk~l~~~~t~x~~~X~~s~~~~~~~~n{t~~~~~~~~~~o~~[~~~I~~~{~~~|~~~~\~~~g~~~~~~r~~~~~~~~~,~~~~~~fyB~~~r~~~~~~~V~W~a~AH~~~~~~~Yf~~~o~~~lt~~~t~~~~~~c~~v~~~~q~~~~~~~~W~~~qd~~~~~{~~~~~~~~N}k~~~~B~~w~j~^~~~~~}~~~~~~~~|z~~~~~~~L~~}~~~~~~~|~r~~~w~~~~~b~~~~z~~~~~~R~~~~~~~~~~~~~~z~~~{~:~~~~r~~\~~~~~~o~~~~j~~~~~~~~~u~~y~~vv~~s~~~y~~~~~~~~~~t~~Yz~~~~~~t~~~~}~~[~~~s~~]v~~~~~~~~ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1446/ccs np:i:13 rq:f:0.999412
AAGCAGTGGTATCAACGCAGAGTACGGGGCTTGTCCGCGAGTGTCAACCGGGTTTTACAAAGGAGAACTTCCAACATCAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTGTGAGGCGCAAGGTACATGCTCTTACCCCACTCTCAGCACGTAGGGAGCGGAGTGTGGAAGACCAACAAGCCCGTCGCCTCTACCAAATACAGTGTTTAGGTGTGTCGGAGGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCTCTAC [...]
+
@@ -205,15 +207,15 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1800/ccs np:i:16 rq:f:0.999483
AAGCAGTGGTATCAACGCAGAGTACGGGGGTTGGTGTATTTATCCGCTACGTGGTGGATGAACATGGATGCGAACGACATTTCGAAATATACGCAATGATATCCAACCCTACCGAAACAGCAATAATTGTAGAAGGTAGCATATCATGCCGAGAGTTTACTACGTTGTAGCGAGTTTAGTTGAAATAGTTTGTGATGTGTAAACTAAAACATACCAAATGGTAAAACTTGTCACCCCCCATTTACATTGCGACAGACACAGTTATGGAGTGGATGGAAGTGTGTTCGACTGTCAAGACCCTTCTATAATAGTCGAACCAGTACGGTAAGTGGGCAACATGCCCATATAAGTCGAAGCATTTCAAATGGTTCATCCAGTAGACGACGATGTCCTAGACAGTCATGTCTCTTCCCCATTTGAAGTCATGTAGTGGTTGTCTACTTTTTCATTGAAGACGTCCACCTCAACGCTATGAACGTTAGTTGAGACA [...]
+
- ~~~~~~~W~~~~~|~~~qy~~o~~~.~~~z`~?~jm~ug~~~u^~`b~~~f~F~~X~~~~}~}~~r~~z~~~p~~~s{~b~~i~R~~~~}~~~~~~~{~~~~D~~~]~~~~I~~w~~~~~|A~~~~q~S~~y~~n~~~eh~~~~~~~~o~~~~~~n~~~~~~~~k~~~~g~v~~n~~~yc~~{~~~~~J~~~~~z~~~|~a~~w~H~~~{~~~K~c~~~k~~R~~~z~~~~~~-~~~~~~n~~~Z~~~txx~~~~~b~d~~Z~~~S~~fp_~~~a~x~{~\~lv~U<~~~~~zZ~~~@~~Y~~~~~~~~~|~z~~~q~~g~~~W~~}~~~=~~~~~j~~~N~~~~}B\~~~~vy~c~~;~~hY~~~l~~~|~~\~sx~z~~~a~d~~~~~c~~~~~e~~~m~~|~~~~~~N~~~~w~~c~~~~~~~~~~x~`~~~~~~~~vS~~~~v~~~df~m~dA~X~~C~~~k~~z~~~~~E~rrx~~~~~~~y~f~ [...]
+ ~~~~~u~[~~~~~t~~~qy~~o~~~.~~~z`~?~jm~ug~~~u^~`b~~~f~F~~X~~~~}~}~~r~~z~~~p~~~s{~b~~i~R~~~~}~~~~~~~{~~~~D~~~]~~~~I~~w~~~~~|A~~~~q~S~~y~~n~~~eh~~~~~~~~o~~~~~~n~~~~~~~~k~~~~g~v~~n~~~yc~~{~~~~~J~~~~~z~~~|~a~~w~H~~~{~~~K~c~~~k~~R~~~z~~~~~~-~~~~~~n~~~Z~~~txx~~~~~b~d~~Z~~~S~~fp_~~~a~x~{~\~lv~U<~~~~~zZ~~~@~~Y~~~~~~~~~|~z~~~q~~g~~~W~~}~~~=~~~~~j~~~N~~~~}B\~~~~vy~c~~;~~hY~~~l~~~|~~\~sx~z~~~a~d~~~~~c~~~~~e~~~m~~|~~~~~~N~~~~w~~c~~~~~~~~~~x~`~~~~~~~~vS~~~~v~~~df~m~dA~X~~C~~~k~~z~~~~~E~rrx~~~~~~~y~f~ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1860/ccs np:i:28 rq:f:0.999702
AAGCAGTGGTATCAACGCAGAGTACGGGGGGGGCAGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGGACTATGGGACTAGTCGTCTTCGGTCTTACAAATGTTGCAATGCCCTGTGAGCTACTTATGAAACATGAATGGTCGGTCTTGTGGTCGCTTTTGTCGAAATCACCGAAGTGCGTATAATTGATGAACGAGTCGAAGTCGAAGTTGTTCAACAAGAGAGTTAGGTAGTGCCGCTTGAAAAAGTAATAGTGCAAATAAGAAAAAGAAGCGAAACGGCATTCGTTTAACAAAACGTCACAT [...]
+
~~~~~~~~~~~~~~~~~~~~~~~~~S~~~~~~~~~~~~~~s~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{~~~~~~b~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1902/ccs np:i:9 rq:f:0.9991
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1902/ccs np:i:9 rq:f:0.999074
AAGCAGTGGTATCAACGCAGAGTACGGGGTAAGTTTATTGATAGGTAAAAAATCAAGAGAGGGTAATAAAGAAGAAAGAATAATCAAAAGATAGAGCATGCAAACATTACATGGTAGTATTGTTATAGGCGGTATATTGGTAAATGACGATCCTTGACTTAGTTTTTTACATCGAACGGTTGCAAATCCTAGCATACTTGATATTAATAGTAGATACTGAAATATATCTGAGTATATCAAGGGAAATCGAGATGTAACAATAAGTCGAGGAAATTAAGGTCAATTTAGTGCTTATCATAGAAATAACTACTTAAGCCCTTAACGAACTAACTCAAATTAACGAGGTAGAGGTTATTCTGAATTGTACGAACGTAGTCGAAGTTTGTTACCAAGGGTAAAGCCAAAACAAAACGATTTGACAAGAGAATCTATTCCATGTAGTAGTGCGTTTGTACGACGTTCTATTCGATGTAAATCATTAGGACGAGGG [...]
+
- ~~l~~~}1~vaVYd~~~k~e~gsdi*~~~zz~~4~~~g~~zs~j~~9~~~~~~~e~~{t~[~~~UoBN~~ee~iX~~ja~\b~z~/~~~yuw~~~~~w~Wj]~~~~u~~~~~g~|~~~~[~}d~^~~W~gE~_~~~M~]~~\~~{5~~u~~`~~~~~~k~~o@~~~~~v~~~~~}~th~]~pqF~~nr~~~r`~~xon~~~s~I~q~~~~~~r~n~~~~e~~~~~~~l~nRnm~~~~~_~T~~d~~~~>wo~}~~m~~~~lm~~~r~~H~J~~X~e~r~p~~~q~~~~~~~~~~~~~~~~`~~~Z~~~~qn~Y~~W~~~~9~~t~~r~Z~~~~P~~p~n~~~~G~~~t~]~Q~wf~~~~^~~~p~~~~_~~~~~q~Xii~tY~~cU~~m~t~D~~Zi~~~n~S~~~~R~~~~lj?~~~~~}~r|~Q~~~~~q~n~~~w~kakeo~~~~P~~~}f~Y}~~~~~~~e~~~~~~~d~~~~~u~~q~~~~~R~| [...]
+ ~~k~~~}1~ubWYd~~~k~c~greh(~~~xx~~J~~~x~}yr~h~~4~~~~~~~y~|bn~V~~~n~BI~~ec~i\~~Tb~~t~y~B~~~~s`~~~~~x~Wi_~~~~u~~~~~g~|~~~~[~}d~^~~W~gE~_~~~M~]~~\~~{5~~u~~`~~~~~~k~~o@~~~~~v~~~~~}~th~]~pqF~~nr~~~r`~~xon~~~s~I~q~~~~~~r~n~~~~e~~~~~~~l~nRnm~~~~~_~T~~d~~~~>wo~}~~m~~~~lm~~~r~~H~J~~X~e~r~p~~~q~~~~~~~~~~~~~~~~`~~~Z~~~~qn~Y~~W~~~~9~~t~~r~Z~~~~P~~p~n~~~~G~~~t~]~Q~wf~~~~^~~~p~~~~_~~~~~q~Xii~tY~~cU~~m~t~D~~Zi~~~n~S~~~~R~~~~lj?~~~~~}~r|~Q~~~~~q~n~~~w~kakeo~~~~P~~~}f~Y}~~~~~~~e~~~~~~~d~~~~~u~~q~~~~~R~| [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1945/ccs np:i:27 rq:f:0.999884
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGTTGGTTCGTACAGCGGTAAATGACTTGTTGAGTCTTGACGTCGACGACCAAAGCGACCACTTTGACCCAATTGCGAACTACTAAATCCTAAGCAAAGACTATTAGGTAGTAGCCAACTTCGTTAATTCCGTTCAGTACTTTTAAATTCTAACCGACCATCTTTCCGAGTTGCTTCAAACCCTCGTCCTAATGATTTACATCGAATAGAACGTCGTACAAACGCACTACTACATGGAATAGATTCTCTTGTCAAATCGTTTTGTTTTGGCTTTACCCTTGGTAACAAACTTCGACTACGTTCGTACAATTCAGAATAACCTCTACCTCGTTAATTTGAGTTAGTTCGTTAAGGGCTTAAGTAGTTATTTCTATGATAAGCACTAAATTGACCTTAATTTCCTCGACTTATTGTTACATCTCGATTTCCCTTGATAT [...]
+
@@ -234,10 +236,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
AAGCAGTGGTATCAACGCAGAGTACGGGGTAAACGAACATCCAACAGTATGTACAATCGTATGAGAAAGGACAAATCTGAAGACGATATTAGAGGGAGTCCAACAAGTTTGTGATGATTCACGTAAGGAAATCGAAATGTAAGATTATTCGTCAATGGAGGTATAAGACAACACACCAAGTAATTATACGCGACGAGTTTTCATGTTGACGATCCCTGAGACTATATCATACAAAATTGACCCAAATAATAAACTCGTTCCAATAGTTGAAGTGTTGATTAACACATTGAGACAAGTTGTCCGTACTTTAATCATCAAAGTTTTGGACTGACCTATAAATGAAATATTCGCGTTGTCTTCAGTTTAAGAAGTGATATTATTTTCGGTTTCAAGCCTATGTGGAGAGATACAGGAAATAGGTAAACTATAACTAATATAAATATACGCAGACGAAGCCTGTTAACTTTACCAAATCCAAATAGCGGGAGAC [...]
+
r~~~~~~`~~~~~~~~~s~~~~~~~d~~~~m~~~~d~~~~~~~~v~~~~~~~~ji~~~~~~q~e~2~~r~~~Y~~~~~~~~~~~~~~~h~~~~U~~~~~|~~~~~~~\~~~~~~|~~_~~~~~~r~~~P~~~~~G~~~~~~~~v~~~k~~~~~~~~_~~~~~~~y~~~ov~~~y~h~v~~~j~~~~~~~m~~~~~~~a~~~~~~~u~u~~~~~U~~~~~~~~~j~~~~~~~~M~~~~~~~`~~f~~~~~ce~~q~~~~~`~~~~~~b~|\~~~lt~~~}~_~~~~~t~~~~~~j~p~~f~~~~~~~R~~~~~~~Z~q~~~F~~~o~~~~~~j~~~~W~~~~k~~~p~~v~~~U~~~~U~~~~W~~p~~j~~p~~~~n~~@~~~~|~h~~~s~~~~~k~~~f~|G~w~~~n~`~A~~~~~~~U~~~|~~~~~~~~~~~{~~~~~~~s~~~~~~~~~o~~[^~~~~s~~~~~p~~~z~l~~~~~~P~~~~~~ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2012/ccs np:i:11 rq:f:0.999194
- AAGCAGTGGTATCAACGCAGAGTACGGGGCTTGTCCGCGAGTGTCAACCGGGTTTTACAAAGGAGAACTTCCAACATCAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTGTGAGGCGCAAGGTACATGCTCTTACCCCACTCTCAGCACGTAGGGAGCGGAGTGTGGAAGACCAACAAGCCCGTCGCCTCTACCAAATACAGCTATCCTGAGGTGCCAGGTTAGAATAGGCCCTACCACATCTAAGCCTTGAAACGGTCTGTTCCTCGTGTCAAGTTCTTGTCCGCTTATACCGCCATCTCTCGTTGTGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATAGAGCCTAGTGGTCATTAGAAGGTCAACATGGAGTAGGTGTTTAGGTGTGTCGGAGGGCAGAAACCAA [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2012/ccs np:i:11 rq:f:0.999049
+ AAGCAGTGGTATCAACGCAGAGTACGGGGCTTGTCCGCGAGTGTCAACCGGGTTTTACAAAGGAGAACTTCCAACATCAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTGTGAGGCGCAAGGTACATGCTCTTACCCCACTCTCAGCACGTAGGGAGCGGAGTGTGGAAGACCAACAAGCCCGTCGCCTCTACCAAATACAGCTATCCTGAGGTGCCAGGTTAGAATAGGCCCTACCACATCTAAGCCTTGAAACGGTCTGTTCCTCGTGTCAAGTTCTTGTCCGCTTATACCGCCATCTCTCGTTGTGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATAGAGCCTAGTGGTCATTAGAAGGTCAACATGGAGTAGGTGTTTAGGTGTGTCGGAGGGCAGAAACCAA [...]
+
- a~~p~~~q~~~~~k~~~mg~~~~i~C~~~~~~\~]~~~lg~~n{r@~n~`~~I~~~|u^~~[~~uK~~L~d~,~~`dgIi~~i~~P~~~~yG~~zh~~~~S~~~~~~~~~~e~~x~yy~~~~~~~x~a~~~~~~~~\~~~x~z~~~~N~~~~~w~~u~zv~~~~~~w~b~~~~v~~~~~~u~~~~~~|~[~~~~D~~~~~~~~{~~~~~~w~C~~~}~l~~~~~~F~~~x~T~V~~v~~f~~~~d~s~~~~~e~c~~~~tn~e~~~y~~~~Q~~yq~ue~~~~~r~`~u~T~~~~y~~~~~~~~~~u~P~tQ~~xc~~~~up~i~n~~~~~cs~uy~j(~o~P~~oa~~~~e~~h~~~~~~~~~v~y~r~~~w~~~~~b~_~u~~~~~~~~~~a~~~b~X~~_~~~~~~|~~~~~~s~x~~~~n~sb~~~~~x~~}~w~~zd~u~~~~~zo~e~~~~~r~~~O~~~\~~~~v~~g~~i~~~~zn~~x~r~ [...]
+ a~~p~~~q~~~~~k~~~mg~~~~i~C~~~~~~\~]~~~lg~~n{r@~n~`~~I~~~|u^~~[~~uK~~L~d~,~~`dgIi~~i~~P~~~~yG~~zh~~~~S~~~~~~~~~~e~~x~yy~~~~~~~x~a~~~~~~~~\~~~x~z~~~~N~~~~~w~~u~zv~~~~~~w~b~~~~v~~~~~~u~~~~~~|~[~~~~D~~~~~~~~{~~~~~~w~C~~~}~l~~~~~~F~~~x~T~V~~v~~f~~~~d~s~~~~~e~c~~~~tn~e~~~y~~~~Q~~yq~ue~~~~~r~`~u~T~~~~y~~~~~~~~~~u~P~tQ~~xc~~~~up~i~n~~~~~cs~uy~j(~o~P~~oa~~~~e~~h~~~~~~~~~v~y~r~~~w~~~~~b~_~u~~~~~~~~~~a~~~b~X~~_~~~~~~|~~~~~~s~x~~~~n~sb~~~~~x~~}~w~~zd~u~~~~~zo~e~~~~~r~~~O~~~\~~~~v~~g~~i~~~~zn~~x~r~ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2091/ccs np:i:24 rq:f:0.999763
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCTAAAGTAATGCCTCTACGTCAGTCGGAACAATGTCGTCGTGTAACTCGACGATCTTAGGAGCTACTAAGGAGAGTCTGTAGGGAACCGACTGGGAAGGTGCCACAAGTTTTCTCTACTACTCCGTCTCCTAAAACAACTCCAAGTGGAAGGTCTGTGGGTTTTTGAGTATAGTCCGTATCTAGACCCAAAAGGGCTTACCTTCGCAATGAAAGAATATCCTTATAGACACGAACGGGAAGAACGGAATCGTTATTAATGACGTCGTACAACGTTTTCCAAGTTCTCCTCTTCCTCCGGATTCGGTTTGGGTTATCTCAACTAGTCCTTTCAAAGACATTGGAGAGTTTCACCTTCCCGTTAAGGTAGAACCCTCAGCATGTTTCACCCCCGGTGACCACTCAGTTACGGAATGTTTTTAAGCCACCTCAGCT [...]
+
@@ -249,7 +251,7 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2126/ccs np:i:23 rq:f:0.999895
AAGCAGTGGTATCAACGCAGAGTACGGGAGACCAGTAGTTGGGTCAGAAATTAGACGTGGTTTAGTCTGGTTACCGTGGAAAGAATAGCTGAACTCAAAGAAGCCGACAAAGATAAACAAAGAAGAAACGGTTAATACGATTGAGGAGAAATATTCAATCCAACGGCAACTATTAACGTTTCAACTAGAATCTACGTTTCATACGCGGATTCCACATCCGTTCTTGCAATTAAAGAAACGATGTAGAAAACGCTTTGGTTGGCGACAACTTGGGCGGCAAAATAATTATGGTAGGTAATTGAAGTAGCGTTAAAACGCAAAAAGAAGGAAGCACGGATCACTGCAAAAAGGACTACTCAATAATGGTTTCTAAAGTCATTATGCTGGTGCTCCCTATGGCGGTGGTCAGTACTGTAACTAAAGATGGATTACGGCACTTGTAGAGCACGTATCAGACCCAGCTTTGAAAGAAGGCTGAGTTCGGTTCGGG [...]
+
- 0~~~~~~~~~~~~~~~w~~~~~~~~e~~~~~~~~~~~~~~k~~~~~~~~~~~~~~~~~~~~~~~~s~~~~~~~v~~~~~w~~~~~~~~~~~~~~~~~~~~~~~k~~~~~~~~~~~~~~~~~~~~~y~~~m~~~~~~~~~~~~~~~~~~t~~~~~~~~~~p~~~~b~~~~~~~~~~~~~~~~~n~~~~~~~~~~~~~~~~~~~~~~~~~~~~P~~~~~~~~~~~~~~~~~~~c~~~m~~~~~~~~~~m~~~~~y]~~j~~~~~{~~~~~~~~]~~~h~~w~~~~~~~~~~}~~~z~~~~~~~~~~~~~~~~~O~~~~~tj~~~~~~~~~~~~~~~~~~~~~~~y~~~~~~~~~~~~~~~~~~|~~y~~~~~~`~~~~i~~~~~~~~t~~~~~p~~~~~y~~{~~a~~v~~~~~~~~C~~~u~~~~~f~~~~~~d~o~r~~~~~~~~~~~~~~~x~~~p~~~~~x~~~~~~~~~~~~~~~~~~~~~~~~U~~ [...]
+ 0~~~~~~~~~~~~~~~w~~~~~~~~e~~~~~~~~~~~~~~k~~~~~~~~~~~~~~~~~~~~~~~~s~~~~~~~v~~~~~w~~~~~~~~~~~~~~~~~~~~~~~k~~~~~~~~~~~~~~~~~~~~~y~~~m~~~~~~~~~~~~~~~~~~t~~~~~~~~~~p~~~~b~~~~~~~~~~~~~~~~~n~~~~~~~~~~~~~~~~~~~~~~~~~~~~P~~~~~~~~~~~~~~~~~~~c~~~m~~~~~~~~~~m~~~~~y]~~j~~~~~{~~~~~~~~]~~~h~~w~~~~~~~~~~}~~~z~~~~~~~~~~~~~~~~~O~~~~~tj~~~~~~~~~~~~~~~~~~~~~~~y~~~~~~~~~~~~~~~~~~|~~y~~~~~~`~~~~i~~~~~~~~t~~~~~p~~~~~y~~{~~a~~v~~~~~~~~C~~~u~~~~~f~~~~~~d~o~r~~~~~~~~~~~~~~~x~~~p~~~~~x~~~~~~~~~~~~~~~~~~~~~~~~U~~ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2164/ccs np:i:14 rq:f:0.999337
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGACGCAAATGCCACCAATACATATGTGTCCTCTTAATGTTTGCATGCTTAATCTTTTGATTATTATTTCCTCTTTCTTTCTATTACTAACTTTGTAACTCTCGCTAACCGAATCAACATAAATACGTCAACGAATCAAATGTTGATCTCAAATATCTGTGTCCATGAAATTTCGGATCGTAATCTGCTCTACTTTTGTTATTACAACAAGAACTTCGACTAAAGAACGGACTATCTTGTCTAATAATAATGGCACTAAGTGCATACTTTCTCGACTACATTGACGACTCAAAATAAGAAAGGGAGTTTTTAATACATTGACCTAACTCACTACTACGCCTTGGTTACCTTTGAACCTTTCGTTGTCAAAGTTCGTACGATGGTAAGTGCTTTCTACTCCTACCGCTATTTGGTTGAGAACCTGTTAAATGAGATG [...]
+
@@ -266,10 +268,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTACTATACTACGAGGACGTCACCACTGAGGTCTCCGACATGGACACCTAGTCCCGGACTCACCGAACCTACACCGTTCCCTTCAGTGTGTTCTTTCGGAGTAGTGAAAAAACGTTGGTCTTCCCGGTCTACTATCCATCGTTCATGTTCGGCTTTTACAAGTTACCTTCAACAATTTTACAAAGCAATGCTTGTGGGCTAGGGCACCGCGTTTTGAAGTAAATAGATGTAACCTACCACCCATAAACTGCTCTAACAATTTAAGTTCGTCGTCGCCTTCTTTTTATATCACTAACGTGTACCTACCTTAGAGCGTTACCAAAGTACATATACAGATTTCTCAATGTATTTGACCTGGCTCTCTGCAATCTCTCTCAAGATGCGTAAGCACTTTCAGTAGGACGAATTTACGGTGGTAATTTCGCACACTTCGCACG [...]
+
~~~~~~~{~~~~~^~~~~~~~~~~~'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~r~~~~~n~~~~~~~]~~~~~~~~~~~y~~~~~~~~~~~i~~~~~o~~p~~~~~~|~~~~~~~~~~k~~o~c~~~~~~~~{~~k~~i~~~v~~~~~~~~1~~~~~~~n~x~p~Q~N~~\~~~~~~~~~~~~~~~~~~~~~~~~w~~\~~~~~~~~g~~O~~~~~~~~~h~~~~~U~~~pp~~~~~~~~F~~t~~o~~tpX~~~~Y~~~~l~~~o~~~~~~~~~~~p~~~p~~S~~~{L~~~~~~~~~Y~~~~e~~~~~~~~~~~~~~sd~Q~~O~~~~~~~~puz~~~~~~~~~~~~~k~~~~~~~s~~~~c~Y~~~~~~~~~~~~~~~s~~~~~~~~~~~w~~~~m~~[~~~~~~~~~}~~~~~~~~~~~~~~zu~~~~r~~~p~~~~~~~j~n~~Q~s~~~~Q~~n~~j~l~~~~~~~~~h~~~~~~~ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2295/ccs np:i:8 rq:f:0.998774
- AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTAGTCTGGCAGATTAGATACAGCTATAGAGCGAATCACCACGTCTCCTTAGATAACTGGCAAATCTTCACAATTACGCAAGACCATAGAATAGTCCTAAGCAACATTTGCCGCATCGACCAAATCATGGCTTTGCACTCCAACTTTGCCTGAATCGTGTCAGACTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGAGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCAGCACGCAATCGCAAGATACGCAGTAATGCTAAACCATACTTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCGAGCACAACGCTTCTTGGCTACAC [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2295/ccs np:i:7 rq:f:0.999077
+ AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTAGTCTGGCAGATTAGATACAGCTATAGAGCGAATCACCACGTCTCCTTAGATAACTGGCAAATCTTCACAATTACGCAAGACCATAGAATAGTCCTAAGCAACATTTGCCGCATCGACCAAATCATGGCTTTGCACTCCAACTTTGCCTGAATCGTGTCAGACTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGAGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCAGCACGCAATCGCAAGATACGCAGTAATGCTAAACCATACTTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCGAGCACAACGCTTCTTGGCTACAC [...]
+
- q~m\~of[~~kjl4o`ptqpob~Zc$~~~~~~~}|~~~~okn{~~}ot~~~}}tgWhW~[~pns~O~q_~~~[~Bbc~~mFl[s\i~lt~N~mkX}i_L~n~\qro_~tp_~uP~~>r^~p@[p~p~qq^On~o~^~q~~t]~~~rl;~~^~r^?~brG~~rR~tu~~rH~b~B~~~]nn\~s9~~`]dmoU~]~q5~~qa~~pn~[raoa}VokWl~~~pqo(~tt_qO~ts~\~i}ksjzrnt~h~te~`~}]nI~q~v~a~~sm^o^r@~zjaL~~]~tp~c~~rM~shvyts\~~sp~tjor_~K~o~m~qruo~n}tj~qm^~~taJflrnn~kR~~okz8cY~~XZ~r~4\~_}Y~~a~~spB\oZ[~pdrud~rl~~mqZRm~L~~oYlU~~U~~~ln\~~c~~sttS~~mk~s[~pfV~Mq_tR~~Y~YolqQ~lmJ~[\k~I~~s~rE~~~|clpF]o~\t~ua~tnVQ~tp~O~o~~t~r [...]
+ q~m\~of[~~kjl4o`ptqpob~Zc$~~~~~~~}|~~~~okn{~~}ot~~~}}tgWhW~[~pns~O~q_~~~[~Bbc~~mFl[s\i~lt~N~mkX}i_L~n~\qro_~tp_~uP~~>r^~p@[p~p~qq^On~o~^~q~~t]~~~rl;~~^~r^?~brG~~rR~tu~~rH~b~B~~~]nn\~s9~~`]dmoU~]~q5~~qa~~pn~[raoa}VokWl~~~pqo(~tt_qO~ts~\~i}ksjzrnt~h~te~`~}]nI~q~v~a~~sm^o^r@~zjaL~~]~tp~c~~rM~shvyts\~~sp~tjor_~K~o~m~qruo~n}tj~qm^~~taJflrnn~kR~~okz8cY~~XZ~r~4\~_}Y~~a~~spB\oZ[~pdrud~rl~~mqZRm~L~~oYlU~~U~~~ln\~~c~~sttS~~mk~s[~pfV~Mq_tR~~Y~YolqQ~lmJ~[\k~I~~s~rE~~~|clpF]o~\t~ua~tnVQ~tp~O~o~~t~r [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2305/ccs np:i:22 rq:f:0.999665
AAGCAGTGGTATCAACGCAGAGTACGGGACGGTCGTACTAAAATCAGCTACGCGATCGCCGACTTAGAAGGCTGAGATGGAGAAACTTGTCTACTGGCAGACCTCACTATCTTTTAGGAAGGTCACGAAGCGGCTGGAGTGATGGCTAGTCTCAGCCACTGTCAACGGGAAGCGCGACGTTTATGGTCAATATAAACTAGCAGTTTAATCCGTATGGCGATCTTAGCGGATGTTACAGGATGGAGAAGATGACAAAGTAGAAGCTAGACAACTATATCAAATCGTTGTGTGGTCTTAAACCGACACAGTAGCATTCATCGTTGGATGTGGAAGGTCACAGCCTCGTTGGAGGAGATACTACGGTCCCGCTTTTCGTGGGTGACAAAGGTCGCAAAGGTTTCCTTAGGGAGGTCGTTTCCCGGATCTTTATCTACATCTCCTGGGTGAAGGGGATGATCTTTCTCTACATGTCCTGGGTGGAGGGGAGTTT [...]
+
@@ -286,10 +288,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
AAGCAGTGGTATCAACGCAGAGTACGGGGTGGAGAAGCAAATACTTGGATACCGAATTTAGAGGCCATAGGTTATGGAAAAAGTCAGTGGATTAGATAGTAAAAGTCGAAATCTTTATATTCGGTTCGATGTACTACGTTATTCGCGACTGTTCTGTCATGATAGTTTTTTATATAGTCCTAATAAAAGGAGTTTTTAAAGTAAATGACATTTCAGTAGTAAAAGTTTAAGAGCTTTTTGTTCTGCCAGACGTTCTGATAGTTGAGGAAAACGTGTGGTCAGCTAATAACTTGTGGTATGGAGTAAACGAACATCCAACAGTATGTACAATCGTATGAGAAAGGACAAATCTGAAGACGATATTAGAGGGAGTCCAACAAGTTTGTGATGATTCACGTAAGGAAATCGAAATGTAAGATTATTCGTCAATGGAGGTATAAGACAACACACCAAGTAATTATACGCGACGAGTTTTCATGTTGACGATCCC [...]
+
~~~~~~~~~~~~~m~~~~~~~~~~~n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}~~~~~~~~~~~~~~~~~~~~\~~~~~~~~~~~~~~~~~~~~~~{~~~~~~~~~~~~n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Z~~~~~~~~~~~~~~~~~~}~~~~~~~g~~~~c~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~z~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~v~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~z~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~k~~~~~~~~~~~~~~~~~~~~e~~~~~~~~~~~~~p~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~m~~~~~~~~~~~~~~~~~~~~~~~~~~~r~~~~~~~~~~~~~~~~~~ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2359/ccs np:i:15 rq:f:0.999424
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2359/ccs np:i:16 rq:f:0.999453
AAGCAGTGGTATCAACGCAGAGTACGGGGTGTAGCATAGCAACTGTTCTGAATGTGATATTCGGTCAGGCCACGTTGACACTTACCAAAGCAAGACAGAAGGAAGTTGACGGGACAATAGGGAAGATTGGCAAAGGGATTTAAACATAGTCCAGTTCGCGTGGTGAATGACAGATTGCTACTGTTACCATTGGCGATACTACGTTGGCGACTTTACTTGCCTCGGTAGCGACAGAACAAGTGTCGTCTACGCAACGAACAACCAGCGTGTTAGCTGCAATGTCCCCTGTAGAAGACCCTCTTCTTTCTCTTCTGAATGATGTAGCTGTGGATAGAGCGTCTCCCACGTTAGGGTCTAGCAACCCTCCGGTGGTGTGTGGTTTCGGTTCGCTTGGTTGGGTGCCCAATTTCCAGTACCGAAGAGGTAATTGCAACTTCAATTGCTTAGTTGACGTGACCTTTCGGGTGTCATGGACTACCGACGGTATCTC [...]
+
- ~~~~~~~c~~~~~~~~~~~~~~~~~n~~~~>~~~~~~~~~~~~~~.~~~xp~~~~~~~~]~34~~~~~~~~~~~y~~~~~~~~~p~I~~~~Q~~~~~~q~k~w~~~~Mn~a~~o~X~~~e~~~~~~~~n~~s~~?~~~a~~R~~W~~~~~p~~~t~~~~~n~~~|~~~s~~~v~Y~n~~~~~~H~~~~p~~~~~~~~~~~n~~~~~~~~~~~~~~~\~~~~~~~~~W~~~~~~~t~~~~~~~~q~~~u~~bw~~~~H~t~~~~~~i~~~~~u~x2p~~~~y~d~~~~~~~x~~~~~~~~~d~~g~~~~~~~~~~e~~~~~j~~s~~~~k~~~~~~~~~~~~Q~~~~~~~~f~~~~~~~~~~x~~y~~u~~`~~~~~~~~T~~~~~~~~~~~~p~~~n~~Xzt~~~~V~~z~~~~~~~~L~~~v~~~~w~j~~~~~~~~~~~~~n~~~W~~~~~~~~~~V~~}|~~~|lY~~i~~~~~r~~~~~~\s`~b~ [...]
+ ~~~~~~~j~~|~~x~~~~~~~~~}~p~~~~E~~~~~~~~~~~~~~2~~~~|~~~~~~~~_~(;~~~~~~~~~~~~~~~~~~~~~s~L~~~~X~~~~~~l~s~y~~~~Sknd~~j~Y~~~h~~~~~~~~w~~~~~F~~~i~~\~~K~~~~~x~~~j~|~~~e~~~~~~~k~~~z~d~x~~~~~~?~~~~|~~~~~~~~~~~z~~~~~~~~~~~~~~~c~~~~~~~~~`~~~~~~~~~~~~~~~~d~~~~~~m~~~~~V~~~~~~~~s~~~}~l~~'c~~~~~~f~~~~~~~|~~~~y~~~~]~~j~~~~~~~~~~^~~~~~k~~x~~~~s~~~~~~~~~~~~[~~~~~~~~a~~~~~~~~~~m~~}z~x~~d~~~~~~~~U~~~~~~~~~~~~s~~~g~~bu|~~w~P~~~~~~~~~~~P~~~~~~~~x~p~~~~~~~~~~~~~v~~~b~~~~~~~~~~`~~~x~~~xxa~~i~~~~~|~~~~~~ThU~Y~ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2409/ccs np:i:12 rq:f:0.999732
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGATGCCTCTACGTCAGTCGGAACAATGTCGTCGTGTAACTCGACGATCTTAGGAGCTACTAAGGAGAGTCTGTAGGGAACCGACTGGGAAGGTGCCACAAGTTTTCTCTACTACTCCGTCTCCTAAAACAACTCCAAGTGGAAGGTCTGTGGGTTTTTGAGTATAGTCCGTATCTAGACCCAAAAGGGCTTACCTTCGCAATGAAAGAATATCCTTATAGACACGAACGGGAAGAACGGAATCGTTATTAATGACGTCGTACAACGTTTTCCAAGTTCTCCTCTTCCTCCGGATTCGGTTTGGGTTATCTCAACTAGTCCTTTCAAAGACATTGGAGAGTTTCACCTTCCCGTTAAGGTAGAACCCTCAGCATGTTTCACCCCCCGGTGACCACTCAGTTACGGAATGTTTTTAAGCCACCTCAGCTAGTGTTCC [...]
+
@@ -298,10 +300,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
AAGCAGTGGTATCAACGCAGAGTACGGGGTGGAGAAGCAAATACTTGGATACCGAATTTAGAGGCCATAGGTTATGGAAAAAGTCAGTGGATTAGATAGTAAAAGTCGAAATCTTTATATTCGGTTCGATGTACTACGTTATTCGCGACTGTTCTGTCATGATAGTTTTTTATATAGTCCTAATAAAAGGAGTTTTTAAAGTAAATGACATTTCAGTAGTAAAAGTTTAAGAGCTTTTTGTTCTGCCAGACGTTCTGATAGTTGAGGAAAACGTGTGGTCAGCTAATAACTTGTGGTATGGAGTAAACGAACATCCAACAGTATGTACAATCGTATGAGAAAGGACAAATCTGAAGACGATATTAGAGGGAGTCCAACAAGTTTGTGATGATTCACGTAAGGAAATCGAAATGTAAGATTATTCGTCAATGGAGGTATAAGACAACACACCAAGTAATTATACGCGACGAGTTTTCATGTTGACGATCCC [...]
+
~~~~w~~~~~f~~[~~~~~N~~~~~b~~~~c~~~~~~ve~~~~~q~~~~~~n~[~~b~~~~~Y~{~~~~^~r~~mo~U~~~~m~~~~~~~~R~~~~~~~~c~~~z~~~o~~~~~~~~~~~~~t~~~~~~~~~~~Y~~~u~~m~~~~~~~~~A~~~~~x~~~~~~~S~~~~~~|~~~f~w~~~~~L~~~n~~~F~~~~q~~~~~~~~~~~~Q~~~y~~~~~H~~~~e~~k~~~~~9~~~~~i~~~~~~~}~~~~~~r~~y~~l~~~w~M~~~~~~~~m~~}~~~~~~~~~~q~~~p~~~~y~y~~n~~~~z~~~~c~~~~~~~b~~|~~r~~~~~r~~~~l~~u~~~|~~~~~~x~~~~~~~~d~~~~H~~~~~~~|~~~~~d~~~_~~~~~~~y~~~~~~x~o~~~~~}~~~~~~~~~~~~~~~~~~~~~~~~q~~~~~~~~~~~~~~~x~y~~f~~~~~~~~~~~~~~~~H~~~~~~~~~~~~~~~]~~ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2436/ccs np:i:14 rq:f:0.999194
- AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTCGCCACGTCTCCTTAGATAACTGGCAAATCTTCACAATTACGCAAGACCATAGAATAGTCCTAAGCAACATTTGCCGCATCGACCAAATCATGGCTTTGCACTCCAACTTTGCCTGAATCGTGTCAGACTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGAGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCAGCACGCAATCGCAAGATACGCAGTAATGCTAAACCATACTTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCGAGCACAACGCTTCTTGGCTACACATATGCTGTTGGGAATGTTTTTTACACTTATTATG [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2436/ccs np:i:13 rq:f:0.99859
+ AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCGCCACGTCTCCTTTAGATAACTGGCAAATCTTCACAATTACGCAAGACCATAGAATAGTCCTAAGCAACATTTGCCGCATCGACCAAATCATGGCTTTGCACTCCAACTTTGCCTGAATCGTGTCAGACTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGAGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCAGCACGCAATCGCAAGATACGCAGTAATGCTAAACCATACTTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTTAGTCGCGAGCACAACGCTTCTTGGCTACACATATGCTGTTGGGAATGTTTTTTACACTTATT [...]
+
- ~~Mjk~~Z~~S[~~~~~~~u~~~~~'~~~~~~~~~~~~~~~~~~~~~~~~~~nice~~~pfl~]z6~~~e~|~~~}~~P~~o~j~~~~}~}~~~~p^~w~O~it~p]~~}~yr~~W~sqm~s~\~~~S~q~~~~S~Fw=~|frXa^~~?~~~~~~~~~r~tk~~\TM~~w~~~f~2~q~~St`~~u~~e~~d~~p~~~~T~~g~~~~~~N~o~~fms~~~k~~X~~~v~~~~~~~~~~~~vu~~k~~w~<~~zm~~~~~~~j~F~v~~~Z~}~lom~k~UjSp~\y~~u~wW~~~w~~L~uh~{Y~~~~~{~i~~hwr~~ow~~~S~~F~~~v~~~x~~~f~Wc~~i~~~~~~{~f~K~|~j~~w~~~}~~~~_~~~ShO~~~~~~~~[rrTHR~~k~~~~{~~~m~~~~~~~~~u~~i~~1~~~iq~~~:o{~~~Wv~~~~~~my~_~~~~~~}~~~~~~~~o~J~~f~~X<~~~~~~v~uf~wj~~~W [...]
+ }~Cgp{tf~~rz~q~~~~~a~|~~~&~~~~~~~~~~~~~~~~~~~~~~~~~~~ulfX~w~k\q~jo$zy~~Umq~|xm~~9~~t~Y~~~~j~q~~~zfj~z~c~~t~~r~ts|fc~sC~_]Y~`mR~~~H~`~k~~f~6~K~|SlC]n~~O~~~w~~~w~^~{_|~IRH{~m~~~l~2~g~~Klc~wp~ze~~{~uf~~~~^~~b~~~~~vl~y~~~cz~y~q}~f~~~z~~w~~u~~|~y~gl~~l~~p~0~~pb{~~~~juy~G~w~~~f~o~_\_~h~djXi~fq~y~~~S~~~sy~Ky~t~p\~~~~~lcl~~P{t~~bz~~vG~n,~~~o~~~r~~~Z~_Y~pg~~~t~~f~m~Ps~~a~~r~~~o~~~~k~~~LdX~~~~~~x~Vi~^Ae~~k~~~~u~~~b~~~w~~~~~k~~X~~$~~~u~n~w~2ew~~~`k~~u~~~|r~W~~~~~~q~}~~~~~~d~Y~~{~~HM~~~~~~d~hp~sw~ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2451/ccs np:i:17 rq:f:0.999748
AAGCAGTGGTATCAACGCAGAGTACGGGGTGAGGCTTGTCCGCGAGTGTCAACCGGGTTTTACAAAGGAGAACTTCCAACATCAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATAGAGCCTAGTGGTCATTAGAAGGTCAACATGGAGTAGGTGTTTAGGTGTGTCGGAGGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCTCTA [...]
+
@@ -334,10 +336,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
AAGCAGTGGTATCAACGCAGAGTACGGGGCATACTGCAAGACTTGTAGGCCCATGAATTACCCGCTTAGGCAATGGGTAGACCTTTCCTTGCCGCGTGGAACAAACCGCCATGAGTGTTTTACGTTTACGGTCGGCGACCGGAGTCACAGCGCGACCAACGGGGCCAGGCAAAGGCCCATAGGCTTTTCCATCGGCACGCGACCGATTCCATCAAGTGTTAGGTGCAATCCCCATTCGGGACGGACACGCGAGAGCGTTAGTCGGCGCGTGCGCGGGACTATTTAGCGAAGGTCGCCGATCGTTTGCCCGTAAAACTAACTGGCAAAAGCCTAAGTGCTGTTTCGGGTGCAATGGTATAACTTCCCACATTTAGCCGAATAGCGCCAACAGCGTTATTATTTGGAACCAAGCAGTGGGCGATGTCAGCGACAATTCCACTTTGGTAGAGGTCGTTCTTTTGTAGAAAACAATCTAACATAACTATGACAC [...]
+
w~nr}ZdG~~~~pa~~o~~\~^Ri~?~~~~~|~~~~~~~w~y~~~~~r~O~~~~~Z~q~~Q~~~~M~~p~pw~jP~~m~~~s~j~~k~{~~_~~~gs]zo~EW~~k~o]~~~~~~~~S~~~~plF~~~sM~~~n~~v~b~o~p~~p~~~~~~~rTo~~~uZ~~~\~~m~vt~~s~U~~c~~t~pM~~~d~h~~]~nm~spr~p~~~w~m~~~t[~~~v~~kk~~knn~jG~~~~~~wc~~l~r~~~~~~u{ag}T~ob~~~~~m~o|Y~~n~`~O~~|Dt~\~~~~~sm~o~~~~o~~}~~~A~~~L~~~iH~~~~~q~~~a~~O~~~~_~~o~~x~w~~V~~~N~~l~~n~}`~n~~[~~k~H~~~~~c~~~pp~r[~~~~~vZ~h~v~w~~~~~~~~S~~V~~~s~\~ss~}~R~~~~{d~~~~~trgqo~q~q~~q3~eZ~~~~|a~~]~N~~S~~~~~~u%~~qu~~jo~~~o~~}~p~~~~~~~i [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2771/ccs np:i:11 rq:f:0.998887
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2771/ccs np:i:11 rq:f:0.999033
AAGCAGTGGTATCAACGCAGAGTACGGGGGCTTGTCCGCGAGTGTCAACCGGGTTTTACAAAGGAGAACTTCCAACATCAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTGTGAGGCGCAAGGTACATGCTCTTACCCCACTCTCAGCACGTAGGGAGCGGAGTGTGGAAGACCAACAAGCCCGTCGCCTCTACCAAATACAGTGTTTAGGTGTGTCGGAGGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCTCTA [...]
+
- q~Vd~}~c~~h~~`~~~~|T~~~Ys)~~~~~P~q~H~~~N~U~{~~~~k~U~~A~~~~~t~~~~~z{~~>~x~~~~~~~{~~~~~~e~~~~~Z~~~E~~~~N~~~~~~q~~~~~~~~~~~~~~x~vl~~~~~~~~~~X~~~~~~~v~~M~~~~~~~~~~~~~~~~~~p~~pq~~]~~~~v~i~~Ur~~~G~~Z~~Z~~~~~~~~~~~t~~~~~/~~y}im~~~~~~T~~~~~~~X~vs~~S~~~~~~u~~~~gx~e~~~~~~~~~1~~~w~~~~~~f~~~b~~~~~n~~~~~~l~\~~~n~~~~T~~~v~~~~~~~`i~~~~~~~~~~x~~~~~Y~~_~~~~~~~~~~~~~~~~~~~~~~i~~~a~~~~c~~~~~~~B~~~~|D~~~x~x~~~~r~~~p~t0~~~~zut~^~~~~~~~A~~{k~~~~~E~~~~~~g~~~~~~~~~~~F~Z~~~~~~~~|~{x~i~x~~~|~g~~~~~~~~~~o~~~~~~~ [...]
+ q~Vd~}~c~~h~~`~~}~q?~o~Yo<~~~~~S~w~P~~~Y~a~~~~~~k~U~~A~~~~~t~~~~~z{~~>~x~~~~~~~{~~~~~~e~~~~~Z~~~E~~~~N~~~~~~q~~~~~~~~~~~~~~x~vl~~~~~~~~~~X~~~~~~~v~~M~~~~~~~~~~~~~~~~~~p~~pq~~]~~~~v~i~~Ur~~~G~~Z~~Z~~~~~~~~~~~t~~~~~/~~y}im~~~~~~T~~~~~~~X~vs~~S~~~~~~u~~~~gx~e~~~~~~~~~1~~~w~~~~~~f~~~b~~~~~n~~~~~~l~\~~~n~~~~T~~~v~~~~~~~`i~~~~~~~~~~x~~~~~Y~~_~~~~~~~~~~~~~~~~~~~~~~i~~~a~~~~c~~~~~~~B~~~~|D~~~x~x~~~~r~~~p~t0~~~~zut~^~~~~~~~A~~{k~~~~~E~~~~~~g~~~~~~~~~~~F~Z~~~~~~~~|~{x~i~x~~~|~g~~~~~~~~~~o~~~~~~~ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2772/ccs np:i:11 rq:f:0.999401
AAGCAGTGGTATCAACGCAGAGTACGGGGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAACTAGTGCAGTTGCTAAAGTGCCAACTAAGGTTCGTCTTGAAGCAAT [...]
+
@@ -390,10 +392,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset
AAGCAGTGGTATCAACGCAGAGTACGGGGTGTATTTATCCGCTACGTGGTGGATGAACATGGATGCGAACGACATTTCGAAATATACGCAATGATATCCAACCCTACCGAAACAGCAATAATTGTAGAAGGTAGCATATCATGCCGAGAGTTTACTACGTTGTAGCGAGTTTAGTTGAAATAGTTTGTGATGTGTAAACTAAAACATACCAAATGGTAAAACTTGTCACCCCCATTTACATTGCGACAGACACAGTTATGGAGTGGATGGAAGTGTGTTCGACTGTCAAGACCCTTCTATAATAGTCGAACCAGTACGGTAAGTGGGCAACATGCCCATATAAGTCGAAGCATTTCAAATGGTTCATCCAGTAGACGACGATGTCCTAGACAGTCATGTCTCTTCCCCATTTGAAGTCATGTAGTGGTTGTCTACTTTTTCATTGAAGACGTCCACCTCAACGCTATGAACGTTAGTTGAGACAATGTTA [...]
+
0~~w~~~^~~~~~k~|grnxgw~l~6~~~~~~~O~~~~^~~~~e~~~o~~n~~~pz~~~~q~~~~~u~~us~~~]~~toN~~~~~K\~~c~~~~~~~Z~|~L~~~~\~~`~~~~~sZ~~t~q~~~~~r~o~~~tq~~~~~~~x`~~~~~~R~~~~{~~v|~~~~~~y~~b~~~~y~~f~~~~~G~~~~~~~k~~yi~~~~V~~~|~~~b~_~~~R~~D~~tS~~i~D~9~~~~~p~~~~~~~~~~~~~P~~l~~~e~~~`~~~pB~~~u~f~{~h~~|~k~~~~~~{~~~~b~~~~~~~~n~~~y~~~i~d~~~~~al~~d~~~]~~~P~~~~~d~~~~~~m~~~~~s~~g~g~~~~~~~t~r~~~~p~~~~~~~~~~~~~~~~p~~~~~}~~~}~~~~g~~~~8~~~~e~~~O~~~~~~K~~~~\~h~w~~~~xR~~~~~~~~~~~|~{~~g~~k~~vr~~~e~m~~~~~wh~~~~~k~q[w~~~~r~g [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/3046/ccs np:i:22 rq:f:0.999764
- AAGCAGTGGTATCAACGCAGAGTACGGGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATAGAGCCTAGTGGTCATTAGAAGGTCAACATGGAGTAGGTGTTTAGGTGTGTCGGAGGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCTCTACTAGTCTTCTCTGAGGAACCATGAGATGGATAGTGGGGGACCTGAGTCATACTAGGGTAACTTCTTATATGGTGACATCACTCCTACCGTAGAGGGGGGACGGTAGTCTGTGGGAAATCTACCCTAGTGAAGAAAGGTAAGAGA [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/3046/ccs np:i:22 rq:f:0.999619
+ AAGCAGTGGTATCAACGCAGAGTACGGGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATAGAGCCTAGTGGTCATTAGAAGGTCAACATGGAGTAGGTGTTTAGGTGTGTCGGAGGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCTCTACTAGTCTTCTCTGAGGAACCATGAGATGGATAGTGGGGGACCTGAGTCATACTAGGGTAACTTCTTATATGGTGACATCACTCCTACCGTAGAGGGGGGACGGTAGTCTGTGGGAAATCTACCCTAGTGAAGAAAGGTAAGAGA [...]
+
- ~~~~~~~{~~U~~q~L~s~~~~~~~N~~~~~`~~~~~~~x~~~~}~p~~wh{R~~~~~i~~~~~~~~~~~~~~~qz~~~~~~i~~T~~vv~~~~~~T~jmD~O~~~v~~~~I~~~~~T~~r~~~~~~~~~~~~k~~`~~p~~c~~z~~~~~g~~~y~~b~_~~~~~~~~~~~p~~~~~~~~~~~{~~~~~R~~F~~~~~~^~~m~~~~~a~~~~z~y~~~h~~b~~~~~~~~~i~~~~~d~~~n~ut~~~j~~~~~{F~~~~~~~~~~~~~~~~l~~~\~~~~~`~~z~~~j~~~z~~~~~~~~~s~~~~~~~~~~~~~~~d~~u~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~u~~~~~~~~~~~K~~~~~z~~~~w~~~~~~~~i~~~~~~~~~~~~~~~D~~~|~~~~~~~}~~~y~s~~~~D~~~~~~~;~~~~~z~~~c~~;~~~~~~Y~~~~~~s~~~~~~{~~i~~~~~ [...]
+ ~~~~~~~y~~U~~m~]~~~~~~~~~M~~~~~^x~~~~~~g~~~~~~~~~~nzO~~~~~i~~~~~~~~~~~~~~~}w~~~~~~v~{`~~zo~}~~~~]~di=~I~~~u~~~~C~~z~~O~~y|~~~~~~~~~~~h~~[~~m~~]~~v~~~~~l~~~y~~`~Y~~~~~~~~~~~l~~~~~~~~~~~~~~~~~S~~I~~}~~~a~~p~~~~~a~~~~~~x~~~o~~i~~~~~~~~~b~~~~~^~~~u~ol~~~c~~~~~{@~~~~~~~~~~~~~~~~d~~~Z~~~~~\~~}~~~d~~~v~~~~~~~~~q~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~}~~~~~~~~~~~~~~~~~~~~~~~~p~~~~~~~~~~~J~~~~~v~~~~~~~~~~~~~m~~~~~~~~~~~~~z~>~~~s~~~~~~~y~~~u~n~~~~H~~~~~~~A~~~~~}~~~]~~2~~~~~~O~~~~~~e~~~t~~~~~\~~~~x [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/3116/ccs np:i:14 rq:f:0.999312
AAGCAGTGGTATCAACGCAGAGTACGGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAAGCACTAACGTGGTCATCAGACTGGTCTGCGCTATAATCTACGCAATAGAGGCACCAGCGGTCGTTGAAGCC [...]
+
diff --git a/tests/cram/100zmws_byStrand.t b/tests/cram/100zmws_byStrand.t
index 81f8f5f..456f8ed 100644
--- a/tests/cram/100zmws_byStrand.t
+++ b/tests/cram/100zmws_byStrand.t
@@ -7,6 +7,8 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
>|> \d{8} \d{2}:\d{2}:\d{2}\.\d{3} -|- DEBUG -|- Consensus -|- [0-9,a-f,x]+|| -|- Skipping read m150825_055401_42161_c100844482550000001823159012311525_s1_p0/413/9570_12297, ALPHA/BETA MISMATCH (re)
>|> \d{8} \d{2}:\d{2}:\d{2}\.\d{3} -|- DEBUG -|- operator() -|- [0-9,a-f,x]+|| -|- Skipping read m150825_055401_42161_c100844482550000001823159012311525_s1_p0/429/4100_6514, ALPHA/BETA MISMATCH (re)
>|> \d{8} \d{2}:\d{2}:\d{2}\.\d{3} -|- DEBUG -|- operator() -|- [0-9,a-f,x]+|| -|- Skipping read m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2359/6103_8488, ALPHA/BETA MISMATCH (re)
+ >|> \d{8} \d{2}:\d{2}:\d{2}\.\d{3} -|- DEBUG -|- operator() -|- [0-9,a-f,x]+|| -|- Skipping read m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2436/33592_34506, ALPHA/BETA MISMATCH (re)
+ >|> \d{8} \d{2}:\d{2}:\d{2}\.\d{3} -|- DEBUG -|- operator() -|- [0-9,a-f,x]+|| -|- Skipping read m150825_055401_42161_c100844482550000001823159012311525_s1_p0/3046/0_2116, ALPHA/BETA MISMATCH (re)
$ grep -c ^+$ test.fq
200
@@ -64,10 +66,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTGATACTACGAGGACGTCACCCACTGAGGTCTCCGACATGGACACCTAGTCCCGGACTCACCGAACCTACACCGTTCCTTCAGTGTGTTCTTTCGGAGTAGTGAAAAAACGTTGGTCTTCCCGGTCTACTATCCATCGTTCATGTTCGGCTTTTACAAGTTACCTTCACAATTTTACAAAGCAATGCTTGTGGGCTAGGGCACCGCGTTTTGAAGTAAATAGATGTAACCTACCACCCATAAACTGCTCTATACAATTTAAGTTCGTCGTCGCCTTCTTTTTATATCACTAACGTGTACCTACCTTAGAGCGTTACCAAAGTACATATACAGATTTCTCAATGTATTTGACCTGGCTCTCTGCAATCTCTCTCAAGATGCGTAAGCACTTTCAGTAGGACGAATTTAACGGTGGTAATTTCGCACACTTCGCACGTTTA [...]
+
RpUIAQ?EkSYT64PJR7AMMNB/0$MZhmmmjaYUTUW`jmmmmmmmldV:55/E4T1>LEBMXG<YOE%SBCNXMUAIBNY.UMZP[WDqWMQ,F[APY5TUFdCIO;X0OQ=m4b^[PY2mS:K1VNmP[T\SY<%YL5]Q71REB[BS^T+mmlXGATLX2N\N+^.jlGo^P\B9\[S:9?TGS>]NX>I?mPDmP8oomSPNpS-VB at kMmM,NMf7kVNM@?FMS:Mm^UN:iMF>TkP^[Ap`MECoS:R,mn\P77;\<qk]TNZ]U]NoCq^[CpE<o]@M9hfP^UP^P[F//NLe.gREW>BkPT[N9OPT.JF_P<fQeL-XW at N[P];i:S^U^[@]BR%d>lYTXUPR7OYBc)hjS^[P[^[^WOZSVHnf:\N<cDS^[*ZJR[@mSGm:Z:\P]UQMj>9DNZNGOAmU[^O7S^NpUO1O>oR7TO^[Hp[PT=m<ok)RL5T\GnC;kEK`N>M>;@HAkPUOE:S:mlC [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/418/ccs/rev np:i:5 rq:f:0.993705
- AGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTGATACTACGAGGACGTCACCACTGAGGGTCTCCGACATGGACACCTAGTCCCGGGACTCACCGAACCTACACCGTTCCCTTCAGTGTGTTTCTTTCGGAGTAGTGAAAAAACGTTGGTCTTCCCGGTCTACTATCCATCGTTCATGTTCGGCTTTTACAAGTTACCTTCAACAATTTTACAAAGCAATGCTTGTGGGCTAGGGCACCGCGTTTTGAAGTAAATAGATGTTAACCTACCACCCATAAAACTGCTCTAAACAATTAGTTCGTCGTCGCTTCTCTTTTTATATCACTAACGTGTACCTACCTTAGAGCGTTACCAAAGTACATATACAGATTTCTCAATGTATTTGACCTGGCTCTCTGCAATCTCTCTCAAGATGCGTAAGCACTTTCAGTAGGACGAATTTACGGTGGTAATTTCGCACACTTCGCACGT [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/418/ccs/rev np:i:5 rq:f:0.993554
+ AGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTGATACTACGAGGACGTCACCACTGAGGGTCTCCGACATGGACACCTAGTCCCGGGACTCACCGAACCTACACCGTTCCCTTCAGTGTGTTTCTTTCGGAGTAGTGAAAAAACGTTGGTCTTCCCGGTCTACTATCCATCGTTCATGTTCGGCTTTTACAAGTTACCTTCAACAATTTTACAAAGCAATGCTTGTGGGCTAGGGCACCGCGTTTTGAAGTAAATAGATGTTAACCTACCACCCATAAAACTGCTCTAAACAATTAGTTCGTCGTCGCCTTCTTTTTATATCACTAACGTGTACCTACCTTAGAGCGTTACCAAAGTACATATACAGATTTCTCAATGTATTTGACCTGGCTCTCTGCAATCTCTCTCAAGATGCGTAAGCACTTTCAGTAGGACGAATTTACGGTGGTAATTTCGCACACTTCGCACGTT [...]
+
- XNU^PU5nY]ESJYLPTZP^O/[T$kkgYORQ?319CMPT]ZST^hkkkkPPUD\PFTM/ZDq^PICRDFfDSY:W&aZYTDGoP^PRZCq]SDGq[\:X/ll%g?@LZT^EmPRoGfDW>TDkP=l4p;+RM]=>FO3)QYT?B7P2M1(W^OEN3ThdPWTNKPBW[UNn?Ta?e=OD\U[^[DrWYQJMhTW08+gSEqR8Thn^UQn8/lVBR)WMKkP=_4Rf[CR:mmOUL`FNQIiPZ3nbTDX74FL\3TESN8aQ`OIhPYBjSATO\H>,6+B7B3(=AO7ON at A)ZQPKDM.CF/$RHNQg*Z%4/RR<PBL/AL(-C921-Ui\RVHVHPDRDQnSL1D1\GfD\Gd?n[P^QPG9d[8m?aS9WFS[DVDCMDN\0h[M94<R.%9=27D9[7VN at VKCNCF/<9=iCHDNDFJ:9 at 6NN4>>NQOQFJQBR]?E<98GdQ\@Cy5ceQDAq6Ff\EoCfwXBU6A1J3mA;AED@, [...]
+ XNU^PU5nY]ESJYLPTZP^O/[T$kkgYORQ?319CMPT]ZST^hkkkkPPUD\PFTM/ZDq^PICRDFfDSY:W&aZYTDGoP^PRZCq]SDGq[\:X/ll%g?@LZT^EmPRoGfDW>TDkP=l4p;+RM]=>FO3)QYT?B7P2M1(W^OEN3ThdPWTNKPBW[UNn?Ta?e=OD\U[^[DrWYQJMhTW08+gSEqR8Thn^UQn8/lVBR)WMKkP=_4Rf[CR:mmOUL`FNQIiPZ3nbTDX74FL\3TESN8aQ`OIhPYBjSATO\H>,6+B7B3(=AO7ON at A)ZQPKDM.CF/$RHNQg*Z%4-AI<ICL0KB.,/4)&1Q^PSHWGPDRDQnSL1D1\GfD\Gd?n[P^QPG9d[8m?aS9WFS[DVDCMDN\0h[M94<R.%9=27D9[7VN at VKCNCF/<9=iCHDNDFJ:9 at 6NN4>>NQOQFJQBR]?E<98GdQ\@Cy5ceQDAq6Ff\EoCfwXBU6A1J3mA;AED@,g [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/420/ccs/fwd np:i:10 rq:f:0.999173
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGGTAAAGTAATGCCTCTACGTCAGTCGAACAATGTCGTCGTGTAACTCGACGATCTTAGGAGCTACTAAGGAGAGTCTGTAGGGAACCGACTGGGAAGGTGCCACAAGTTTTCTCTACTACTCCGTCTCCTAAAACAACTCCAAGTGGAAGGTCTGTGGGTTTTTGAGTATAGTCCGTATCTAGACCCAAAAGGGCTTACCTTCGCAATGAAAGAATATCCTTATAGACACGAACGGGAAGAACGGAATCGTTATTAATGACGTCGTACAACGTTTTCCAAGTTCTCCTCTTCCTCCGGATTCGGTTTGGGTTATCTCAACTAGTCCTTTCAAAGACATTGGAGAGTTTCACCTTCCCGTTAAGGTAGAACCCTCAGCATGTTTCACCCCCGGTGACCACTCAGTTACGGAATGTTTTTAAGCCACCTCAGCTAG [...]
+
@@ -76,10 +78,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGGTAAAGTAATGCCTCTACGTCAGTCGGAACAATGTCGTCGTGTAACTCGACGATCTTAGGAGCTACTAAGGAGAGTCTGTAGGGAACCGACTGGGAAGGTGCCACAAGTTTTCTCTACTACTCCGTCTCCTAAAACAACTCCAAGTGGAAGGTCTGTGGGTTTTTGAGTATAGTCCGTATCTAGACCCAAAAGGGCTTACCTTCGCAATGAAAGAATATCCTTATAGACACGAACGGGAAGAACGGAATCGTTATTAATGACGTCGTACAACGTTTTCCAAGTTCTCCTCTTCCTCCGGATTCGGTTTGGGTTATCTCAACTAGTCCTTTCAAAGACATTGGAGAGTTTCACCTTCCCGTTAAGGTAGAACCCTCAGCATGTTTCACCCCCGGTGACCACTCAGTTACGGAATGTTTTTAAGCCACCTCAGC [...]
+
d~]s~w~\~s~~~j~~uh~B~_~~~&~~~~~~~~~~~~~~~dY^v~~~~~~~~~~~i^~t`~~qwg~z~z~~~h~~~~w~~~~]~y~~e~pq~~~~~o~t~y~~~~~~~o~~~o~~p~~o~W|~~~~D~~Uv@~~W`~~M~~e~L~~~~~A~~~~\~~~R~~|~~~7~~~~c~~~~~~~~v~r~~~y~~I~~~~v~~~Y~~~~~W~~~L~i~~r~\~~D~~~~r~oq~q~r~t~~q~~~~~t~T~~\~~~[~~~l~~v~m~u~~y~~~W~~ox~j~~z~P~~b}~~~~~~~~~;~~r~~|~~[~[~~uj\iQq~~~~I~|or~m~~~y~~sG~~~x~a~ZO~~~w~q~o~{~~j~n~~m~~h~h~~S~~~~~~~n~u~z~~~~v~f~uef~~B~~~u~f~~s~np~~~~h~L~e~~~b~~~^~E~G~~\~~~~~~~~~qUw~~~D~~~~:~~^~J~~~~~~m~~~~\~x~sjS~~~~g~mz~~z~s~~y~ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/428/ccs/fwd np:i:8 rq:f:0.995686
- AAGCAGTGGTATCAACGCAGAGTACGGGGCTTAAATGTCGGGAAATTGGGTTTGCGCCGCCTTCAGGGGCAGCGATGGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAA [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/428/ccs/fwd np:i:8 rq:f:0.995934
+ AAGCAGTGGTATCAACGCAGAGTACGGGGCTTAAATGTCGGGAAATTGGGTTTGCGCCGCCTTCAGGGGCAGCGATGGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAA [...]
+
- a}XAQY^6c^c5O at pNCB]Eg[`eB?~jj[F~7~xfceIC~kR~sIqE~Y5~vFT>:ga at oC~Ii?Wn|^l_^boN&geftLI\FC;{C~KMQ}iEebjqjT~oJdK~jJgFSN\hJ~|]9?Lsi]<~rQVNuJ~b]g]PCd}`K`\w^I~`+zRgi:Odc^qcL~\h_X]d9hQ7\RRg|LI[mQ~Sb8zdKQN\?jdc/NHaZ_`WJqbgZ^:nX9~Zb-~~k[meaMp^_~`EXK8R]W~LH>kql^bRIfkjfQJWT?BN~i_H~~bq^b^Y~7}a8T>bg8X^O%PNFaY\U`SZJ:~hqE`Gtm[d<oaP~i>X_MWJ^~aPJCnh]M8po\_]?~iQ~Yjf`daPLV~bG~fZm\`Lo~\RXJ%ChbsgJh_G|cAXSJ?W[c_FLabNDoYLPheK at ks^dqbL~`hGM[RXRO.~^wi^gdgoSYORSH~OZ%pF4_a3d@~GPTE~bgXOtJljM~[Wc\N~Ur=fPCi]_Gkn5v~[^u [...]
+ a}XAQY^6c^c5O at pNCB]Eg[`eB?~jj[F~7~xfceIC~kR~sIqE~Y5~vFT>:ga at oC~Ii?Wn|^l_^boN&geftLI\FC;{C~KMQ}iEebjqjT~oJdK~jJgFSN\hJ~|]9?Lsi]<~rQVNuJ~b]g]PCd}`K`\w^I~`+zRgi:Odc^qcL~\h_X]d9hQ7\RRg|LI[mQ~Sb8zdKQN\?jdc/NHaZ_`WJqbgZ^:nX9~Zb-~~k[meaMp^_~`EXK8R]W~LH>kql^bRIfkjfQJWT?BN~i_H~~bq^b^Y~7}a8T>bg8X^O%PNFaY\U`SZJ:~hqE`Gtm[d<oaP~i>X_MWJ^~aPJCnh]M8po\_]?~iQ~Yjf`daPLV~bG~fZm\`Lo~\RXJ%ChbsgJh_G|cAXSJ?W[c_FLabNDoYLPheK at ks^dqbL~`hGM[RXRO.~^wi^gdgoSYORSH~OZ%pF4_a3d@~GPTE~bgXOtJljM~[Wc\N~Ur=fPCi]_Gkn5v~[^u [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/428/ccs/rev np:i:8 rq:f:0.99215
AAGCAGTGGTATCAACGCAGAGTACGGGGCTTAAATGTCGGGAAATTGGGGTTTGCGCCGCCTTCAGGGGCAGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAAC [...]
+
@@ -92,10 +94,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACGGGGTTGGTGTATTTATCCGCTACGTGGTGGATGAACATGGATGCGAACGACATTTCGAAATATACGCAATGATATCCAACCCTACCGAAACAGCAATAATTGTAGAAGGTAGCATATCATGCCGAGAGTTTACTACGTTGTAGCGAGTTTAGTTGAAATAGTTTGTGATGTGTAAACTAAAACATACCAAATGGTAAACTTGTCACCCCCATTTACATTGCGACAGACACAGTTATGGAGTGGATGGAAGTGTGTTCGACTGTCAAGACCCTTCTATAATAGTCGAACCAGTACGGTAAGTGGGCAACATGCCCATATAAGTCGAAGCATTTCAAATGGTTCATCCAGTAGACGACGATGTCCTAGACAGTCATGTCTCTTCCCCATTTGAAGTCATGTAGTGGTTGTCTACTTTTTCATTGAAGACGTCCACCTCAACGCTATGAACGTTAGTTGAGACAATG [...]
+
FiMW[NY3oY[[WOmWNWX4?K[[R0MZWMkCpZNV&2dgXBFU4U[X:B+AdZ>f5TM?lVYB at jO0IPM<kT8YWT+R`VM7lfWXXV?LVOm[KSIWIGiJi0OeY[JmM/laV[NU+i.+iMlN[Z;1O/OFYNWZXA at QPXN<fJQ%GK2c5/UDYVKId8BXNWMBL8kkZNNmLA``DUKEhhNY8YZMQH,6UkUZ7mmkVZ[[Jm?nmZApY'jjUMf8WPZ*jjjh?$edMLOHONWN[W[N[W[WYKJk[ZAkO3@@N+VBkHS><?:?0RS5XT>'1>OmN[Amk<jUF at R)hN[KSUM*iHkBL[[V?m at NmNZ:WjV<k?XDLAmkAVX,ITLQ)IKlNWZ8kkU8llY=R<jV[Y6iYN[ZMBS7>=L[Z=WIlDYOV?YOZDZX=VR.S=\<lmm[;[<'JiIYRPCLDT:O5XLlLPWY[S2ll`QV[BS:NlN[T5OHm[IlB>Hc1NV@(S8NkWM9SZNNmMU9U?JnY6 [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/456/ccs/fwd np:i:8 rq:f:0.999079
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/456/ccs/fwd np:i:8 rq:f:0.999066
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGGTAACTATCTTAAAAACTTCTAAACTGCTGCTTAGTAGGCAATAATCGACTAAATCCATAATTTTTGCGACCAAACGCAAACTTCAAGAATTTTAGACTTTGAAGACCGCATCGGCAAACCCCATTTTAGATACCACTTTAATTTCCAGTTAATCTACGACGCAAGTCACTTCTTTGTCGTTAAGTTTTATTTAACTGTCGCAAACAACAAAATGGTTTTCTAAATTTACTAAAACCAGGACGCACCTAACTTTCTAAACAAGCACAAGTTTAGCTTCTTCGTAAACGTCACCGCGAACTTTGACGCAAGAATTTTCCATGACCATTTCTGGTTGGTTAGCCGAATTTGGCAGTTCATGTTTTTCCACATAGCCATTGACTCCCACGAATAGGTCTCTTTCTTCTTGTTCCATGCGAATGTAAACGATTAGGC [...]
+
- ~~~zplzR~bk^BdsH}c[~~~~sy%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_[~~h~ybq~{|~@~~~~m_~ay/~~t~~r`Wxx~~~}~h~ZV~XW~lw~pv~a~~\\~m~j~8~~~~UfcV8~N~~]uF?mjPi~e4~~f~4~~l]~lxK~ue]~~m7~;qv~um~_[~v8~~]GI~~~xx{~~2~Zb6~~_~Y~~J~~~R~`|{a~xER|e~dO~zvd~wi~n_~~l~ck}~P~lH~~~]N~lK~r~~~YxSL~~zs~l;~~~wk~E~~~w~D~~N~~~x~L~~~g~~i~~chVdI~~A~tQ~~|~U~~y\~~{~za~ln~~~~zg~MX~d~~;~yd~~O~P~[aje~kh~~~~~~pz~xp~]~~~X~j~~~Y~~V~~e~O~W~O~q~wqU~~v~h~~f~~~~_~jzyX@~~~cE~fm~~~~n~~~~~~m~R~~~~mG~~wo~~|~~F~~n~~~~~~~~i~d~x~~n~~x~[~~~~~r~&n~~ [...]
+ ~~~zplzR~bk^BdsH}c[~~~~sy%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_[~~h~ybq~{|~@~~~~m_~ay/~~t~~r`Wxx~~~}~h~ZV~XW~lw~pv~a~~\\~m~j~8~~~~UfcV8~N~~]uF?mjPi~e4~~f~4~~l]~lxK~ue]~~m7~;qv~um~_[~v8~~]GI~~~xx{~~2~Zb6~~_~Y~~J~~~R~`|{a~xER|e~dO~zvd~wi~n_~~l~ck}~P~lH~~~]N~lK~r~~~YxSL~~zs~l;~~~wk~E~~~w~D~~N~~~x~L~~~g~~i~~chVdI~~A~tQ~~|~U~~y\~~{~za~ln~~~~zg~MX~d~~;~yd~~O~P~[aje~kh~~~~~~pz~xp~]~~~X~j~~~Y~~V~~e~O~W~O~q~wqU~~v~h~~f~~~~_~jzyX@~~~cE~fm~~~~n~~~~~~m~R~~~~mG~~wo~~|~~F~~n~~~~~~~~i~d~x~~n~~x~[~~~~~r~&n~~ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/456/ccs/rev np:i:9 rq:f:0.998884
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGGTAACTATCTTAAAAACTTCTAAACTGCTGCTTAGTAGGCAATAATCGACTAAATCCATAATTTTTGCGACCAAACGCAAACTTCAAGAATTTTAGACTTTGAAGACCGCATCGGCAAACCCCATTTTAGATACCACTTTAATTTCCAGTTAATCTACGACGCAAGTCACTTCTTTGTCGTTAAGTTTTATTTAACTGTCGCAAACAACAAAATGGTTTTCTAAATTTACTAAAACCAGGACGCACCTAACTTTCTAAACAAGCACAAGTTTAGCTTCTTCGTAAACGTCACCGCGAACTTTGACGCAAGAATTTTCCATGACCATTTCTGGTTGGTTAGCCGAATTTGGCAGTTCATGTTTTTCCACATAGCCATTGACTCCCACGAATAGGTCTCTTTCTTCTTGTTCCATGCGAATGTAAACGATTAGGCG [...]
+
@@ -108,10 +110,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACGGGGCATACTGCAAGACTTGTAGGCCCATGAATTACCCGCTTAAGGCAATGGGTAGACCTTTCCTTGCCGCGTGGAACAAACCGCCATGAGTGTTTTACGTTTACGGTCGGCGACCGGAGTCACAGCGCGACCAACGGGGCCAGGCAAAGGCCCATAGGCTTTTCCATCGGCACGCGACCGATTCCATCAAGTGTTAGGTGCAATCCCCATTCGGGACGGACACGCGAGAGCGTTAGTCGGCGCGTGCGCGGGACTATTTAGCGAAGGTCGCCGATCGTTTGCCCGTAAAACTAACTGGCAAAAGCCTAAGTGCTGTTTCGGGTGCAATGGTATAACTTCCCACATTTAGCCGAATAGCGCCAACAGCGTTATTATTTGGAACCAAGCAGTGGGCGATGTCAGCGACAATTCCACTTTGGTAGAGGTCGTTCTTTTGTAGAAAACAATCTAACATAACTATGACA [...]
+
.OIRTGG:YQJVQIW:F(UJY)H>A&]^^UI-T at UBZ9\CTFTuQccBS4rrbZ=TrB\C.S:NZDs)ID}[?]_8{wK]Na;r:T:Hh>POKlPAHD?^1qY.rq:oO:o^\Qb?F8-frrb[M:ajKY6e]Y2wZQb=q at Y?QL4]Y2CUKUKJ8>Mj[6qahMtb4vWIls- at Bitdcb2xZ3vkM=sbc\DsDHCLHO_ at iPa/g'm3[SVtPNP;IX0`&<+>US;VWUa/nV:rbc[2w`C`[PBIIK[<ZQKvcQc[2uZPD;IJ\PX9v|bEacEr``P[NMYB^cZ<NoOOJG'ET[O6si;L1bdg(KRi[Y%uT*cbW?LoMUtM[;VFL9Ld[:|O18ETrbBN%[[Cs[Tp3rpaV3EslKL<jPUtMaNF9>^EsYKMSJRsX at mb%hAAl)eIpVtQZMM\,xxWLbbO[[cR\Rc\UvUuOwbC(UFDtccQcB{c\RQuY3aOTQccQ5sbN?Rkb[N2bZcbCsXVVbR^\b [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/603/ccs/fwd np:i:6 rq:f:0.997493
- AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTGTTTAACGCAAATGCCACCAATACATATGTGTCCTCTTAATGTTTGCATGCTTAATCTTTTGATTATTATTTCCTCTTTCTTTCTATTACTAACTTTGTAACTCTCGCTAACCGAATCAACATAAATACGTCAACGAATCAAATGTTGATCTCAAATATCTGTGTCCATGAAATTTCGGATCGTAATCTGCTCTACTTTTGTTATTACAACAAGAACTTCGACTAAAGAACGGACTATCTTGTCTAATAATAATGGCACTAAGTGCATACTTTCTCGACTACATTGACGACTCAAAATAAGAAAGGGAGTTTTTATACATTGACCTAACTCACTACTACGCCTTGGTTACCTTTGAACCTTTCGTTGTCAAAGTTCGTACGATGGTAAGTGCTTTCTACTCCTACCGCTATTTGGTTGAGAACCTGTTAAATGAGATGG [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/603/ccs/fwd np:i:6 rq:f:0.997492
+ AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTGTTTAACGCAAATGCCACCAATACATATGTGTCCTCTTAATGTTTGCATGCTTAATCTTTTGATTATTATTTCCTCTTTCTTTCTATTACTAACTTTGTAACTCTCGCTAACCGAATCAACATAAATACGTCAACGAATCAAATGTTGATCTCAAATATCTGTGTCCATGAAATTTCGGATCGTAATCTGCTCTACTTTTGTTATTACAACAAGAACTTCGACTAAAGAACGGACTATCTTGTCTAATAATAATGGCACTAAGTGCATACTTTCTCGACTACATTGACGACTCAAAATAAGAAAGGGAGTTTTTATACATTGACCTAACTCACTACTACGCCTTGGTTACCTTTGAACCTTTCGTTGTCAAAGTTCGTACGATGGTAAGTGCTTTCTACTCCTACCGCTATTTGGTTGAGAACCTGTTAAATGAGATGGT [...]
+
- _~a[Q`jR~hRfD5oE^A%Y__Pf]%~~~~~~~~~~~~~~~~~~~~~~~~lj>~Z7mAUcAxyui?pYH~?jvshst]tjYkq2~occ~Q~ukK~~kgtvlgd~R~pg6~~~ltd~\Q~sQ~~S~pfK~~f>~jPo0b~^fs>veL~~kv`~bLN]MSev^|MRiR~ufP~e^tW~~vtglvfM~clU~ve=~~pUc~ltvgvgL~~vtugsmof[B~svlM~uK~~dF~rveTsL~nfulgvgu\d=~~~iX|se~rR,WRU~h[vdb~:WqcpDRhjL~c[~]frGqfd~j]apa~uR~uT~r2~NrfuP~ktTdIq]5Bd~NXdltgq,LZc~Ojfk^fva>rt~ub~lPlWQ~~]kK~~~~\sk<pT~ksG~uT~gve]fvtdb^`VT~e~[~K~]T~?~~j>~Rw0ppdTb~UqeDuaie~glq1`i2r4~v[~SrUeZ~~d[\cr=sBLE~kgu]L~~Y~L~kqjN~W~wkR~=|{rlqOXsY~ [...]
+ _~a[Q`jR~hRfD5oE^A%Y__Pf\%~~~~~~~~~~~~~~~~~~~~~~~tj>~Z7mAUcAxyui?pYH~?jvshst]tjYkq2~occ~Q~ukK~~kgtvlgd~R~pg6~~~ltd~\Q~sQ~~S~pfK~~f>~jPo0b~^fs>veL~~kv`~bLN]MSev^|MRiR~ufP~e^tW~~vtglvfM~clU~ve=~~pUc~ltvgvgL~~vtugsmof[B~svlM~uK~~dF~rveTsL~nfulgvgu\d=~~~iX|se~rR,WRU~h[vdb~:WqcpDRhjL~c[~]frGqfd~j]apa~uR~uT~r2~NrfuP~ktTdIq]5Bd~NXdltgq,LZc~Ojfk^fva>rt~ub~lPlWQ~~]kK~~~~\sk<pT~ksG~uT~gve]fvtdb^`VT~e~[~K~]T~?~~j>~Rw0ppdTb~UqeDuaie~glq1`i2r4~v[~SrUeZ~~d[\cr=sBLE~kgu]L~~Y~L~kqjN~W~wkR~=|{rlqOXsY~U [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/603/ccs/rev np:i:6 rq:f:0.994991
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGTTTAACGCAAATGCCACCAATACATATGTGTCCTCTTAATGTTTGCATGCTTAATCTTTTGATTATTATTTCCTCTTTCTTTCTATTACTAACTTTGTAACTCTCGCTAACCGAATCAACATAAATACGTCAACGAATCAAATGTTGATCTCAAATATCTGTGTCCATGAAATTTCGGATCGTAATCTGCTCTACTTTTGTTATTACAACAAGAACTTCGACTAAAGAACGGACTATCTTGTCTAATAATAATGGCACTAAGTGCATACTTTCTCGACTACATTGACGACTCAAAATAAGAAAGGGAGTTTTTATACATTGACCTAACTCACTACTACGCCTTGGTTACCTTTTGAACCTTTCGTTGTCAAAGTTCGTACGATGGGTAAGTGCTTCTACTCCTACCGCTATTTGGTTGAGAACCTGTTAAATGAG [...]
+
@@ -191,7 +193,7 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1034/ccs/fwd np:i:11 rq:f:0.994946
AAGCAGTGGTATCAACGCAGAGTACGGGATCGTGGCCCAGTCAGTGATTACGTTGACCATGAGTCTGGCTGTTCTTGGTTCACCATTAGCTGTGGTGACAATAACGGGCATTGTGGCAACGATACGTCGTACTGCAAGTCCCACTGTAACTAAGACAATTCGGATTCGACCGATACTTGGTCTGGTTCGTTAACTTCGCGTACCTTCTGCTTTACCAGCAGGTCGTCAACGACGAGCCACCGTAACGAGTGTGGTTTCGGTTCGCTTGTTGGTGCTCCAATTTCCAGTACCGAAGAGGTAATTGCAACTTCAATTGCTTAGTTGACGTGACCTTTCGGGTTGTCATGGACTACCGACGGTATCTCATACGTGACCTCGTTGTTGACCTCGTTCTTCATTCTGCACAGACTACAACGTTAGGACTACGGAACCAGTGTGAAGTTGACGGACGCGCTAGTTTATCAGATGCGGTTTATTGGATTGGTTACAA [...]
+
- w~gB}bmSp>NkU7kN=q~m~auZK+mMoGrP~KiA{f[m~fva0&TY}ec\OXT{Aimt at dgg3A%Cot[,AEP[VwNub at Zj]7gmlg|n|D~UbycSn}U}_0Vi|~[u\oR~`^zfhsn~xy~vx~~fc at Ocv{~;v~dnqPpV}RwJoja[\~k~]^~~g~{dx/CSs4NbEy`~yDlO~X{w\d~jj+Z~cHTrzqE~b~e~i63TpeR~~TYZOj`7SzXNUB;NVq~kCzh88*JGjH2KRb_~V|=wSI<MCI0cV;G4;n&GK=0'0HHWE*B<WB^I_K\GY~vx_~~z~h~yg\~_s~PUvr~hh[~rxP~xCSNLt{O~<~ph<~n&GIYLrG8]~e}j@~U~lS~mAS\ukbZj6eu`p5OWObK{Kik]PChX>No~yi~pW/^nhdRb={``:m|dFvmzu~qf~kOtJcQ\$wTyMw~tw4O}F*Qgq=NqyR_jk{ncuL|yp&Kn\R?>c\p.~~}_~XoVdeVzF:[h[_ [...]
+ w~gB}bmSp>NkU7kN=q~m~auZK+mMoLdP~KiA{f[m~fva0&TY}ec\OXT{Aimt at dgg3A%Cot[,AEP[VwNub at Zj]7gmlg|n|D~UbycSn}U}_0Vi|~[u\oR~`^zfhsn~xy~vx~~fc at Ocv{~;v~dnqPpV}RwJoja[\~k~]^~~g~{dx/CSs4NbEy`~yDlO~X{w\d~jj+Z~cHTrzqE~b~e~i63TpeR~~TYZOj`7SzXNUB;NVq~kCzh88*JGjH2KRb_~V|=wSI<MCI0cV;G4;n&GK=0'0HHWE*B<WB^I_K\GY~vx_~~z~h~yg\~_s~PUvr~hh[~rxP~xCSNLt{O~<~ph<~n&GIYLrG8]~e}j@~U~lS~mAS\ukbZj6eu`p5OWObK{Kik]PChX>No~yi~pW/^nhdRb={``:m|dFvmzu~qf~kOtJcQ\$wTyMw~tw4O}F*Qgq=NqyR_jk{ncuL|yp&Kn\R?>c\p.~~}_~XoVdeVzF:[h[_ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1034/ccs/rev np:i:12 rq:f:0.997156
AAGCAGTGGTATCAACGCAGAGTACGGGGATCGTGGCCCAGTCAGTGGATTACGTTGACCATGAGTCTGGCTGTTCTTGGTTCACCATTAGCTGTGGTGACAATAACGGGCATTGTGGCAACGATACGTCGTACTGCAAGTCCCACTGTAACTAAGACAATTCGGATTCGACCGATACTTGGTCTGGTTCGTTAACTTCGCGTACCTTCTGCTTTACCAGCAGGTCGTCAACGACGAGCCACCGTAACGAGTGTGGTTTCGGTTCGCTTGGTTGGGTGCCCAATTTCCAGTACCGAAGAGGTAATTGCAACTTCAATTGCTTAGTTGACGTGACCTTTTCGGGTGTCATGGACTACCGACGGTATCTCATACGTGACCTCGTTGTTGACCTCGTTCTTCATCTGCACAGACTACAACGTTAGGACTACGGAACCAGTGTGAAGTTGACGGACGCGCTAGTTTACAGATGCGGTTTATTGGATTGGTTACA [...]
+
@@ -228,14 +230,14 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACGGGGTGCTCGCCATTTCAACTAGTGCAGTTGCTAAAGTGCCAACTAAGGTTCGTCTTGAAGCAATCGGTAGTATCTGCAGTCAAGTCGTAGTCGTAGGTATGGCACTTGTCGTGCGTCTAGGACGCGTTGAAGCTATCTTATTGCCCGAAGGAGCCGAAAGTCTGGGACACGTCGTGGGACGTATCGTTAGGACTATGGGACTAGTCGTCTTCGGTCTTACAAATGTTGCAATGCCCTGTGAGCTACTTATGAAACATGAATGGTCGGTCTTGTGGTCGCTTTTGTCGAAATCACCGAAGTGCGTATAATTGATGAACGAGTCGAAGTCGAAGTTGTTCAACAAGAGAGTTAGGTAGTGCCGCTTTGAAAAAGTAATAGTGCAAATAAGAAAGTAAGACTGTATCGGAGACGACTTTTTAATAGTAGTAATTCTCGGTACAACTAAACCAGTAATTTCAGACACT [...]
+
v~~aT|p]~z~hy|~lyM~;eyd~a3~~~xlwh~mN~~[~~z~~~~~~(|b~Xm~l~~Y~~ar~m~k~~s~~?~~~~y~~s~~m~_~w~~~]~~~~~~~~c~~~y~~~~ka~vr~~~~w]~_~~~[Y~T^~m~~t~~MRl~w~~~a~~~q~~J~~K~~~~~~~t~~r~~\~~~~~L~~~g~s`~~~~~~H~~}z~~Lu~x~K~~~~{v~U~~S~~P~~~~~~J~~~~u~wv~]]~o~~v~~~t~~iq~~~~1}n(|~tu_~~s`~w~~~~~~]~~~~`~~~~~_q~cs~~~o~3~Q~z8S~~~x~?~~~l~p]a~~~x~m~wl~~~d]U~~lj~v~~U~~~~~~~~~~~~~y~~~~~~i~~S~~q~~~~w~~~yt~~d~~~lqqk~u~7~cX@~~~k~~Y~~~slp~i~~~~~~Z~~~wl~y~l~x~~v~K~yq~~[~~4~~~~~~~~~i~y~~~p~~~~@~Y~~q~o~J~~N~~vqT~c~~~~n~~~~z [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1216/ccs/fwd np:i:11 rq:f:0.99572
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1216/ccs/fwd np:i:11 rq:f:0.995676
AAGCAGTGGTATCAACGCAGAGTACGGGGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACCGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAACTAGTGCAGTTGCTAAAGTGCCAACTAAGGTTCGTCTTGAAGCA [...]
+
- a~lYaXa\~}P(<&bYWfsS~T~~g<~pt`bnY,~~~~NKmP]eQD:`G`eN~{~v~A~]>_I~li~zlc^iI~~~gsF~zQL~~wQk~Kpybq`r$R[`lfe=~dH~x[qW}YaKueNrIU~~qtOerQ~T~FpK~yd=ZvJk~=3_i;w~r;Bm[c~Qm@]f~Z~f~h~B~~M~cX/~~~h~~Ki~]m~pvDpF~q`~zRC`y~Y~iF~~~p at WU}idB~~2Om8=Y)rBEr$~sccIdL\G^NFpZn;aVo~kj=~~~D~X~mklAxPHusfg^dZmx~i^PB~eaf?MevYFS~~Z~VNw>F]aks~~'~~m~m~c~~U~~m~6~o|~j~~8~~hXZijT~~~0~~^\n~~~B~ziGfW~~~m8k~g$@A]t>hB9~L~ch~Mt~ghj~}F~Hdg~p~~q}2vTx~R~W~UN}=sj*aBdkjd~W~s~~n~3n4~zJ~uj[~j~~~~qfWmm~~p~Q~~~~l0~OO@~l~b~W~UjP]o~qh~~mk [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1216/ccs/rev np:i:12 rq:f:0.997323
- AAGCAGTGGTATCAACGCAGAGTACGGGGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAACACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAACTAGTGCAGTTGCTAAAGTGCCAACTAAGGTTCGTCTTGAAGC [...]
+ x~}hujte~~H'<&bYWfsS~T~~g<~pt`bnY,~~~~NKmP]eQD:`G`eN~{~v~A~]>_I~li~zlc^iI~~~gsF~zQL~~wQk~Kpybq`r$R[`lfe=~dH~x[qW}YaKueNrIU~~qtOerQ~T~FpK~yd=ZvJk~=3_i;w~r;Bm[c~Qm@]f~Z~f~h~B~~M~cX/~~~h~~Ki~]m~pvDpF~q`~zRC`y~Y~iF~~~p at WU}idB~~2Om8=Y)rBEr$~sccIdL\G^NFpZn;aVo~kj=~~~D~X~mklAxPHusfg^dZmx~i^PB~eaf?MevYFS~~Z~VNw>F]aks~~'~~m~m~c~~U~~m~6~o|~j~~8~~hXZijT~~~0~~^\n~~~B~ziGfW~~~m8k~g$@A]t>hB9~L~ch~Mt~ghj~}F~Hdg~p~~q}2vTx~R~W~UN}=sj*aBdkjd~W~s~~n~3n4~zJ~uj[~j~~~~qfWmm~~p~Q~~~~l0~OO@~l~b~W~UjP]o~qh~~mk [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1216/ccs/rev np:i:12 rq:f:0.997025
+ AGCAGTGGTATCAACGCAGAGTACGGGGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAACACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAACTAGTGCAGTTGCTAAAGTGCCAACTAAGGTTCGTCTTGAAGCA [...]
+
- .eUzt^bFscS~~X|y[H~S^l~~~%sJ[uAZf%~~a\vTPvu~e~_d5xz\~M~LfH~~OPDz~gp~~Jr~F~~i~~b~~[*quuxYe~8}o^~m~U~~g~VQ~e|~T^~:~nxE~ieyiR~PlCe at H]X|~]YT~]1j~~:~gMM~~>~~gl~ZufeViZ~m~ZQl~GjU~}@xjO?~~~DkYfBH[_Il~]eW~Wo~k[6~~+G_Lvpop}okolS|~Z~XN`t~\~~Wqp~M~~q~j~i>Y~j~fVl~j~ko~VE~~~:LJb~~VQ~U^K~~~kocEbi]sdMwwdh>qxrh3XM~~?~~~Y~qosqt~[D~~w~|jT~~v~~_~k~lxZT~kh~~]~`m~kZfCiwh:qRw[>.~Y]^t~~~~qa~~~~jmpPCyD~`~m~~p~i~~ZzXI~Rgf~<~e~|X~~PxL~j~pA~K~}U~~~hpV~eoXhkp~|i[~xDzpZ0~[~~dJmmwYioW~iX~npxK:~Cre}{~U~_~ifQHIql^~BX [...]
+ %J~yftE~eS~~X|y[H~S^l~~~%sJ[vAZf%~~a\vTPvu~e~_d5xz\~M~LfH~~OPDz~gp~~Jr~F~~i~~b~~[*quuxYe~8}o^~m~U~~g~VQ~e|~T^~:~nxE~ieyiR~PlCe at H]X|~]YT~]1j~~:~gMM~~>~~gl~ZufeViZ~m~ZQl~GjU~}@xjO?~~~DkYfBH[_Il~]eW~Wo~k[6~~+G_Lvpop}okolS|~Z~XN`t~\~~Wqp~M~~q~j~i>Y~j~fVl~j~ko~VE~~~:LJb~~VQ~U^L~~~kocEbi]sdMwwdh>qxrh3XM~~?~~~Y~qosqt~[D~~w~|jT~~v~~_~k~lxZT~kh~~]~`m~kZfCiwh:qRw[>.~Y]^t~~~~qa~~~~jmpPCyD~`~m~~p~i~~ZzXI~Rgf~<~e~|X~~PxL~j~pA~K~}U~~~hpV~eoXhkp~|i[~xDzpZ0~[~~dJmmwYioW~iX~npxK:~Cre}{~U~_~ifRHIql^~BX[ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1226/ccs/fwd np:i:5 rq:f:0.986061
AACAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTCCAATCTGGCAGATTAGATACAGCTATAGAGCGAATCACCACGTCTCCTAGATAACTGGCAAATCTTCACATTTACGCAAGACCATAGAATAGTCCATAAGCAACATATTGCCGCATCGACCAAATCATGGCTTTGCACCTCCCAACTTGCCTGAATCGTGTCAGACTATAGCGGGACGTTCGACCCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGAGTGCGAAGCCACTAGGTTTGCCACTGTTGACCACTCAGCACGCAATCTGCAAGATACGCAGTAATGCTAAACCATACTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCGAGCACAACGCTTCTTGCTA [...]
+
@@ -256,10 +258,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACGGGACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGTACAGCTGATGTGATCCTCTCTACTATCTTCTCTGAGGAACCATGAGATGGATAGTGGGGGACCTGAGTCATACTAGGGTAACTTCTTATATGGTGACATCACTCCTACCGTAGAGGGGGACGGTAGTCTGTGGGAAATCTACCCTAGTGAAGAAAGGTAAGAGAATGTCTGAACATTACCTGTAGACGAAGGTACTCTCAGAACAACTACTCTCACATACGGAAAGGTTTGGGTCCTTGGTCAAAGGACTTTACTGACTCTGCAGACGGATGAATATCTGAACCAACACTTACTATCAAAGATGTTCGACTAGACCTCTCGTGGTAGGGCCTGGAAGTCAAAAGACTTCTCTATGGTACTAGGTAGGTAGTTAAGTACGGTCCCTGGT [...]
+
Ev_`UWQP~vx>EIjS[;RYshk~r1+V}N~hrWkb2ru}n]kQ{d<nVWnpbAhv_O~yWi7Dy~3mQg=~~x\~prlzVtF~<{jqg_fi~b|hKhIX(lZV\P^QaHg[ScUMI~isog}yDf`&H;wrlmai\X~R~Ow\ymrnZw8turtK`%UG[z|>ze`qanx~~~w|~:~~i\~r.|tY~pd~vY~{nzadywz\rR~~hT~ZhK;l'~~aktWSbxdc~Pknk-~nQ~~gihhDq~@X at bh0hI89\Ty]AdXNRTztft`{qa~?og~~[~knkUn~TiRpS~~lZR[gt~o]egHwb~rl]UeW~nfymdJ~H~~M~Q~p8zziU~Jx3Ne[B]H^~~K8~}jCxZstr[{_^~n~T%gp`eZ~bkyyym\~[\(pRWS*NO]lDRo;z~f\ofJ~j]Vn~jmUY~Md]ZTg/~{[IRsO~SL~P~SfJ3fvjjBZS~uxZv~x&ez~tOlCy_Q<j{~=WyY0j~~j9~|;~~^1~K [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1241/ccs/rev np:i:8 rq:f:0.991317
- AAGCAGTGGTATCAACGCAGAGTACGGGACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAACAGTATACGCAGGTACAGTGATGTGATCCTCTCTACTAGTCTTCTCTGAGGAACCATGAGATGGATAGTGGGGGACCTGGAGTCATACTAGGGTAACTTCTTATATGGTGACATCACTCTACCGTAGAGGGGGGACGGTAGTCTGTGGGAAATCTACCCTAGTGAAGAAAGGTAAGAGAATGTCTGACATTACCTGTAGACGAAGGTACTCTCAGAACAATACTCTCACAGACGGAAAGGTTTGGGTCCTTGGTCAAAGGACTTTACTGACTCTGCAGACGATGAATATCTGAACAACACTACTATCAAAGATGTTCGACTAGACTCTCGTGGTAGGGCCTGGAAGTCAAAGACTTCTCTATGGGGTACTAGGTAGGTAGTTAGAGTACGGTCCCTGGGGTG [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1241/ccs/rev np:i:8 rq:f:0.991368
+ AAGCAGTGGTATCAACGCAGAGTACGGGACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAACAGTATACGCAGGTACAGTGATGTGATCCTCTCTACTAGTCTTCTCTGAGGAACCATGAGATGGATAGTGGGGGACCTGGAGTCATACTAGGGTAACTTCTTATATGGTGACATCACTCTACCGTAGAGGGGGGACGGTAGTCTGTGGGAAATCTACCCTAGTGAAGAAAGGTAAGAGAATGTCTGACATTACCTGTAGACGAAGGTACTCTCAGAACAACTACTCTCACATACGGAAAGGTTTGGGTCCTTGGTCAAAGGACTTTACTGACTCTGCAGACGATGAATATCTGAACAACACTACTATCAAAGATGTTCGACTAGACTCTCGTGGTAGGGCCTGGAAGTCAAAGACTTCTCTATGGGGTACTAGGTAGGTAGTTAGAGTACGGTCCCTGGGGT [...]
+
- HOD7;XC;dfglZIvCGEsjYfeeZ<~~l&svvsip0~iGFobY`[Wg~s~DdZ~~~M~|>DdIsf]gpf1~~VI|\eQ\SX[`%~~~n~s^w~b[\hAH}Ycmpb)eOS\Hm^dS~{RVevUUyrlB&.E6[Pbmg\lG~9~},mh^M~>h_VEJZ$It~y_MVi(PQih at H@\ci[@Fg^MoJO^ZDXIPcT[w[uxhIeld%J*h|M~iRwJy'XIlxffYVdMKo|[~r~5~~C~~~r~}9~~~z\~te~oA~~`~|N~[DPM~~`fbZ^7TYHz}]~~nh_[ioxNnP~GQ`_Noi}?R{WIR&l`lFkXd]Z-;nJY?epW{D~S5>KT8mFUTwZPIho4zn`Cqj_XcT^e7E8;?L]?HcufVWzgZD0jXbo)A~^oFgscOZcgK~~jIgC3eMf`b]^V_)^=>Qa`?~Pu<pwT~K,~d~W^L(ntUsTU|\gM_vj&7FosdN~vW~cBDpxsEH~teCgJRfVrOG~~d8ooq|\ [...]
+ G9.=<YC;dfglZIvCGEsjYfeeZ<~~l&svvsip0~iGFobY`[Wg~s~DdZ~~~M~|>DdIsf]gpf1~~VI|\eQ\SX[`%~~~n~s^w~b[\hAH}Ycmpb)eOS\Hm^dS~{RVevUUyrlB&.E6[Pbmg\lG~9~},mh^M~>h_VEJZ$It~y_MVi(PQih at H@\ci[@Fg^MoJO^ZDXIPcT[w[uxhIeld%J*h|M~iRwJy'XIlxffYVdMKo|[~r~5~~C~~~r~}9~~~z\~te~oA~~`~|N~[DPM~~`fbZ^7TYHz}]~~nh_[ioxNnP~GRiiXyn{IJ~DA~'JU]^Bi]K\d3NYFM8fs`~3~S5>KT8mFUTwZPIho4zn`Cqj_XcT^e7E8;?L]?HcufVWzgZD0jXbo)A~^oFgscOZcgK~~jIgC3eMf`b]^V_)^=>Qa`?~Pu<pwT~K,~d~W^L(ntUsTU|\gM_vj&7FosdN~vW~cBDpxsEH~teCgJRfVrOG~~d8ooq| [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1250/ccs/fwd np:i:5 rq:f:0.991787
AAGCAGTGGTATCAACGCAGAGTACGGGGTGGAGAAGCAAATACTTGGATACCGAATTTAGAGGCCCATAGGTTATGGAAAAAGTCAGTGGATTAGATAGTAAAAGTCGAAATCTTTATATTCGGTTCGATGTACTACGTTATTCGCGACTGTTCTGTCATGATAGTTTTTTATATAGTCCTAATAAAAGGAGTTTTTAAAGTAAATGACATTTCAGTAGTAAAGTTTAAGAGCTTTTTGTTCTGCCAGACCGTTCTGATAGTTGAGGAAAACGTGTGGTCAGCTAATAACTTGTGGTATGGAGTAAACGAACATCCAACAGTATGTACAATCGTATGAGAAAGGACAAATCTGAAGACGATATTAGAGGGAGTCCAACAAGTTTGTGATGATTCACGTAAGGAAATCGAAATGTAGATTATTCGTCAATGGAGGTATAAGACAACACACCAAGTAATTATACGCGACGAGTTTTCATGTTGACGATCCC [...]
+
@@ -296,10 +298,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACGGGGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATTGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTATCGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAACTAGTGCAGTTGCTAAAGTGCCAACTAAGGTTCGTCTTGAAGCA [...]
+
I~dFW_eQgTVlZL~XcWX`fKah\(~iNJaZk2fj~i at MhXV~TWH_;Rd5lJa at QBm\9G&NEDLlJX(SPH~~nYP6~TTFewU[]~EN_QbTjGSUb[fBhJ2}dNzS~gW4jdTeMI~mlaYen>]F:LdJLm`UWhR~TY3~~NmgMQP(F_coeYOgHndhDc>1W'MQb'eQfROQb>bEYzLk[^B_h\~OZ;~~s[fl\jS%O[`BR<?/HdYA~bcRGdZM[,W.B+)JMCS>cVQ at eZkP^kfHD~jnBlM{>WfWPfMofcWOXVEGicWY@\<T`Av~nbXR~eR~W<c_(QMSZN~c)~fPY+a?ojUb7WsP~ncwdylIu[W[H`saa[VM~co^P~W]Krx\F~rxlXUX{~b-NYawclpC~^oV`v[sDZagnm@~Z^B~5ohcuI~Y,\D~QpZG~JxYCg_pUO\vMl>XVKZH=N~w<~~a;wW[@i at PM=[S~T2<S~~Xf]<GNy_H^~Z~a|2gn0^~Ud~mc` [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1426/ccs/rev np:i:7 rq:f:0.993829
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1426/ccs/rev np:i:7 rq:f:0.993881
AAGCAGTTGGTATCAACGCCAGAGTACGGGGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATTACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGATAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATGTCGGCCTGGATGCAATTGTGCTCGCCATTTCAACTAGTGCAGTTGCTAAAGTGCCAACTAAGGTTCGTCTTGAAGCA [...]
+
- 37K*FK%27<N>MY0sZQ*ZR>FFJc\/|w=@+Cn-s;4Wb[ma7~U~ThH~hQ~TQ^S3^bY5/kQTfUkZKP+^mmaPPoU]3MwleL~T~ZcWc\It~[fZM~YDHCMO at qhc.eYQYVBb^`AFSe8l]P?L at JeZd>oG~XFFk~?|bUTK<hf$9A'Uf\mffS7bFR~~V~iWDnroH~cZ^|eKp1idEC~eWnWLH~~nb[lNVk.]TdWacK[3TjTR~~FkeWP*eLcTa8@~fahn[b)GS`e at U;:EQ~PRS~T~h`Q*sEEm~m[BNgbW}\ia4lgc1EngNZfI~kLwPkmmTT:KWx<9z?I~aR at y~dXkGkIzZWlfk2R~lOkd8G5dHNuiUPXmFkG~`L=]mUkj/IQxVd[fojDe0~Nu_LeZTbgcUXZ1f\b@?'dMNcK~`Qb(VWcIqQghH~hnJQLy@\WcXOidZ8wh:nzf_~f[lXh[gm[?uWHGP~mFRUJrM}bV[x%yU]_VlN8~XEyAMI [...]
+ 37K*FK%27<N>MY0sZQ*ZR>FFJc\/|tZ=/@m-s;4Wb[ma7~U~ThH~hQ~TQ^S3^bY5/kQTfUkZKP+^mmaPPoU]3MwleL~T~ZcWc\It~[fZM~YDHCMO at qhc.eYQYVBb^`AFSe8l]P?L at JeZd>oG~XFFk~?|bUTK<hf$9A'Uf\mffS7bFR~~V~iWDnroH~cZ^|eKp1idEC~eWnWLH~~nb[lNVk.]TdWacK[3TjTR~~FkeWP*eLcTa8@~fahn[b)GS`e at U;:EQ~PRS~T~h`Q*sEEm~m[BNgbW}\ia4lgc1EngNZfI~kLwPkmmTT:KWx<9z?I~aR at y~dXkGkIzZWlfk2R~lOkd8G5dHNuiUPXmFkG~`L=]mUkj/IQxVd[fojDe0~Nu_LeZTbgcUXZ1f\b@?'dMNcK~`Qb(VWcIqQghH~hnJQLy@\WcXOidZ8wh:nzf_~f[lXh[gm[?uWHGP~mFRUJrM}bV[x%yU]_VlN8~XEyAMI [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1446/ccs/fwd np:i:7 rq:f:0.992319
AAGCAGTGGTATCAACGCAGAGTACGGGGCCTTGTCCGCGAGTGTCAACCGGGTTTTACAAAGGAGAAACTTCCAACATCAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTGTGAGGCGCAAGGTACATGCTCTTACCCCACTCTCAGCACGTAGGGAGCGGAGTGTGGAAGACCAACAAGCCCGTCGCCTCTACCAAATACAGTGTTTAGGTGTGTCGGAGGGCAGAACCAACCGAAAGAAGGAACGATCAACACTTATATAGTGTCCTGTCGGCCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCTCTAC [...]
+
@@ -399,7 +401,7 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1800/ccs/fwd np:i:8 rq:f:0.9959
AAGCAGTGGTATCAACGCAGAGTACGGGGTTGGTGTATTTATCCGCTACGTGGTGGATGAACATGGATGCGAACGACATTTCGAAATATACGCAATGATATCCAACCCTACCGAAACAGCAATAATTGTAGAAGGTAGCATATCATGCCGAGAGTTTACTACGTTGTAGCGAGTTTAGTTGAAATAGTTTGTGATGTGTAAACTAAAACATACCAAATGGTAAAACTTGTCACCCCCCATTTACATTGCGACAGACACAGTTATGGAGTGGATGGAAGTGTGTTCGACTGTCAAGACCCTTCTATAATAGTCGAACCAGTACGGTAAGTGGGCAACATGCCCATAAAGTCGAAGCATTTCAAATGGTTCATCCAGTAGACGACGATGTCCTAGACAGTCATGTCTCTTCCCCATTTGAAGTCATGTAGTGGTTGTCTACTTTTTCATTGAAGACGTCCACCTCAACGCTATGAACGTTAGTTGAGACAAT [...]
+
- msV\yW]Ir[P?YUtYRH^.uD`wZ)olZAcBs_OM`2lib87bN5\y[FY3jUCrhYTYvHiPEn{MTOTGuXRMKX9_L^WYanZh\fVUYgyYEi\|U'\C`=ee^i5rQS^|]zV]Dh^VsCT2GvD]_CxHjV;t]e^CTXTHcVwWzW8{}{]a|^W-d:StFZD{W5{|oXQxXY|z[aV$ptV\SkXNGBILauZL;ahlKq]m4b2[\^Cw_Mq{lMRtV][v%@3/Wle6gawOqLxDZGz]zUhBqVcT2dRI;lnO8 at TX]EyUJV;3HC9[9UpI_V_]0UJk1]bHcKZQX`_VhV^KUVlCjeW^lKC^XY]QU.sdWW_9sQE0g<3DB&RVPYEV[V\k>jPS=xlV&>=tLfTGQ at VY]SL??M4RdOWL>wVgNjDtX[LkWXF)CUKa7kgdyE}[.Q^VaXb`X]zT^9tNgXYY]wN+x}}wWWHvUWuZvFDZ<kwCZZX=BZDTGlZV+aSSO_rWKqW^UdZ3NW [...]
+ x|]c~LbMyaZK`M~_]H^.uD`wZ)olZAcBs_OM`2lib87bN5\y[FY3jUCrhYTYvHiPEn{MTOTGuXRMKX9_L^WYanZh\fVUYgyYEi\|U'\C`=ee^i5rQS^|]zV]Dh^VsCT2GvD]_CxHjV;t]e^CTXTHcVwWzW8{}{]a|^W-d:StFZD{W5{|oXQxXY|z[aV$ptV\SkXNGBILauZL;ahlKq]m4b2[\^Cw_Mq{lMRtV][v%@3/Wle6gawOqLxDZGz]zUhBqVcT2dRI;lnO8 at TX]EyUJV;3HC9[9UpI_V_]0UJk1]bHcKZQX`_VhV^KUVlCjeW^lKC^XY]QU.sdWW_9sQE0g<3DB&RVPYEV[V\k>jPS=xlV&>=tLfTGQ at VY]SL??M4RdOWL>wVgNjDtX[LkWXF)CUKa7kgdyE}[.Q^VaXb`X]zT^9tNgXYY]wN+x}}wWWHvUWuZvFDZ<kwCZZX=BZDTGlZV+aSSO_rWKqW^UdZ3NW [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1800/ccs/rev np:i:8 rq:f:0.994058
AAGCAGTGGTATCAACGCAGAGTACGGGGGTTGGGTGTATTTATCCGCTACGTGGTGGATGAACATGGATGCGAACGACATTTCGAAAATATACGCAATGATATCCAACCCTACCGAAACAGCATAATTGTAGAAGGTAGCATATCATGCCGAGAGTTTACTACGTTGTAGCGAGTTTAGTTGAAATAGTTTGTGATGTGTAAACTAAAACATACCAAATGGTAAAAACTTGTCACCCCCATTTACATTGCGACAGACACAGTTATGGAGTGGATGGAAGTGTGTTCGGACTGTCAAGACCCTTCTATAATAGTCGAACCAGTACGGTAAGTGGGCAACATGCCCATATAAGTCGAAGCATTTTCAAATGGTTCATCCAGTAGACGACGATGTCCTAGACAGTCATGTCTCTTCCCCATTTGAAGTCATGTAGTGGTTGTCTACTTTTTCATTGAGACGGTCCACCCTCAACGCTATGAACGTTAGTTGA [...]
+
@@ -416,10 +418,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACGGGGTAAGTTTATTGATAGGTAAAAAAATCAAGAGAGGGTAATAAAGAAGAAAGAATAATCAAAAGATAGAGCATGCAAACATTACATGGTAGTATTGTTATAGGCGGTATATTGGTAAATGACGATCCTTGACTTAGTTTTTTTACATCGAACGGTTGCAAATCCTAGCATACTTGATATTAATAGTAGATACTGAAATATATCTGAGTATATCAAGGGAAATCGAGATGTAACAATAAGTCGAGGAAATTAAGGTCAATTTAGTGCTTATCATAGAAATAACTACTTAAGCCCTTAAACGAACTAACTCAAATTAACGAGGTAGAGGTTATTCTGAATTGTACGAACGTAGTCGAAGTTTGTTACCAAGGGTAAAGCCAAAACAAAACGATTTTGACAAGAGAATCTATTCCATGTAGTAGTGCGTTTGTACGACGTTCTATTCGATGTAAATCATTAGGACG [...]
+
RkPR[PW5M<+5A&WQPRUJT:SD:(bjjVNkO5kkZIjOENJCmV)gXRai\VRAfP[KL<mmTCU8BdiO;e9:edO9f(9W?O6XWXNA=SI[PRZQ)P<lgRP,aKR[WCmW[PTN-SKIf,TUB]:3cUVO[Ji1iUDkhN9YP:YU4gKlP[RKl[P$iiaQW;<H[URPBX>>LI]894fgVElQLORWS:%FPL:VZ3VMgQPPVBOW?EQWP<liW[QOT9=MEN=?,A>N+e5bO9iiVP5HP[RKWNkRLkTKkPU<MEClGkjKl*P2cWRMj?mbLOWPRImY?OEUUK8gZP<aIWY;8iKMN/ggKl<khRP at V:P>RLVK'afHj<ULKDBZO[P[Cm3d[HlRWP at eJh:U[RM(HOLO[OP'I9cN9kX:9iZAfIf5nfV?SKIEj2kjaJ=jaNLID-jl[PWRJGM>G*Z:LV[GgEj[WPVWOT?HUOQL2\SJ=>INEQPKjOCC at WRKLVPW:ljRPEIm[ClEKO [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1902/ccs/rev np:i:4 rq:f:0.990087
- AAGCAGTGTATCAACGCAGAGTACGGGGTAAGTTATTGATAGGTAAAAAATCAAGAGAGGGTAATAAAGAAGAAAGAATAATCAAAGATAGAGCATGCAAACATTACATGGTAGTATTGTTATAGGCGGTATATTGGTAAATGGACGATCCTTGACTTAGTTTTTTACATCGAACGGTTGCAATCCTAGCATACTTGATATTAATAGTAGATACTGAAATATATCTGAGTATATCAAGGGAAATCGAGATGTAACAATAAGTCGAGGAAATTAAGGTCAATTTAGTGCTTATCATAGAAATAACTACTTAAGCCCTTAACGAACTAACTCAAATTAACGAGGTAGAGGTTATTCTGAATTGTACGAACGTAGTCGAAGTTTGTTACCAAGGGTAAAGCCAAAACAAAACGATTTGACAAGAGAATCTATTCCATGTAGTAGTGCGTTTGTACGACGTTCTATTCGATGTAAATCATTAGGACGAGGGTTT [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1902/ccs/rev np:i:4 rq:f:0.990026
+ AAGCAGTGTATCAACGCAGAGTACGGGGGTAAGTTATTGATAGGTAAAAAATCAAGAGAGGGTAATAAAGAAGAAAGAATAATCAAAAGATAGAGCATGCAAACATTACATGGTAGTATTGTTATAGGCGGTATATTGGTAAATGGACGATCCTTGACTTAGTTTTTTACATCGAACGGTTGCAATCCTAGCATACTTGATATTAATAGTAGATACTGAAATATATCTGAGTATATCAAGGGAAATCGAGATGTAACAATAAGTCGAGGAAATTAAGGTCAATTTAGTGCTTATCATAGAAATAACTACTTAAGCCCTTAACGAACTAACTCAAATTAACGAGGTAGAGGTTATTCTGAATTGTACGAACGTAGTCGAAGTTTGTTACCAAGGGTAAAGCCAAAACAAAACGATTTGACAAGAGAATCTATTCCATGTAGTAGTGCGTTTGTACGACGTTCTATTCGATGTAAATCATTAGGACGAGGGT [...]
+
- 4K9JUNA&G3 at 92[K4:S9GN at A9&JZ`EIlP+\K?hRTFR1SQ%kkdONTQDi@>@,+Q_R2:++WF71XL9jW<FeNIlVO+k[/LWQ7CPN>VP:6hjOVNkWPW[EjE:RTVKiM;XP[U5VN3a+^c^&nL|c8UrQ'LJW\agM~UbYaXAkVA.^peb]]TIdYXM[WKt1sYX-v5KlfaD0NO_JE_W\>D7WCyOa\g_D\P`XPZ;zyO`aUKTcB/AR`fafYTg4wwJ{|gV+DAPKW`?xXQf5 at yYNXY^'Z%oc.jBsKv:WT|OzzaGQZYWzbdY`P`\D}|a>yTN`XOZ/yX,e]JtT|XEOeYe/xWRX1gQGlSzXY[&nNHEF;_?u/>oU[\?pWyXP`Y\?nXVT7BSSAMeEAubK6[`Ly??&VO&Gjz\J|Az|vY/vtbXCHJh]\aYSzF_Z,adUUWJXJ}`QHM138GEOZYW=`tX\IU,YU\FsUdaFvXYMPWd>{pPYaK{aNzaYVX4Y5,T[ [...]
+ I]=JWOB&I4 at 92[MG:S8IN?C8$GOcDEJlQ.eUKROUESCP[)klgSMZPJfM)8N:NdZIQ,(WY7FZQ4iV'FePKl[P*ReXPSESRURN?XP:6hkOVNkWPW[EjE:RTVKiM;XP[U5VN3a+^c^&nL|c8UrQ'LJW\agM~UbYaXAkVA.^peb]]TIdYXM[WKt1sYX-v5KlfaD0NO_JE_W\>D7WCyOa\g_D\P`XPZ;zyO`aUKTcB/AR`fafYTg4wwJ{|gV+DAPKW`?xXQf5 at yYNXY^'Z%oc.jBsKv:WT|OzzaGQZYWzbdY`P`\D}|a>yTN`XOZ/yX,e]JtT|XEOeYe/xWRX1gQGlSzXY[&nNHEF;_?u/>oU[\?pWyXP`Y\?nXVT7BSSAMeEAubK6[`Ly??&VO&Gjz\J|Az|vY/vtbXCHJh]\aYSzF_Z,adUUWJXJ}`QHM138GEOZYW=`tX\IU,YU\FsUdaFvXYMPWd>{pPYaK{aNzaYVX4Y5, [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1945/ccs/fwd np:i:13 rq:f:0.998296
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGTTGGTTCGTACAGCGGTAAATGACTTGTTGAGTCTTGACGTCGACGACCAAAGCGACCACTTTGACCCAATTGCGAACTACTAAATCCTAAGCAAAGACTATTAGGTAGTAGCCAACTTCGTTAATTCCGTTCAGTACTTTTAAATTCTAACCGACCATCTTTCCGAGTTGCTTCAAACCCTCGTCCTAATGATTTACATCGAATAGAACGTCGTACAAACGCACTACTACATGGAATAGATTCTCTGTCAAATCGTTTTGTTTTGGCTTTACCCTTGGTAACAAACTTCGACTACGTTCGTACAATTCAGAATAACCTCTACCTCGTTAATTTGAGTTAGTTCGTTAAGGGCTTAAGTAGTTATTTCTATGATAAGCACTAAATTGACCTTAATTTCCTCGACTTATTGTTACATTCTCGATTTCCCTTGATAT [...]
+
@@ -456,14 +458,14 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACGGGGTAAACGAACATCCAACAGTATGTACAATCGTATGAGAAAGGACAAATCTGAAGACGATATTAGAGGGAGTCCAACAAGTTTGTGATGATTCACGTAAGGAAATCGAAATGTAAGATTATTCGTCAATGGAGGTATAAGACACACACCAAGTAATTATACGCGACGAGTTTTCATGTTGACGATCCCTGAGACTATATCATACAAAATTGACCCAAATAATTAACTCGTTCCAATAGTTGAAGTGTTGATTAACACATTGAGACAAGTTGTCCGTACTTTAATCATCAAAGTTTTGGACTGACCTATAAATGAAATATTCGCGTTGTCTTCAGTTTAAGAAGTGATATTATTTTCGGTTTCAAGCCTATGTGGAGAGATACAGGAAATAGGTAAACTATAACTAATATAAATATACGCAGACGAAGCCTGTTAACTTTACCAAATCCAAATAGCGGGAGACA [...]
+
W~e]henC~hbp\H~\_MZcRcnOE=~~~pCucWd6hVbkK~7TIdMhheZEHEG_mFcpeU`4Y3zRA~fW6xcd]lMX~[YY_H8>J]>ch>~sZ=VIXPm\EkZFjwcmcaR`JI`WfV_nFdTt-cu_[c/c_^epUn__`~OI~\ep]KjeA~`P~PLc;NW;,%VdOX0>3eJk9ZLbR\gYIBI6BbheL~~~[>ne`~Md?X_n)rmWcheh[Z=UHNYVMJC(B`cWddR9~\@~~oX~'$$zBn]e[g>oKmhLcBPQ/vPlMVB`VU~7|ZQ\fM~O;AH\+LL_~ELL~emIUCzXCw_\eV[F~nM1w_sA~f\i]^-`[\_2~bUc3~f_'Ta2]]a5}HQXVu]Mc6b~Sd_0xaUcglgYnR=VYq\QwF~jF2/MM~nQUcnCud;cSRl:XO1f0z[OfQ~_8nmYUeiFk]pK~nK^LycoeSMCL[idhZMRsd<~lLHzJ~]R~lXL~>~oOJm:97jbcE6i`GR]CL [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1999/ccs/rev np:i:5 rq:f:0.993133
- AAGCAGTGGTATCAACGCAGAGTACGGGGTAAACGAACATCCAACAGTATGTACAATCGTATGAGAAGGACAAATCTGAAGACGATATTAGAGGGAGTCCAACAAGTTTGTGATGATTCACGTAAGGAAATCGAAATGTAAGATTATTCGTCAATGGAGGTATAAGACAACACACCAAGTAATTATACGCGACGAGTTTTCATGTGACGATCCCTGAGACTATATCATACAAAATTGACCCAAATAATAAACTCGTTCCAATAGTTGAAGTGTTGATTAACACATTGAGACAAGTTGTCCGTACTTTAATCATCAAAGTTTTGGACTGACCTATAAATGAAATATTCGCGTTGTCTCAGTTTAAGAAGTGATATTATTTCGGTTTCAAGCCTATGTGGAGAGATACAGGAAATAGGTAAACTATAACTAATATAAATATACGCAGACGAAGCCTGTTAACTTTACCAAATCCAAATAGCGGGAGACACTA [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/1999/ccs/rev np:i:5 rq:f:0.993312
+ AAGCAGTGGTATCAACGCAGAGTACGGGGTAAACGAACATCCAACAGTATGTACAATCGTATGAGAAGGACAAATCTGAAGACGATATTAGAGGGAGTCCAACAAGTTTGTGATGATTCACGTAAGGAAATCGAAATGTAAGATTATTCGTCAATGGAGGTATAAGACAACACACCAAGTAATTATACGCGACGAGTTTTCATGTGACGATCCCTGAGACTATATCATACAAAATTGACCCAAATAATAAACTCGTTCCAATAGTTGAAGTGTTGATTAACACATTGAGACAAGTTGTCCGTACTTTAATCATCAAAGTTTTGGACTGACCTATAAATGAAATATTCGCGTTGTCTCAGTTTAAGAAGTGATATTATTTCGGTTTCAAGCCTATGTGGAGAGATACAGGAAATAGGTAAACTATAACTAATATAAATATACGCAGACGAAGCCTGTTAACTTTACCAAATCCAAATAGCGGGAGACACTA [...]
+
- <aOGW[]-lfnQd`~MXFEP^Ygj_:~|_aF^Z`X8ycj_U~KrM[Zgi`FahEAaNZ>GA;;>S%m)]adCyoQa:[a~]pcFcVl=no]m&|h8MhQ~X~`Z~S5cXIdEfJBj6uKne\RL~NrDz`g`U8xuQ[h]rT5MagAfJEdM[tg>~f?|hnQS|Wg^M~dcHiOyX~]gL~2i`hlLDc\pe[OR1XgwdnKP%Bme]nJI~~bT:VneaLeohephp_0[byX~]pEsWD{~e`}bC{~Lfe]KgC~a~hp[$DFNvJY@'CGdBEH_^peoG~XiYc\0YDLcAbR~[;md0qh\gddf&`G~yX5pSnN}SKg]pU~hhRE~qR[J~~feImdZ`\@J[ca&apX8[F=uY:GQ;YUQl5nd1jJ7EFAZzeb~WP|c:_EaCg8,ODdKi5kO~2~shp:\:2xsQGmhZaZZGb\TQDnuhphjcG[nFkMZL~EO}\/6qIg]@~~oQ}Q|lRQ~GZyfk\e*~rhSjepec@ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2012/ccs/fwd np:i:6 rq:f:0.993131
- AAGCAGTGGTATCAACGCAGAGTACGGGGCTTGTCCGCGAGTGTCACCGGGTTTTACAAAGGAGAACTTCCAAACATCAAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTGTGAGGCGCAAGGTACATGCTCTTACCCCACTCTCAGCACGTAGGGAGCGGAGTGTGGAAGACAACAAGCCCGTCGCCTCTACCAAATACAGCTATCCTGAGGTGCCAGGTTAGAATAGGCCCTACCACATCTAAGCCTTGAAACGGTCTGTTCCTCGTGTCAAGTTCTTGTCCGCTTATACCGCCATCTCTCGTTGTGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATAGAGCCTAGTGGTCATTAGAAGGTCAACATGGAGTAGGTGTTTTAGGTGTGTCGGAGGGCAGAAACCA [...]
+ <aOGW[]-lfnQd`~MXFEP^Ygj_:~|_aF^Z`X8ycj_U~KrM[Zgi`FahEAaNZ>GA;;>S%m)]adCyoQa:[a~]pcFcVl=no]m&|h8MhQ~X~`Z~S5cXIdEfJBj6uKne\RL~NrDz`g`U8xuQ[h]rT5MagAfJEdM[tg>~f?|hnQS|Wg^M~dcHiOyX~]gL~2i`hlLDc\pe[OR1XgwdnKP%Bme]nJI~~bT:VneaLeohephp_0[byX~]pEsWD{~e`}bC{~Lfe]KgC~a~hp[$DFNvJY@'CGdBEH_^peoG~XiYc\0YDLcAbR~[;md0qh\gddf&`G~yX5pSnN}SKg]pU~hhRE~qR[J~~feImdZ`\@J[ca&apX8[F=uY:GQ;YUQl5nd1jJ7EFAZzeb~WP|c:_EaCg8,ODdKi5kO~2~shp:\:2xsQGmhZaZZGb\TQDnuhphjcG[nFkMZL~EO}\/6qIg]@~~oQ}Q|lRQ~GZyfk\e*~rhSjepec@ [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2012/ccs/fwd np:i:6 rq:f:0.993117
+ AAGCAGTGGTATCAACGCAGAGTACGGGGCTTGTCCGCGAGTGTCACCGGGTTTTACAAAGGAGAACTTCCAAACATCAAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTGTGAGGCGCAAGGTACATGCTCTTACCCCACTCTCAGCACGTAGGGAGCGGAGTGTGGAAGACAACAAGCCCGTCGCCTCTACCAAATACAGCTATCCTGAGGTGCCAGGTTAGAATAGGCCCTACCACATCTAAGCCTTGAAACGGTCTGTTCCTCGTGTCAAGTTCTTGTCCGCTTATACCGCCATCTCTCGTTGTGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATAGAGCCTAGTGGTCATTAGAAGGTCAACATGGAGTAGGTGTTTTAGGTGTGTCGGAGGGCAGAAACCA [...]
+
- RqXQ[V^Kp\B\Q at jPUODVDU\EP2qq`QKqX\2oWQWDW\@Z8-CnCpl6op]F?/6OGo[W=nPRp?V1OTNBWO2BP^X\E\Cpp[^W9oh:DmlMD1BXpj[X[X[QKp[X[P>n][X^X^Kp^Q[QX]I7I?gp[Fp at pX[^'m[Y^[DZPNnQNqQ[XNqKp^X^TPEdQXNKQHn^[OE\XNEOQnF/chf[Q\Q\Q[XOEPX^Y2mmZXQ1e[X^X\7lNpXV&+`9<\X:jUXY$DCq^QZ[Ds<pp^[Q[V;\[^EoXOCJm^V at X.JoRp[W9lSWKp<ss\F4a[Q[^Q^ApXDsQp=?[kQHs^QZ?:l4P?NX^X\:9X<Oh8)j?Z2nU9=mZ^Y2oV6pXWLSQ]QXQp@\Kp\B:MlX[U=m6k=nTQ^Q^Q[X^2tgZ?n=qm?T<OLE\Q[Q^TFVMm@[Z\PJ[XDs^[X^Kp]@YQp[W=nGr^QMf8-XKp[VDYKp^X)onZUGl]X\@\Q1e[CqnQR-7[XCn9 [...]
+ RqXQ[V^Kp\B\Q at jPUODVDU\EP2qq`QKqX\2oWQWDW\@Z8-CnCpl6op]F?/6OGo[W=nPRp?V1OTNBWO2BP^X\E\Cpp[^W9oh:DmlMD1BXpj[X[X[QKp[X[P>n][X^X^Kp^Q[QX]I7I?gp[Fp at pX[^'m[Y^[DZPNnQNqQ[XNqKp^X^TPEdQXNKQHn^[OE\XNEOQnF/chf[Q\Q\Q[XOEPX^Y2mmZXQ1e[X^X\7lNpXV&+`9<\X:jUXY$DCq^QZ[Ds<pp^[Q[V;\[^EoXOCJm^V at X.JoRp[W9lSWKp<ss\F4a[Q[^Q^ApXDsQp=?[kQHs^QZ?:l4P?NX^X\:9X<Oh8)j?Z2nU9=mZ^Y2oV6pXWLSQ]QXQp@\Kp\B:MlX[U=m6k=nTQ^Q^Q[X^2tgZ?n=qm?T<OLE\Q[Q^TFVMm@[Z\PJ[XDs^[X^Kp]@YQp[W=nGr^QMf8-XKp[VDYKp^X)onZUGl]X\@\Q1e[CqnQR-7[XCn9 [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2012/ccs/rev np:i:5 rq:f:0.99375
AAGCAGTGGTATCAACGCAGAGTACGGGGGCTTGTCCGCGAGTGTCAACCGGGTTTTACAAAGGAGAACTTTCCAACATCAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTGTGAGGCGCAAGGTACATGCTCTTACCCCACTCTCAGCACGTAGGGAGCGGAGTGTGGAAGACCAACAAGCCCGTCGCCTCTACCAAATACAGCTATCCTGAGGTGCCAGGTTAGAATAGGCCCTACCACATCTAAGCCTTTGAAACGGTCTGTTCCTCGTGTCAAGTTCTTTGTCCGCTTATACCGCCATCTCTCGTTGTGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATAGAGCCTAGTGGTCATTAGAAGGTCAACATGGAGTAGGTGTTTAGGTGTGTCGGAGGGCAGAAA [...]
+
@@ -484,10 +486,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACGGGGGGACGAAGCATACTGCAAGACTTGTAGGCCCATGAATTACCCGCTTAGGCAATGGGTAGACCTTTCCTTGCCGCGTGGAACAAACCGCCATGAGTGTTTTACGTTTACGGTCGGCGACCGGAGTCACAGCGCGACCAACGGGGCCAGGCAAAGGCCCATAGGCTTTTCCATCGGCACGCGACCGATTTCCATCAAGTGTTAGGTGCAATCCCCATTCGGGACGGACACGCGAGAGCGTTAGTCGGCGCGTGCGCGGGACTATTTAGCGAAGGTCGCCGATCGTTTGCCCGTAAAACTAACTGGCAAAAGCCTAAGTGCTGTTTTCGGGTGCAATGGTATAACTTCCCACATTTAGCCGAATAGCGCCAACAGCGTTATTATTTGGAACCAAGCAGTGGGCGATGTCAGCGACAATTCCACTTTGGTAGAGGTCGTTCTTTTGTAGAAAACAATCTAACATA [...]
+
;bIKCIQJXdaPB at eVY@K>ZYVNU5_^km]Y)PUsU=aaTVRGVVx[bLHlZcaH]5XWP[CTsGrM=~oWFHtf=xVUxPD|qMfXYKn;Zd=U;D08`TFTX<mKnF.RXA]FHuKPC<VQ?1xx^PJO3rc_VLze at 8rUZf7|JaYZQShUgWUCO&LG~VuV9uetAfL1jNJV]Dl)gT[8\7_U1xyTE{ggV<pR`VW at 2bCnZg(8F0hePUYxVKXGwfJ[dEQQWP0cYeNIbC?bZSL*gI?`?V at D_>^X at UStfFWUEbOVKAN2TX=(nudVfa:nueZVWCsGY:R*BaDcSVX3eeY/~bX`2kecS%CuWfJ[U3sy?/7eKSZZgZRI/)Ia\V5vpJTVYxgKwKUfYxLWw?~{aTa?vuMXAoV/,IbETDGx at Q>5S>RImO4fH8iP:tC_%o>K/G]=H)UX>3aMO_VeEUZbOOYQ_3[<RI`oItPa?VH`DVZFER+LjqGP[S=wxqRVfeVaRrReMG [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2126/ccs/fwd np:i:11 rq:f:0.998158
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2126/ccs/fwd np:i:11 rq:f:0.998079
AAGCAGTGGTATCAACGCAGAGTACGGGAGACCAGTAGTTGGGTCAGAAATTAGACGTGGTTTAGTCTGGTTACCGTGGAAAGAATAGCTGAACTCAAAGAAGCCGACAAAGATAAACAAAGAAGAAACGGTTAATACGATTGAGGAGAAATATTCAATCCAACGGCAACTATTAACGTTCAACTAGAATCTACGTTTCATACGCGGATTCCACATCCGTTCTTGCAATTAAAGAAACGATGTAGAAAACGCTTTGGTTGGCGACAACTTGGGCGGCAAAATAATTATGGTAGGTAATTGAAGTAGCGTTAAAACGCAAAAAGAAGGAAGCACGGATCACTGCAAAAAGGACTACTCAATAATGGTTTCTAAAGTCATTATGCTGGTGCTCCCTATGGCGGTGGTCAGTACTGTAACTAAAGATGGATTACGGCACTTGTAGAGCACGTATCAGACCCAGCTTTGAAAGAAGGCTGAGTTCGGTTCGGGT [...]
+
- ~~t_~p|K~bytoc~lbnrr~s~sX<~~~nm?~vy~~vTz9z{np~xa~~^~~f~rrp^~I~~~nA\}N~k~~I~u~_~J~~tj~~~dnja}~n~_a~~xj~hJ~s~Zk~~ft}^~~[U~~tN~uE~~pQ~F~V~t~gl5W~m|W~~_S~~RnYuXb~sD~oWWZ~Ul~ftif~h~Td$zdX~dwhn^uzdp~dl=~~Z~]cgnj\~|gq(~|[~vG~_U~ic~qkk~d~4~mPQPwZXlw]`TS2g~~bWcV~~I~e~Z~cYrVu~lX~;~~^H~hC~~~yb~E~}tF{ruKzcx~a~Zq~dqteV=V~8j~~ikUK~~~yirwY~V~iSyjX~|{j|U^ThS~~~~X~~cfRghZg~qB}rF~J~~kuN~~]uA~_~jTjS at J{{kYvDl~wttU~lW~hE~ZRvne~j_Yt5~Xx>~~mvfM~~Y~xR:FQGAd~lx~Yx\j~mny}dCop~9u~~`hX~~Yg~~it~J~fho~df~gE~b~iB~~N [...]
+ ~~t_~p|K~bytoc~lbnrr~s~sX<~~~nm?~vy~~vTz9z{np~xa~~^~~f~rrp^~I~~~nA\}N~k~~I~u~_~J~~tj~~~dnja}~n~_a~~xj~hJ~s~Zk~~ft}^~~[U~~tN~uE~~pQ~F~V~t~gl5W~m|W~~_S~~RnYuXb~sD~oWWZ~Ul~ftif~h~Td$zdX~dwhn^uzdp~dl=~~Z~]cgnj\~|gq(~|[~vG~_U~ic~qkk~d~4~mPQPwZXlw]`TS2g~~bWcV~~I~e~Z~cYrVu~lX~;~~^H~hC~~~yb~E~}tF{ruKzcx~a~Zq~dqteV=V~8j~~ikUK~~~yirwY~V~iSyjX~|{j|U^ThS~~~~X~~cfRghZg~qB}rF~J~~kuN~~]uA~_~jTjS at J{{kYvDl~wttU~lW~hE~ZRvne~j_Yt5~Xx>~~mvfM~~Y~xR:FQGAd~lx~Yx\j~mny}dCop~9u~~`hX~~Yg~~it~J~fho~df~gE~b~iB~~N [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2126/ccs/rev np:i:12 rq:f:0.99809
AGCAGTGGTATCAACGCAGAGTACGGGAGACCAGTAGTTGGGTCAGAAATTAGACGTGGTTTAGTCTGGTTACCGTGGAAAGAATAGCTGAACTCAAAGAAGCCGACAAAGATAAACAAAGAAGAAACGGTTAATACGATTGAGGAGAAATATTCAATCCAACGGCAACTATTAACGTTTCAACTAGAATCTACGTTTCATACGCGGATTCCACATCCGTTCTTGCAATTAAAGAAACGATGTAGAAAACGCTTTGGTTGGCGACAACTTGGGCGGCAAAATAATTATGGTAGGTAATTGAAGTAGCGTTAAAACGCAAAAAGAAGGAAGCACGGATCACTGCAAAAAGGACTACTCAATAATGGTTTCTAAAGTCATTATGCTGGTGCTCCCTATGGCGGTGGTCAGTACTGTAACTAAAGATGGATTACGGCACTTGTAGAGCACGTATCAGACCCAGCTTTGAAAGAAGGCTGAGTTCGGTTCGGGT [...]
+
@@ -496,10 +498,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGACGCAAATGCCACCAATACATATGTGTCCTCTTAATGTTTGCATGCTTAATTCTTTTGATTATTATTTCCTCTTTCTTTCTATTACTAACTTTGTAACTCTCGCTAACCGAATCAACATAAATACGTCAACGAATCAAATGTTGATCTCAAATATCTGTGTCCATGAAATTTTCGGATCGTAATCTGCTCTACTTTTGTTATTACAACAAGAACTTCGACTAAAGAACGGACTATCTTGTCTAATAATAATGGCACTAAGTGCATACTTTCTCGACTACATTGACGACTCAAAATAAGAAAGGGAGTTTTTATACATTGACCTAACTCACTACTACGCCCTTGGTTACCTTTGAACCTTTCGTTGTCAAAGTTCGTACGATGGTAAGTGCTTTCTTACTCCTACCGCTATTTGGTTGAGAACCTGTTAAATGA [...]
+
p~y]httc~jM~\8zdfZ|xix~Nh$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``ZRw\@~~~yM~yZ~G~~zp~~h~mlx~X~j]Y~F~~yZ~~xVuj_YF~e~%lq@~~~rRc~~f~}I~~a~~lY~~sY~~mQb_~{niI~ra~cred~m|t{Oqn~Y~Xk^T~|j1qYul?~~htih^bNzaiJn(a7ys\gH~nnE\pa/|~|s|iyWzozH~h$c'T76~~u`6gn_gWwS~ycuodGc^PM<~~~mU~r`z at B7q_[~o=zbK~UPmfx)~~lN~S\~]hy]Y_b~jse]W~_S~\T~{]~hrcp.~jtR`VrmT]~~QxbjpNyqWTY~m]Wm[M[\0pTWpZhn?~nR~~snD~~~rDrXcsg~n]NlXN~Y<O:ZLDTx\ad&tWW~\~W~]U~Kh}VM~OZ1uoSb<~`IeNymgT~dl|djk)CZ~f1|j\hG9~~<+3/d{T~t]<`/bWm0~xIxO~gTi\~W~|nV~C~t]ms [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2164/ccs/rev np:i:7 rq:f:0.996992
- AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGACGCAAATGCCACCAATACATATGTGTCCTCTTAATGTTTGCATGCTTAATCTTTTGATTATTATTTCCTCTTTCTTTCTATTACTAACTTTGTAACTCTCGCTAACCGAATCAACATAAATACGTCAACGAATCAAATGTTGATCTCAAATATCTGTGTCCATGAAATTTCGGATCGTAATCTGCTCTACTTTTGTTATTACAACAAGAACTTCGACTAAAGAACGGACTATCTTGTCTAATAATAATGGCACTAAGTGCATACTTTCTCGACTACATTGACGACTCAAAATAAGAAAGGGAGTTTTTAATACATTGACCTAACTCACTACTACGCCTTGGTACCTTTGAACCTTTCGTTGTCAAAGTTCGTACGATGGTAAGTGCTTTCTACTCCTACCGCTATTATGGTTGAGAACCTGTTAAATGAGATGG [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2164/ccs/rev np:i:7 rq:f:0.996833
+ AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGACGCAAATGCCACCAATACATATGTGTCCTCTTAATGTTTGCATGCTTAATCTTTTGATTATTATTTCCTCTTTCTTTCTATTACTAACTTTGTAACTCTCGCTAACCGAATCAACATAAATACGTCAACGAATCAAATGTTGATCTCAAATATCTGTGTCCATGAAATTTCGGATCGTAATCTGCTCTACTTTTGTTATTACAACAAGAACTTCGACTAAAGAACGGACTATCTTGTCTAATAATAATGGCACTAAGTGCATACTTTCTCGACTACATTGACGACTCAAAATAAGAAAGGGAGTTTTTAATACATTGACCTAACTCACTACTACGCCTTGGTACCTTTGAACCTTTCGTTGTCAAAGTTCGTACGATGGTAAGTGCTTTCTACTCCTACCGCTATTATGGTTGAGAACCTGTTAAATGAGATGG [...]
+
- X~\xjquU~PP9sH~\V6L>gp~~|&~~~~~~}tz~~~~~~~~~~~~~~~~~~rrkuqv3~~}tJ~YVg8~cydefJ[Ly`{f~~xZ~T~}mH~dGO2;Lj_~W~wtGqf~t~P~~i~~Y~~`~jtH~~vV~~xI0A}~{jZ~p9~~l}5~\;adLj^i+SRk)@;Azs~yjgU~~;}a:_r:~x_v~~{L~xQrK~r~[s{u1~}Kcx||WZUKZ~ui\V~~H~~uZ~~|vl_Zzyv{bW=kZev<~~aK8maU~~s9~ab~[a~{K~z]mvp7{~qr~j>~j{~oh{N~pPsjk~pf~[S~WU~c~{j[~i}Hswghm4~~jig0'Y`kwiLzZ]qdJ[Kx=~~qcZ~V:~~S~~Np;~~~oJoqLw~T~o|=~cv~{irhzR~wwi`kY~R~[~A~g~X~bkm~_iF~~roNw\hdi~~p\~vWubpS~~Z}Mu~r|rxM~~|~pxhN~NlR~lmKbOE+SOy^{dYj4~_~oGB~F~~yi=[ExS~ [...]
+ X~\xjquU~PP9sH~\V6L>gp~~|&~~~~~~}tz~~~~~~~~~~~~~~~~~~rrkuqv3~~}tJ~YVg8~cydefJ[Ly`{f~~xZ~T~}mH~dGO2;Lj_~W~wtGqf~t~P~~i~~Y~~`~jtH~~vV~~xI0A}~{jZ~p9~~l}5~\;adLj^i+SRk)@;Azs~yjgU~~;}a:_r:~x_v~~{L~xQrK~r~[s{u1~}Kcx||WZUKZ~ui\V~~H~~uZ~~|vl_Zzyv{bW=kZev<~~aK8maU~~s9~ab~[a~{K~z]mvp7{~qr~j>~j{~oh{N~pPsjk~pf~[S~WU~c~{j[~i}Hswghm4~~jig0'Y`kwiLzZ]qdJ[Kx=~~qcZ~V:~~S~~Np;~~~oJoqLw~T~o|=~cv~{irhzR~wwi`kY~R~[~A~g~X~bkm~_iF~~roNw\hdi~~p\~vWubpS~~Z}Mu~r|rxM~~|~pxhN~NlR~lmKbOE+SOy^{dYj4~_~oGB~F~~yi=[ExS~ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2225/ccs/fwd np:i:6 rq:f:0.995244
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGTAGTAATGCCTCTACGTCAGTCGGAACAATGTCGTCGTGTAACTCGACGATCTTAGGAGCTACTAAGGAGAGTCTGTAGGGAACCGACTGGGAAGGTGCCACAAGTTTTCTCTACTACTCCGTCTCCTAAAACAACTCCAAGTGGAAGGTCTGTGGGTTTTTGAGTATAGTCCGTATCTAGACCCAAAAGGGCTTACCTTTCGCAATGAAAAGAATATCCTTATAGACACGAAACGGGAAGAACGGAATCGTTATTAATGACGTCGTACAACGTTTTCCAAGTTCTCCTCTTCCTCCGGATTCGGTTTGGGTTATCTCAACTAGTCCTTTCAAAGACATTGGAGAGTTTCACCTTCCCGTTAAGGTAGAACCCTCAGCATGTTTCACCCCCGGTGACCACTCAGTTACGGAATGTTTTTAAGCCACCTCAGCT [...]
+
@@ -528,10 +530,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTAGTCTGGCAGATTAGATACAGCTATAGAGCGAATCACCACGTCTCCTTAGATAACTGGCAAATCTTCACAATTACGCAAGACCATAGAATAGTCCTAAGCAACATTTGCCGCATCGACCAAATCATGGCTTTGCACTCCAACTTTGCCTGAATCGTGTCAGACTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGAGTGCGAAGCCACTAGTGGTTTGCACTGTTGACCACCAGCAACGCAATCGCAAGATACGCAGTAATGCTAAACCATACTTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCGAGCACAACGCTTCTTGGC [...]
+
S_GKVGB?[TFSL,ZRKRFJ[KR/B$PV_ddddb\WTSRNKJMRVXMIKPTLHNWU3M:T=fKCJZEcGJ\VU9X6O>YTEIEJSKLaGS\E\@@FLNQ2\IeFISD>cSV at mR6d_FSKfP.;NeJfFO7B at N;\EdFUYLMfV\I=4bU at dKQ1RAI4deJEXHFZTQ5ZFd>RSS;DU?lR/_F9=DJUEc;bP4EKJE`VKNfTR;V;R8CA*CU\UFJQ%_HI=I9dRK\EdBSAQREOVS[BFO=L7MH1F<ZKfS\FdVJD<IAF'^ZD8J4OUFGSJfFdVJ>cQADPRKKf\K>bKPEJH`>SJeOfVKSKfKVSVWGS<PVKC4=ISKM]G5bZNQZ7,2RBf^F9UGR%:L7V at _FFi\KR,D<H<NeVRJQ>XJAOUGJ<VKU:PUI:<9_P:VXTAMHf\CffK\SBf\F at TJ;cP<CTAH>D:eeEI:BSJ4aRF(SKQ=UDcVJWG8g[WQ:>O4<H\KSQQ>eRKL7QRJc1hR [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2295/ccs/rev np:i:4 rq:f:0.976003
- AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTAGTCTGGCAGATTAGATACAGCTATAGGAGCGAATCACCACGTCTCCTTAGATAACTGGCAAATTCTTCACAATTACGCAAGACCATAGAATAGTCCTAAGCAACATTTGCCGCATCGACCAAATCATGGCTTTTGCACTCAACTTTGCCTGAATCGTGTCAGACTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGACGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCAGCACGCAATCGCAAGATACGCAAGTAATGCTAAACCATACTTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCGAGCACAACGCTTCTTGGCTA [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2295/ccs/rev np:i:3 rq:f:0.977733
+ AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTAGTCTGGCAGATTAGATACAGCTATAGGAGCGAATCACCACGTCTCCTTAGATAACTGGCAAATTCTTCACAATTACGCAAGACCATAGAATAGTCCTAAGCAACATTTGCCGCATCGACCAAATCATGGCTTTTGCACTCAACTTTGCCTGAATCGTGTCAGACTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGACGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCAGCACGCAATCGCAAGATACGCAAGTAATGCTAAACCATACTTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCGAGCACAACGCTTCTTGGCTA [...]
+
- <XD.GB at 3FB@1A*5/DBF=4)MHB$K at KTND<:COTOE?@GOJB>AJNC>D:3E:<O>TBKIJ%SD5JPJBH-3&KPK'JI2 at 2=8:AK&MA>3M<-:YCU6 at 7BBXB;;VB<XX5PB4UA4ABUEWKBH.AVIK9]KPKH-<;KIN(YN>XH-/TAJ1DTH*MIBKPA3I)G&TOPBJ:>VB%SSIHA4 at 8,AUB$SSG9]OF=P%AG9FJ<G<)?AKPKF:&UKKBH4SBIG6[GBJ+9JB9AKEWBIK5WKBH.IDWCK9\NGJBFKI;YOF68\J4UBDU+TCH0VBHK?BE2SJIBXH:JH4A-TDW9O;GB6 at C8@5IA4>VWIJ')NG?A<M9*PKB:I<F:N=2AKBN39PGG8YK9\GHBKBG?-U;.FBBXIKPKBH?+GHO3XNF;P<XW:YKPKB4UJ>VWD8A1UUHKPI@=AJ2L-IBP6P?1T(=:G9N:GBN1,NF&WMIKB-POLGDDA3AHJ2 at HBBXBD+6LBEW;P;=J [...]
+ <XD.GB at 3FB@1A*5/DBF=4)MHB$K at KTND<:COTOE?@GOJB>AJNC>D:3E:<O>TBKIJ%SD5JPJBH-3&KPK'JI2 at 2=8:AK&MA>3M<-:YCU6 at 7BBXB;;VB<XX5PB4UA4ABUEWKBH.AVIK9]KPKH-<;KIN(YN>XH-/TAJ1DTH*MIBKPA3I)G&TOPBJ:>VB%SSIHA4 at 8,AUB$SSG9]OF=P%AG9FJ<G<)?AKPKF:&UKKBH4SBIG6[GBJ+9JB9AKEWBIK5WKBH.IDWCK9\NGJBFKI;YOF68\J4UBDU+TCH0VBHK?BE2TJIBXH:JH4A-TDW9O;GB6 at C8@5IA4>VWIJ')NG?A<M9*PKB:I<F:N=2AKBN39PGG8YK9\GIBKBG?-U;.FBBXIKPKBH?+GHO3XNF;P<XW:YKPKB4UJ>VWD8A1UUHKPI@=AJ2L-IBP6P?1T(=:G9N:GBN1,NF&WMIKB-POLGDDA3AHJ2 at HBBXBD+6LBEW;P;=J [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2305/ccs/fwd np:i:11 rq:f:0.999136
AAGCAGTGGTATCAACGCAGAGTACGGGACGGTCGTACTAAAATCAGCTACGCGATCGCCGACTTAGAAGGCTGAGATGGAGAAACTTGTCTACTGGCAGACCTCACTATCTTTTAGGAAGGTCACGAAGCGGCTGGAGTGATGGCTAGTCTCAGCCACTGTCAACGGGAAGCGCGACGTTTATGGTCAATATAAACTAGCAGTTTAATCCGTATGGCGATCTTAGCGGATGTTACAGGATGGAGAAGATGACAAAGTAGAAGCTAGACAACTATATCAAATCGTTGTGTGGTCTTAAACCGACACAGTAGCATTCATCGTTGGATGTGGAAGGTCACAGCCTCGTTGGAGGAGATACTACGGTCCCGCTTTTCGTGGGTGACAAAGGTCGCAAAGGTTTCCTTAGGGAGGTCGTTTCCCGGATCTTTATCTACATCTCCTGGGTGAAGGGGATGATCTTTCTCTACATGTCCTGGGTGGAGGGGAGTTT [...]
+
@@ -568,10 +570,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACGGGGTGGTAGCATAGCAACTGTTCTGAATGTGATATTCGGGTCAGGCCACGTTGACACTTACCAAAGCAAAGACAGAAGGAAGTTGACGGGACAATAGGGAAGATTGGCAAAGGGGATTTAAACATAGTCCAGTTCGCGTGGTGAATGACAGATTGCTACTGTTACCATTGGCGATACTAACGTTGGCGACTTTACTTGCCTCGGTAGCGACAGAACAAGTGTCGTCTACGCAACGAACAACCAGCCGTGTTAGCTGCAATGTCCCCTGTAGAAGACCCTCTTCTTTCTCTTCTGAATGATGTAGCTGTGGATAGAGCGTCTCCCACGTTAGGGTCTAGCAACCCTCCGGTGGTGTGTGGTTTCGGTTCGCTTGGTTGGGTGCCCAATTTCCAGTACCGAAGAGGTAATTGCAACTTCAATTGCTTAGTTGACGTGACCTTTCGGGTGTCATGGACTACCGACGG [...]
+
s~fpVr|d~fEWN^~ZuYftQt}7nM~~xN2q~g_nMz~vlZ~\~t8~mhs2~bpRsi~ig~,1~~~r~b~I~sdT5~lflgmT{iYj4~~vq%~tugr}pE~M~C~qj~J6A;XmW\:~|g4p~i~\N^r9~Z@|~${~nzKwd:~Y*asvanL~}q6~SpnDHa~}X_~uZ~lxFaA~0TwQl}w(y~Rf:V~_~G]f~bUy'porn~a~``[qR~~Rg0htQ~~tg~z6rpavqNaY~\@wv~[{+gReiemIZI~q_1~Za{X~wt(`_~Kn~;IG'Ys]~x1b0~~~xHizIX~wvE~z[gD~K;wvffEQB\|]H~e_EO;V`op~db;~d~~ti_[w{:p0~~~rb_~jJ~~~u~ganG~O~qg[~Q~~*~~nOT{R{5~~nL~W~\xeU~>~J~C~~cRG~r=j:sR>~_qk|Z~s8~rmO~ySvGN8oO~tp~lE~j~JS>}Qr.~^yfcqb{_w.~^IU~~|K],R~Kxbp~R9~HP[b~ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2359/ccs/rev np:i:7 rq:f:0.994717
- AAGCAGTGGGTATCAACGCAGAGTACGGGGTGTAGCATAGCAACTGTTTCTGAATGTGATATTTCGGTCAGGCCACGTTGACACTTACCAAAGCAAGACAGAAGGAAGTTGACGGGACAATAGGGAAGATTGGCAAAGGGATTTAAACATAGTCCAGTTCGCGTGGTGAATGACAGATTGCTACTGTTACCATTGGCGATACTACGTTGGCGACTTTACTTGCCTCGGTAGCGACAGAACAAGTGTCGTCTACGCAACGAACAACCAGCGTGTTAGCTGCAATGTCCCCTGTAGAAGACCCTCTTCTTTCTCTTCTGAATGATGTAGCTGTGGATAGAGCGTCTCCCACGTTAGGGTCTAGCAACCCTCGGTGGTGTGTGGTTTCGGTTCGCTTGGTTGGGTTGCCCAATTTCCAGTACCGAAGAGGTAATTGCAACTTCAATTGCTTAGTTGACGTGACCTTTCGGGTGTCATGGACTACCGACGGTAT [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2359/ccs/rev np:i:8 rq:f:0.994039
+ AAGCAGTGGTATCAACGCAGAGTACGGGGTGTAGCATAGCAACTGTTTCTGAATGTGATATTTCGGTCAGGCCACGTTGACACTTACCAAAGCAAGACAGAAGGAAGTTGACGGGACAATAGGGAAGATTGGCAAAGGGATTTAAACATAGTCCAGTTCGCGTGGTGAATGACAGATTGCTACTGTTACCATTGGCGATACTACGTTGGCGACTTTACTTGCCTCGGTAGCGACAGAACAAGTGTCGTCTACGCAACGAACAACCAGCGTGTTAGCTTGCAATGTCCCCTGTAGAAGACCCTCTTCTTTCTCTTCTGAATGATGTAGCTGTGGATAGAGCGTCTCCCACGTTAGGGTCTAGCAACCCTCGGTGGTGTGTGGTTTCGGTTCGCTTGGTTGGGTTGCCCAATTTCCAGTACCGAAGAGGTAATTGCAACTTCAATTGCTTAGTTGACGTGACCTTTCGGGTGTCATGGACTACCGACGGTAT [...]
+
- @~elwfF%~mp[VS?~jhlufpfIbQBt}roOCU`jojDclM~lrR,~phe,_~_eWMpsu,~7-Dk2RsA~Y~xjiQ~gog\j_vs2~6sf5QRm0PS[XMY?~V~^^e&YT*zr9O?t0X3~`R~QsBsK~lVr~?|x\*~?9{vNruua3Eon;^~UeUdHBx?Ea~Z9n=pPW:~_UrwkG_2~sY~VP~X~kRrGslKsfJ=~C~OIX;U~~s=M~K8cX<R~BAQlhulsc<oS\vc\clgdW`-qi:>d~kP8~;Q~\~whkQqg=~[dR-8ibzohjJ~~~re at SPN~6pR~~sk>~kM~~lskP~krT8SDfu[PpZ&f]fXQ~r.ofpglhsk\B~~tUe@~t>~~Xj\uhlf~4~<-$@pI+UJaT-1P~@~u[RsQ~SOTOxS~=fA~c,TRNz~b~=~v\~uRHqI~^6hUQGa\`~RxTTe~ma~Wd{:tdlP{oIJ~bXSfserZ~@~qU@~eZR0NQ`?iOb\oBx_sRBpO7+ [...]
+ @~k`~oE(~cX\W8~f^dkVeeNfDCk~nxV8GgkneKYbEw_wY(uphq5j~inbXyy}*~*$Ll;\~G~a~yqmD~ovcg`d~~5{9te9FYk6VGZ^HGG~Wvg_c+VE-nh4F at i&K3~dX~RfG~C~vX~zA~}f0~PC~mC|~gi>MnW>U~J^U\>JrLNf~N2v>xT\C~hay~p<d8yh`~bZ~X~g[pR~tT~rTF~N~XTUAV~~nIT~C.SSG\~IKZusyw~nG~dh~mhmvZlaW7}tEI]~uZF~F]~d~}_uIca0~QY`%-0rl~vpgH~~~zXH`TP~<vT~~{u6~uQ~~_wbO~roZ2D;nk_SuH)mcpaX~x1vZqXnfjrSD~~rZ[7~s7u~_t]~lwm~*~<8-G~T-fC`T(4Xz@~fMXvJ~]H_LzU~2TD}k%HOPy~\~<~~W~~\D|S~g8v^TBc^\~U{]^n~s_~``}Dy^vO~yDV~`aZZzkrb~7~lY<zjfM<VZgDf?lec9uOzXJ~X*1 [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2409/ccs/fwd np:i:6 rq:f:0.996988
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGATGCCTCTACGTCAGTCGGAACAATGTCGTCGTGTAACTCGACGATCTTAGGAGCTACTAAGGAGAGTCTGTAGGGAACCGACTGGGAAGGTGCCACAAGTTTTCTCTACTACTCCGTCTCCTAAAACAACTCCAAGTGGAAGGTCTGTGGGTTTTTGAGTATAGTCCGTATCTAGACCCAAAAGGGCTTACCTTCGCAATGAAAGAATATCCTTATAGACACGAACGGGAAGAACGGAATCGTTATTAATGACGTCGTACAACGTTTTCCAAGTTCTCCTCTTCCTCCGGATTCGGTTTGGGTTATCTCAACTAGTCCTTTCAAAGACATTGGAGAGTTTCACCTTCCCGTTAAGGTAGAACCCTCAGCATGTTTCACCCCCGGTGACCACTCAGTTACGGAATGTTTTTAAGCCACCTCAGCTAGTGTTCCG [...]
+
@@ -588,14 +590,14 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGGAGTACGGGGTGGAGAAGCAAATACTTGGATACCGAATTTAGAGGCCATAGGTTATGGAAAAAGTCAGTGGATTAGATAGTAAAAGTCGAAATCTTTATATTCGGTTCGATGTACTACGTTATTCGCGACTGTTCTGTCATGATAGTTTTTTATATAGTCCTAATAAAAGGAGTTTTTAAAGTAAATGACATTTCAGTAGTAAAAGTTTAAGAGCTTTTTGTTCTGCCAGACGTTCTGATAGTTGAGGAAAACGTGTGGTCAGCTAATAACTTGTGGTATGGAGTAAACGAACATCCAACAGTATGTACAATCGTATGAGAAAGGACAAATCTGAAGACGATATTAGAGGGGAGTCCAACAAGTTTGTTGATGATTCACGTAAGGAAATCGAAATGTAAGATTATTCGTCAATGGAGGTATAAGACAACACACCAAGTAATTATACGCGACGAGTTTTCATGTTGACGAT [...]
+
@dLFIDMBcI.MBAx[ZFb*eVUfd\;~~oCDycZCcX[+xu9a[EzK}bPb@^EC|;t_KV]*SM~da\:zFx^K<t;z~~Y at d\bDMJzK6xb[a9afq;~~s_kfdE~~ZeO~~oqnN~bR~`~feol_lifqofOPzmO~eeePmfqe<~dVaiMl\eoqod6~scf{iSmegNDO~pI~i@~ulAvj_&ophpNq~YqT~~oOmfi&i~dnSqnepC~~~a2y[K~cobf'XnuaY.~cXcL~k9kfdUucCcnqpe?fMUSv0~~sed[`kNPqfoegqZo[^~g]rbnP~PnWHvQ]qE~~fd>udTRNy_~fmPnVXd[Vc9~XeepgKaoeQ~nA~VeR~~qbSIK~doe^RZlO~kfk%~~mn_eNtL~e_~N5|jP1^]O`ajV~Omfbk_~U~@~~qfdB~wYdZ]~OmV~o`~feqf_~SS~lRm[l[]~RQcN~eieiB~K~d^`~_~nXmfefeofend5~~~ekf_`~eofdnq [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2436/ccs/fwd np:i:7 rq:f:0.988106
- AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTCGCCACGTCTCCTTAGATAACTGGCAAATCTTCACAATTACGCAAGACCATAGAATAGTCCTAAGCAACATTTGCCGCATCGACCAAACATGGCTTTGCACTCCAACTTTGCCTGAATCGTGGTCAGACTATAGCGGGACGTTCGACCATACTACTCCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTGAGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCAGCACGCAATCGCAAGATACGCAGTAATGCTAAACCATACTTATTTGACTTTGATGTTCTATCCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCGAGCACAACGCTTCTTGGCTACACATATGCTGTTGGGAATGTTTTTTACACTTATTATG [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2436/ccs/fwd np:i:7 rq:f:0.989186
+ AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTCGCCACGTCTCCTTTAGATAACTGGCAAATCTTCACAATTACGCAAGACCATAGAATAGTCCTAAGCAACATTTGCCGCATCGACCAAATCACTGGCTTTGCACTCCAACTTTGCCTGAATCGTGTCAGACTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTGAGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCCAGCACGCAATCGCAAGATACGCAGTAATGCTAAACCATACTTATTTGACTTTGATGTTCCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTTAGTCGCGAGCACAACGCTTCTTGGCTACACATATGCTGTTGGGAATGGTTTTTTACACTTA [...]
+
- b~4Ykbg4[N.?ADSPiaKh^Qlo^$kURRUZZX]fi`XSQIHO]h_F9777:8=_iQOjMhGf,~KdYlT~\TQRS5p\KPCLXjbLo>SJQ[5.FGT:[BPLSAx^>DF at wkFeQIQmFM1RoX0tg_YZ_?i<B0R0$>(Hra0~q]Z^bjKqEd3KE[F>ICfPwfJRS%LPE\SXGeokWJD?AnkKJHeU]U)\NQm`ZY^\%QU5MUO,Nv]chQWO}b[Jw^bZL^jRSqSILDun at mNIgC~d?7FSnTVGcLM)SG~^X8MD}ABPU<@FEJJ~,6FMEAA+IP?WlIP>TjSDYYdStDD;^[W:CW_:<Uga5~K'JJMGefde5re7M%3JTHgbidekakC`XWRZIerT`sZMnQtUMK:Z9U1te^ZPeF:/`\a%(*cqL~~TwLWX^G|c\>bbRg7<UqFaO$t^K>K`QX:M;ROI'>7W[QNzK\gPz\~xljLoc`j^eufSs%wFFw&i'dxwxfVWRT?dZS{XaZ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2436/ccs/rev np:i:7 rq:f:0.985893
- AAGCAAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCGCCACGTCTCTCCTTAGATAACTGGCAAATCTTCACAATTACGCTAAGACCATAGAATAGTCCTAAAGCAACATTTGCCGCATCGACCAAATCATGGCTTTGCACTCCAACTTTGCTCTGAATCGTGTCAGACGTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGAGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCAGCACGCAATCGCAAGATACGCAGTAATTGCTAAACCATACTTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCCGAGCACAACGCTTCTTGGGCTACACATATGCTGCTTGGGAATGTTTTT [...]
+ X|-T_U[&W]8TA9XJ^W>^RGa^W$dPTTZbedgntmd^[VPPV`k_JAA at 53.6X`QX`D^Fe$`;HZOaTzUJG=X*l_MR<PO_X at q;]QRW69MP_AfMWBQGuV3:79kaOjG at O\<Q'EdN)c]UM`WF_7I4WW(=<(YMzY8~jZQ_ZcHpDiAE>YCDWJhO~j`db2NDffYHgpkYLE@@voKIEeVYU)`?Wo`^Y]H2W8O[b+M[X`hLQMvb[Ky`Z]M\k]PxPFFD}oJcNCbB~d?5<RoRV4ITb3REz`dBK at f<,QO;/DNJJ~?9FNMA?)YDGRm<FSESJD][``sL):nODIRbW6HMg]5s8-dS]NRffsg<~t?Y45\?FiakVljVr<OYQW^<ozM~tmQnLgVQR:eIF/j\RpgfAY'HanQ,9krK~|SyOb_\F~k`=fkQZ8;]j:U?*dR[HNRfMi<TLUON79:TZQK~]anT~f~ojmMw]rhaa~xVn&pON~(*C2[tqnp`S`YKh^ [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2436/ccs/rev np:i:6 rq:f:0.982503
+ AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCGCCACGTCTCTCCTTAGATAACTGGCAAATCTTCACAATTACGCTAAGACCATAGAATAGTCCTAAAGCAACATTTGCCGCATCGACCCAAATCATGGCTTTGCACTCCAACTTTGCTCTGAATCGTGTCAGAACGTATAGCGGGACGTTCGACCATACTACTCATTCGATTACGCATTCACCTGACGAGAATAGCCATTCTTCCCTGAACATACGTTAGAAGTAGTTGGTTAATGCTTGTCTACATTTGAGTGCGAAGCCACTAGGTTTGCACTGTTGACCACCAGCACGCAATCGCAAGATACGCAGTAATTGCTAAACCATACTTATTTGACTTTGATGTTCTATCACTGGGTTAATGCCTGCTGCTACCTGACTTTTAGTCGCCGAGCACAACGCTTCTTGGCTACACATATGCTGCTTGGGAATGTTTT [...]
+
- RX<.5 at B:6SVNDfZle^h].J_jlT%gUYZTWWVWZ`c[VSQRU\hrsrrrrqSPLU~UbRL'IS at +E=hQT-3C4RLIpR<7fFfFnaV_U~T~lhM_/>_C_6mH1i=?_GIWIH7M,BMHJ3~OF:Mv`D1-\FUO5L+H.a at 5H758fH/jiEQhesU~Gh]CgjFK35iMDqdb3A3^PiZ)D,AYUJO[AqD'`[Kpe_gLtV1LQ[\_WPULR\7 at 6G=T+WH)vL?KkMF]ZBcYHfRcKRsnLjeJo)`QQ[VoU^V]a;>Q?RJl_VBMU_IJ6UR[/E*6FLRYQNeP6~~_ULZ&[V5~I6RFEUO>cGq`6_EadV;YFA?dZ at ogKOdIL4FtSP`UNe[HRccH>K<Z7Y.\VKJ at Y`?TCDS8TR[-jQI;28nZAPjVMnW:2+JNb^7~lPaNrPNF|odfY_esl;aSFbc0nolIHVV\%&DOZfhQLocDcS_>=S'LEB9LNNN`/g?X^iW/;ABZR;[TY2YSF? [...]
+ E=1.1B7:OVZG]Q[[T^^&9V\b^%l]ce^a__acglhb^[Z[^cnxyyyyvn\YYNxJWB>'DSN(82mYK'->+HNF]G05eH\>[VJUJtTyc]D\+H^?V?jQ)`HFQ?XPBKEF58M>>+rD;/>hW at +&R>L\@K%6:2Y;,P.>=a:/abQF[_fOm;TN;W[;E2/_D?x\W*?*WEaV(G=$5]IC?V=_S,USAa]ZbOpZ(MGSc_PY\BV\>1><0S+QG*fT?KnB>bX9XR<[JXBKbbB_ZCb3RTIRM_Y\M[W>AB5UKoV\DKPaC<,[Nd;<07FBPXJQ^]<vvVKFV0RR=q?8WGKHD7T<db-S<VXMH[=<4XU8n[CF_CO-=xMFWLEfQCEYY>4<2RCO+SOP;7HSEYN;I?NV\7aRA1</p_EEbYDu[1*1B\Ze>zgOdDaJD<veZ[NVZfcF^H>VY(`ahB?NLT-&;FS]`EP`Y;ZTbG2]&V;1DJFF^9^6NV]M$2E<]SETHP6MHL [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2451/ccs/fwd np:i:8 rq:f:0.994616
AGCAGTGGTATCAACGCAGAGTACGGGGTGAGGCTTGTCCGCGAGTGTCAACCGGGTTTTACAAAGGAGAACTTCCAACATCAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATAGAGCCTAGTGGTCATTAGAAGGTCAACATGGAGTAGGTGTTTAGGTGTGTCGGAGGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCTCTAC [...]
+
@@ -628,14 +630,14 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCTATACTACGAGGACGTCACCACTGAGGTCTCCGACATGGACACCTAGTCCCGGGACTCACCGAACCTACACCGTTCCCTTCAGTGTGTTCTTTCGGAGTAGTGAAAAAACGTTGGTCTTCCCGGTCTACTATCCATCGTTCATGTTCGGCTTTTACAAGTTACCTTCAACAATTTTTACAAAGCAATGCTTGTGGGCTAGGGCACCGCGTTTTGAAGTAAATAGATGTAACCTACCACCCATAAATGCTCTAACAATTTAAGTTCGTCGTCGCCTTCTTTTATATCACTAACGTGTACCTACCTTAGAGCGTTACCAAAGTACATATACAGATTTCTCAATGTATTTGACCTGGCTCTCTGCAATCTCTCTCAAGATGCGTAAGCACTTTCAGTAGGACGAATTTACGGTGGTAATTTCGCACACTTCGCA [...]
+
e~P^qNZQ~XpnH:~Z__n`l_Ul`%~~}rsw|~~~zupf_^gw~~~~|vmbagq~~`^pqZo^pkGJmTwYHcr`o-~Q[rerR~];\ExepHWoU~mZYLnNYaYFwv%}pr_r^YN~eb~:fWX[h<~`]~:~x_~HVKYaY<?q]=vg]:pN[\oNZ9;{~~no^aFeJlNC-d7X\QxJZDh_rrq<~qr`eO~^aIQRs_U~_>p]pr_L~e>~rN~a~^A}]Q~*~~~^WHO|~f_L~rf_P~_hI~~^\k:mlTXM~e_d4yesL)~bqR~~rs`Uperb~N~\qN~YG~~nr<~='`\p^pO~^a~HkkL~dO~^er_fr\fP~K~^5|~~plfl^t^qN~^T_bgrN~\qP{=~pbgb]b<dkL~W~~blp`qpXYp_rer<~w`n_a~W]Wa9~xerN~rS~_PTPUa.L9]9GG:A at MMQ[0UNYUYLCs,?@S7q:'C?I^:oNR)+Z(_cLTLS%JlfYx2_UT[WeW`REtU[UO [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2628/ccs/fwd np:i:12 rq:f:0.995752
- AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTACAGTAATGCCTCTACGTCAGTCGGAACAATGTCGTCGTGTAACTCGACGATCTTAGGAGCTACTAAGGAGAGTCTGTAGGGAACCGACTGGGAAGGTGCCACAAGTTTTCTCTACTAACTCCGTCTCCTAAAACAACTCCAAGTGGAAGGTCTGTGGGTTTTTGAGTATAGTCCGTATCTAGACCCAAAAGGGCTTACCTTCGCAATGAAAGAATATCCTTATAGACACGAACGGGAAGAACGGAATCGTTATTAATGACGTCGTACAACGTTTTCCAAGTTCTCCTCTTCCTCCGGATTCGGTTTGGGTTATCTCAACTAGTCCTTTCAAAGACATTGGAGAGTTTCACCTTCCCGTTAAGGTAGAACCCTCAGCATGTTTCACCCCGGTGACCACTCAGTTACGGAATGTTTTTAAGCCACCTCAGCTAGTGTT [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2628/ccs/fwd np:i:12 rq:f:0.99528
+ AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTACAGTAATGCCTCTACGTCAGTCGGAACAATGTCGTCGTGTAACTCGACGATCTTAGGAGCTACTAAGGAGAGTCTGTAGGGAACCGACTGGGAAGGTGCCACAAGTTTTCTCTACTAACTCCGTCTCCTAAAACAACTCCAAGTGGAAGGTCTGTGGGTTTTTGAGTATAGTCCGTATCTAGACCCAAAAGGGCTTACCTTCGCAATGAAAGAATATCCTTATAGACACGAACGGGAAGAACGGAATCGTTATTAATGACGTCGTACAACGTTTTCCAAGTTCTCCTCTTCCTCCGGATTCGGTTTGGGTTATCTCAACTAGTCCTTTCAAAGACATTGGAGAGTTTCACCTTCCCGTTAAGGTAGAACCCTCAGCATGTTTCACCCCGGTGACCACTCAGTTACGGAATGTTTTTAAGCCACCTCAGCTAGTGTT [...]
+
- ~~~=|~~n~~v~XV~^~]t~q~~vY'~~~~~~~zstz~~~~~~~~~~~~~~~keIQ~~k~~jI~~Ic\N~k&~~~bj~\~^D~~~~N~~`~~~~f~b~Z~~_~v~_p`z~~~~XhEHl[w^j_~>|~:~Wx_Z~~_~D~qda~J~~g~uuyyG~fM_~~4~d[LlR~g[~AnZt.Hhl:W=~bH~~gQV_K~?}p~~~j~Yau~qP~Ys]~~2y~~l]]|{X~h~p<|i~xxMw`~f*~`:5~~c[PO~yL:PKvO~CZw~aY~~nU~_^0.VliDu&~Q)l8wQgXJ~},~i`~ab~Zm]4vc~dd~2|]qgT{W=YaaRZcG~D~~n'~As~Y~2c4~~>g~G~~A~hommy4b~\}}Ce^Va{t^~\\~^~XmaHlIt~NG~~msSnl~U~b~f~I~~N\Bah~0p`|`~RLK~o`~L~(}~~Kv~_c~~i~|5]'x~~E~~~qN~~H~\iMId_Ph|f~~Y>~~~lZl~J|}?ybWZ~^yrz{~v~ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2628/ccs/rev np:i:14 rq:f:0.996595
- AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTACAGTAATGCCTCTACGTCAGTCGGAACAATGTCGTCGTGTAACTCGACGATCTTAGGAGCTACTAAGGAGAGTCTGTAGGGAACCGACTGGGAAGGTGCCACAAGTTTTCTCTACTACTCCGTCTCCTAAAACAACTCCAAGTGGAAGGTCTGTGGGTTTTTGAGTATAGTCCGTATCTAGACCCAAAAGGGGCTTACCTTCGCAATGAAAGAATATCCTTATAGACACGAACGGGAAGAACGGAATCGTTATTAATGACGTTCGTACAACGTTTTCCAAGTTCTCCTCTTCCTCCGGATTCGGTTTGGTTATCTCAACTAGTCCTTTCAAAGACATTGGAGAGTTTCACCTTCCCGTTAAGGTAGAACCCTCAGCATGTTTCACCCCCGGTGACCACTCAGTTACGGGAATGTTTTTAAGCCACCTCAGCTAGT [...]
+ ~~~=|~~n~~v~XV~^~]t~q~~vY'~~~~~~~zstz~~~~~~~~~~~~~~~keIQ~~k~~jI~~Ic\N~k&~~~bj~\~^D~~~~N~~`~~~~f~b~Z~~_~v~_p`z~~~~XhEHl[w^j_~>|~:~Wx_Z~~_~D~qda~J~~g~uuyyG~fM_~~4~d[LlR~g[~AnZt.Hhl:W=~bH~~gQV_K~?}p~~~j~Yau~qP~Ys]~~2y~~l]]|{X~h~p<|i~xxMw`~f*~`:5~~c[PO~yL:PKvO~CZw~aY~~nU~_^0.VliDu&~Q)l8wQgXJ~},~i`~ab~Zm]4vc~dd~2|]qgT{W=YaaRZcG~D~~n'~As~Y~2c4~~>g~G~~A~hommy4b~\}}Ce^Va{t^~\\~^~XmaHlIt~NG~~msSnl~U~b~f~I~~N\Bah~0p`|`~RLK~o`~L~(}~~Kv~_c~~i~|5]'x~~E~~~qN~~H~\iMId_Ph|f~~Y>~~~lZl~J|}?ybWZ~^yrz{~v~ [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2628/ccs/rev np:i:14 rq:f:0.996931
+ AAGCAGTGGTATCAACGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTACAGTAATGCCTCTACGTCAGTCGGAACAATGTCGTCGTGTAACTCGACGATCTTAGGAGCTACTAAGGAGAGTCTGTAGGGAACCGACTGGGAAGGTGCCACAAGTTTTCTCTACTACTCCGTCTCCTAAAACAACTCCAAGTGGAAGGTCTGTGGGTTTTTGAGTATAGTCCGTATCTAGACCCAAAAGGGGCTTACCTTCGCAATGAAAGAATATCCTTATAGACACGAACGGGAAGAACGGAATCGTTATTAATGACGTTCGTACAACGTTTTCCAAGTTCTCCTCTTCCTCCGGATTCGGTTTGGTTATCTCAACTAGTCCTTTCAAAGACATTGGAGAGTTTCACCTTCCCGTTAAGGTAGAACCCTCAGCATGTTTCACCCCCGGTGACCACTCAGTTACGGGAATGTTTTTAAGCCACCTCAGCTAGT [...]
+
- =k`~|]f7sb~^ic~~c~~a~f~~~%~~~~~xfkx~~~~~~~~~~~~wkjs~rns:nbO]u^;`|\s]~~aS~~^aq7~T~~~~z`y~aw~Ak3s~~~~~c~~]~~~H~~H~~N|Z~~~{TKSfa~a~~q`ty?~~U~4~I{~g2~~yZLtR^~~~p~~b'~~~f~~}~~f~zU]m4v~^n~~?~~~lp~f^s~~~X[=~b~3oYj=Cb5hM.ZgxjG~)9y3Y>wp~Ma{t~`}9}d~~Mz~S&oYFHBx~V~X~~Y|v~^VGzqUw~Z~~z~i~~r{N~lu~^otd5~|0[Ec~uA~w~XsVBmdd~s[s;~eE.vuFs~~v~~K?}~~[~WwKM~uWPr at nQokoxl~F~~:~}.PF~h+xCv\NdZbHQ`t~e~m}Ia~~`}|ZzY~L~G~~Hk_R~~~~~~`~`~wRO~]c4}hbbXpaVeMr~9~~lPFy~~~X~~~d*HYId?~f~E~~_r~~~'~~~~uT)~~~~g~^s~~~~~~~U~v~Eb [...]
+ =k`~|]f7sb~^ic~~c~~a~f~~~%~~~~~xfkx~~~~~~~~~~~~wkjs~rns:nbO]u^;`|\s]~~aS~~^aq7~T~~~~z`y~aw~Ak3s~~~~~c~~]~~~H~~H~~N|Z~~~{TKSfa~a~~q`ty?~~U~4~I{~g2~~yZLtR^~~~p~~b'~~~f~~}~~f~zU]m4v~^n~~?~~~lp~f^s~~~X[=~b~3oYj=Cb5hM.ZgxjG~)9y3Y>wp~Ma{t~`}9}d~~Mz~S&oYFHBx~V~X~~Y|v~^VGzqUw~Z~~z~i~~r{N~lu~^otd5~|0[Ec~uA~w~XsVBmdd~s[s;~eE.vuFs~~v~~K?}~~[~WwKM~uWPr at nQokoxl~F~~:~}.PF~h+xCv\NdZbHQ`t~e~m}Ia~~`}|ZzY~L~G~~Hk_R~~~~~~`~`~wRO~]c4}hbbXpaVeMr~9~~lPFy~~~X~~~d*HYId?~f~E~~_r~~~'~~~~uT)~~~~g~^s~~~~~~~U~v~Eb [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2648/ccs/fwd np:i:9 rq:f:0.998685
AAGCAGTGGTATCAACGCAGAGTACGGGCAGAGTACTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCGGTCTTCTAGCGTAACTATCTTAAAAACTTCTAAACTGCTGCTTAGTAGGCAATAATCGACTAAATCCATAATTTTTGCGACCAAACGCAAACTTCAAGAATTTTAGACTTTGAAGACCGCATCGGCAAACCCCATTTTAGATACCACTTTAATTTCCAGTTAATCTACGACGCAAGTCACTTCTTTGTCGTTAAGTTTTATTTAACTGTCGCAAACAACAAAATGGTTTTCTAAATTTACTAAAAACCAGGACGCACCTAACTTTCTAAACAAGCACAAGTTTAGCTTCTTCGTAAACGTCACCCGCGAACTTTGACGCAAGAATTTTCCATGACCATTTCTGGTTGGTTAGCCGAATTTGGCAGTTCATGTTTTTCCACATAGCCATTGACTCCCACGAATAGGTCTCTTTCTTCT [...]
+
@@ -664,10 +666,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACGGGGGCTTGTCCGCGAGTGTCAACCGGGTTTTACAAAGGAGAACTTCCAACATCAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTGTGAGGCGCAAGGTACATGCTCTTACCCCACTCTCAGCACGTAGGGGAGCGGAGTGTGGAAGACCAACAAGCCCGTCGCCTCTACCAAATACAGTGTTTTAGGTGTGTCGGAGGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAAACAGCCCTGTTGTATACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCCAGGTACAGCTGATGTGATCCT [...]
+
Gu6,Lag@~b?2R6eV_ZRcgdnJR*`_rYQ&x^S0QX at 6[7iFDILmEv6a2'MgJ1VBsgOY:KBMX6~?qW~WYFY;al\L5N8Z_cdZ5dRA*LbZb)lrigVHJWQSNbXRG1*WVb^U`TS~o^g]bmN\eC~qXKSSdLeo:~scjcJw]LY45h]gdUlM]AF9__=~]]ZX~Q~cP[JZ`?:Q*[Y+ZU`^A_Z^FRKAOXHVP%we',N0<J0C^Xc1QEd_QL|8~\J~dBg_amFa?~VYJ*M~/~yod[QcmL$h`RaMikaj`M.R~gL~~]][?khGY;K5J/rnLJkkS|D~cGJOnW1fWIY0qgnd\F[hEZ<lfboW;g],qaN~~oN~oT}]gdgL~OjeSvF~iJ:ld[T9cFV at LED1ddM>MP'XROM9f5L6P7;TAQ1R3..-]@0HK]WYejZodnB~~nR~gPgJ%csVfUgBuyjLie]ejTc6y/jLL_\^^bEg?-9(LHEhi:.E76PV\MKeIOl3kB [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2771/ccs/rev np:i:5 rq:f:0.993412
- AAGCAGTGGTATCAACGCAGGAGTACGGGGCTTGTCCGCGAGTGTCAACCGGGTTTTACAAAGGAGAACTTCCAACATCAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTGTGAGGCGCAAGGTACATGCTCTTACCCCACTCTCAGCACGTAGGGAGCGGAGTGTGGGAAGACCAACAAGCCCGTCGCCTCTACCAAATACAGTGTTTAGGTGTGTCGGAGGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCCACTTCGATCTGTAAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCT [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2771/ccs/rev np:i:5 rq:f:0.993396
+ AAGCAGTGGTATCAACGCAGGAGTACGGGGGCTTGTCCGCGAGTGTCAACCGGGTTTTACAAAGGAGAACTTCCAACATCAGTGTATGGGATGTTTCAAACACCCCCAGAGACGGAGACAATAGTGTGGTCACGTACATTTAGGAAGATAAAAATAACAACAACAGAAGGTGTGAGGCGCAAGGTACATGCTCTTACCCCACTCTCAGCACGTAGGGAGCGGAGTGTGGGAAGACCAACAAGCCCGTCGCCTCTACCAAATACAGTGTTTAGGTGTGTCGGAGGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCCACTTCGATCTGTAAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTC [...]
+
- KZA<P=@CqUIXXKtXSYV0WE?B/3$?XqKIX4H:kOV9H?cV^kR~Gy?~~<\~~yWN~vT~zPMsS*kJ~M~o|smads^]xlH~~s at b5~yj<~qh[D~~~~abHbzjJ`lOrmV~VYOCVC:SV[p_N\fGd5~yzU~PbKgm2~~~j]g~nUsnl~o|fV~D~XKYc{B~lbk?j:`C(9sGa*mnP~z=~}qyX^V^Zx_Szoblv1{ccN_LuschfG%ngazM{[~Aw:Jnb1ttOZ[PV|RWk^J~D~rm`QqbZ`2vzxEeCSL=ZYU~o3~zladL~uZzj~XdNuue7nfS~0ne[M^YUOtns)Kp\SmZugk^r]~pLm`?~~E~~N~~s\~Zf~gyQz]~b~|V~D~|yI~zox@~yblxn\P~~nzPIzmh^~di|sxW~`[`vc$s~~qkq?EI)LzrYrfo%v^0<;~Ve~qC~sLkdX9~tnZ~VTU_UQ0~9~~~~n|gpZT`ngotO~r{ozQl\f|sfqd3p]~mi\ [...]
+ KZA<P=@CqUIXXKtXG[[9VO2C-;$2Om`RK^:KBpZWCQKic^nS~Gz?~~<\~~yWN~vT~zPMsS*kJ~M~o|smads^]xlH~~s at b5~yj<~qh[D~~~~abHbzjJ`lOrmV~VYOCVC:SV[p_N\fGd5~yzU~PbKgm2~~~j]g~nUsnl~o|fV~D~XKYc{B~lbk?j:`C(9sGa*mnP~z=~}qyX^V^Zx_Szoblv1{ccN_LuschfG%ngazM{[~Aw:Jnb1ttOZ[PV|RWk^J~D~rm`QqbZ`2vzxEeCSL=ZYU~o3~zladL~uZzj~XdNuue7nfS~0ne[M^YUOtns)Kp\SmZugk^r]~pLm`?~~E~~N~~s\~Zf~gyQz]~b~|V~D~|yI~zox@~yblxn\P~~nzPIzmh^~di|sxW~`[`vc$s~~qkq?EI)LzrYrfo%v^0<;~Ve~qC~sLkdX9~tnZ~VTU_UQ0~9~~~~n|gpZT`ngotO~r{ozQl\f|sfqd3p]~mi [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2772/ccs/fwd np:i:6 rq:f:0.994156
AGCAGTGGTATCAACGCAGAGTACGGGGCGATGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAAGAAATCGCACAAGTCGGTCGCCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCCTGGATGCAATTGTGCTCGCCATTTCAACTTAGTGCAGTTGCTAAAGTGCCAACTAAGGTTCGTCTTGAAGC [...]
+
@@ -740,10 +742,10 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AAGCAGTGGTATCAACGCAGAGTACGGGGTTGGTGTATTTATCCGCTACGTGGGTGGATGAACATGGATGCGAACGACATTTCGAAATATACGCAATGATATCCAACCCTACCGAAACAGCAATAATTGTAGAAGGTAGCATATCATGCCGAGAGTTTACTACGTTGTAGCGAGTTTAGTTGAAATAGTTTGTGATGTGTAAACTAAAACATACCAAATGGGTAAACTTGTCACCCCCATTTACATTGCGACAGACACAGTTATGGAGTGGATGGAAGTGTGTTCGACTGTCAAGACCCTTCTATAATAGTCGAACCAGTACGGTAAGTGGGCAACATGCCCATATAAGTCGAAGCATTTCAAATGGTTCATCCAGTAGACGACGATGTCCTAGACAGTCATGTCTCTTCCCATTTGAAGTCATGTAGTGGTTGTCTACTTTTTCATTGAAGACGTCCACCTCAACGCTATGAACGTTAGTTGAGACAAT [...]
+
MmBD(39+h^dwrVz]OhrFFHxpo3xn\OVBYB?`wH}lwQ`tWqoboRZ*F8>=K(tYf~]zwF~xtO_Fd~pEwqwU~~sZV~~cWonWUY^JUCoQas9~U~M~~a\7wQJ~kIaSIa~yQkNiMYPRZv?yt:C4rcfcq{xWM~DtXpRIv~yp_QYRHzQ`xUrTt3HTwxWE~UJ~~L]UDkB=B?gQIKPfH~vYg<R_W``Rf:}M~~d'u=?-~~pb{U`m{E~~~~yK|_lOpByOVPbl[B^DYJLQ_yI[8xh;p&~qrF~at@[>\OOnbAqkZU[mEf8dItdKu_]ts_~uvPYlTa}Y~vUuwX?}9Ow=S7~~oS~lesSN~~qvtaa~DslSchCYvD~zX;ydo<~_xXjQS~q>YeSujF]>OGFQoL~kh1KmqLqjlaUnFbXAJ(T~sI~~Se~VrYqlB^_GrEw_`/Mndvn>kdz~m`=X-_v>cXB^Yqm?Xgbf~kQI,E&KQj`P6m`QAmTuTkmMws [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2951/ccs/fwd np:i:5 rq:f:0.99569
- AAGCAGTGGTATCAAACGCAGAGTACGGGGCATACTGCAAGACTTGTAGGCCCATGAATTACCCGCTTAGGCAATGGGTAGACCTTTCCTTGCCGCGTGGAACAAACCGCCATGAGTGTTTTACGTTTACGGTCGGCGACCGGAGTCACAGCGCGACCAACGGGGCCAGGCAAAGGCCCATAGGCTTTTCCATCGGCACGCGACCGATTCCATCAAGTGTTAGGTGCAATCCCCATTCGGGACGGACACGCGAGAGCGTTAGTCGGCGCGTGCGCGGGACTATTTAGCGAAGGTCGCCGATCGTTTGCCCGTAAAACTAACTGGCAAAAGCCTAAGTGCTGTTTCGGGTGCAATGGTATAACTTCCCACATTTAGCCGAATAGCGCCAACAGCGTTATTATTTGGAACCAAGCAGTGGGCGATGTCAGCGACAATTCCACTTTGGTAGAGGTCGTTCTTTTGTAGAAAACAATCTAACATAACTATGACA [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2951/ccs/fwd np:i:5 rq:f:0.995229
+ AAGCAGTGGTATCAAACGCAGAGTACGGGGCATACTGCAAGACTTGTAGGCCCATGAATTACCCGCTTAGGCAATGGGTAGACCTTTCCTTGCCGCGTGGAACAAACCGCCATGAGTGTTTTACGTTTACGGTCGGCGACCGGAGTCACAGCGCGACCAACGGGGCCAGGCAAAGGCCCATAGGCTTTTCCATCGGCACGCGACCGATTCCATCAAGTGTTAGGTGCAATCCCCATTCGGGACGGACACGCGAGAGCGTTAGTCGGCGCGTGCGCGGGACTATTTAGCGAAGGTCGCCGATCGTTTGCCCGTAAAACTAACTGGCAAAAGCCTAAGTGCTGTTTCGGGTGCAATGGTATAACTTCCCACATTTAGCCGAATAGCGCCAACAGCGTTATTATTTGGAACCAAGCAGTGGGCGATGTCAGCGACAATTCCACTTTGGTAGAGGTCGTTCTTTTGTAGAAAACAATCTAACATAACTATGACA [...]
+
- ^~b^g^e;}KfkG${]^c]Q`RanfI=w~v]QkR^ncWEeTU\K~blQQtD~khncX~]~9C~kaX;NMM~]C|H;k~iK]f>~7rcO~_~bCnNKSkCl0gD:fe1?6<~gk^Qbnc@~~h9\cU~~h_S~n_OpK_f/G>bfcn]R^haFJ]cd-H,=?<~~hN~PB~]A~wS~F~~hlQR~H?~~Z:gPl_T~\O]aFHN/~bhZiLgQl^HxbVc]~QS~nc_Uji3~~~eJ~F5zcc_T~fHfZ5\chchc[FY~g^b2R~^c\Lkc^]EH~{;]mgE~w=K]bE~?~l`cO~^_PFaF~\54xcHj,~ye^lG~^l@~];~~~a>~lK~ckJBL`D~~^J~~kLX@`lT~lQl8l]Ty7~yg[;T~~hcNb35yQcL]cLjB_VK`FIJq:\~PD~|B~2YJID~M[hcmJ~~\Kfncn_hc\JM]E~J~?tg^F~~9xfhbKP~n_bK~]@t~kKjQa.~~~]GqXHU1z]gj%}]nhnbR^h [...]
+ ^~b^g^e;}KfkG${]^c]Q`RanfI=w~v]QkR^ncWEeTU\K~blQQtD~khncX~]~9C~kaX;NMM~]C|H;k~iK]f>~7rcO~_~bCnNKSkCl0gD:fe1?6<~gk^Qbnc@~~h9\cU~~h_S~n_OpK_f/G>bfcn]R^haFJ]cd-H,=?<~~hN~PB~]A~wS~F~~hlQR~H?~~Z:gPl_T~\O]aFHN/~bhZiLgQl^HxbVc]~QS~nc_Uji3~~~eJ~F5zcc_T~fHfZ5\chchc[FY~g^b2R~^c\Lkc^]EH~{;]mgE~w=K]bE~?~l`cO~^_PFaF~\54xcHj,~ye^lG~^l@~];~~~a>~lK~ckJBL`D~~^J~~kLX@`lT~lQl8l]Ty7~yg[;T~~hcNb35yQcL]cLjB_VK`FIJq:\~PD~|B~2YJID~M[hcmJ~~\Kfncn_hc\JM]E~J~?tg^F~~9xfhbKP~n_bK~]@t~kKjQa.~~~]GqXHU1z]gj%}]nhnbR^h [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/2951/ccs/rev np:i:5 rq:f:0.994585
AAGCAGTGGTATCAACGCAGAGTACGGGGCATACTGCAAGACTTGTAGGCCCATGAATTTACCCGCTTAGGCAATGGGTAGACCTTTCCTTGCCGCGTGGAACAAACCGCCATGAGTGTTTTACGTTTACGGTCGGCGACCGGAGTCACAGCGCGACCAACGGGGCCAGGCAAAGGCCCATAGGCTTTTCCATCGGCACGCGACCGATTCCATCAAGTGTTAGGTGCAATCCCCATTCGGGACGGACACGCGAGAGCGTTAGTCGGCGCGTGCGCGGGACTATTTTAGCGAAGGTCGCCGATCGTTTGCCCGTAAAACTAACTGGCAAAAGCCTAAGTGCTGTTTCGGGTGCAATGGTATAACTTCCCACATTTAGCCGAATAGCGCCAACAGCGTTATTATTTGGAACCAAGCAGTGGGCGATGTCAGCGACAATTCCACTTTGGTAGAGGTCGTTCTTTTGTAGAAAACAATCTAACATAACTATGAC [...]
+
@@ -772,14 +774,14 @@ Test ccs on 100 zmws from the lexogen-SIRV dataset, using --byStrand
AGCAGTGGTATCAACGCAGAGTACGGGGTGTATTTATCCGCTACGTGGTGGATGAACATGGATGCGAACGACATTTCGAAATATACGCAATGATATCCAACCCTACCGAAACAGCAATAATTGTAGAAGGTAGCATATCATGCCGAGAGTTTACTACGTTGTAGCGAGTTTAGTTGAAATAGTTTGTGATGTGTAAACTAAAACATACCAAATGGTAAAACTTGTCACCCCATTTACATTGCGACAGGACACAGTTATGGAGTGGGATGGAAGTGTGTTCGACTGTCAAGACCCTTCTATAATAGTCGAACCAGTACGGTAAGTGGGCAACATGCCCATATAAGTCGAAGCATTTCAAATGGTTCATCCAGTAGACGACGATGTCCTAGACAGTCATGTCTCTTCCCCCATTTGAAGTCATGTAGTGGTTGTCTACTTTTTCATTGAAGACGTCCACCTCAACGCTATGAACGTTAGTTGAGACAATGTT [...]
+
'LAdS:7iJ_eS@`MFMDDNCSQD9nyxeR]c.p[^N:fTVHKUR^GlP>Y^c<DtSYeH{feSU?SrCTcWd,iV at 90rtcbM8+QUSZbUfef^6_S[1xqWd9wSHwrUMSW?sdAWLvUeeTIr at med?=`A\PWfdA.[UfUfT4\\dU7bVABaS_XUR;dT<kYdUNvT at Yi\MT3ttUUTaXUdTOIxvWd1vvpUMcc-KAunJ2=6)Y_[VFiA`Cb%uvaG<oucUYBWSU at cUM-jeUMUeS$pbbHzfO;,plfeHzTtLDJGGBZRQIVbTN at RuVc?|^@pWbfeTXefTOVS/sDXeU_AAEvSHoSd/XlVGuS_dUBz{`dacAv at bWUUwTAc?ZoVNvvQGnEsVdM.H`TOc at dWT`RUdO at cHzefUcAdKeVaXS7?KUDj&rvuMK-VSJDIOeWdH%6]TN4q59=_VHGR1uwwcULEuTQvVcWUaFtYHy_<FtUU<C7VTSpU at TuMSWwU`@cWTweT3r [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/3046/ccs/fwd np:i:11 rq:f:0.997092
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/3046/ccs/fwd np:i:11 rq:f:0.996917
AAGCAGTGGTAATCAACGCAGAGTACGGGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATACGAGCCTAGTGGTCATTAGAAGGTCAACATGGAGTAGGTGTTTAGGTGTGTCGGAGGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATGCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCTCTACTAGTCTTCTCTGAGGAACCATGAGATGGATAGTGGGGGACCTGAGTCATACTAGGGTAACTTCTTATATGGTGACATCACTCCTACCGTAGAGGGGGGACGGTAGTCTGTGGGAAATCTACCCTAGTGAAGAAAGGTAAG [...]
+
- ~~Sbs]^R{C,cl]Jh/QHvexUoeW=~~~fFEG=BcZ,iAk;WjUgKiD`J97p~~W~@vaNmRi`otczarF{EOrLYWmn)VuM=wMgN]KxBX{]~=TEd8~cPSvh~FCgef^`/^X<M6}~T~`dsdoe<~~7~t+uR?hhO~W~dcD~~gN~m?~B~~ecwlfh~E~FPzxXfs~gqhpHu^TO_1~~@akJ~{n?}nQk`Rfg>}PwfOp8d~gFys=QZ~zRmvUk7bWd~W;`KdMhA^mqt?l?p^~P5gtwmpe_~ad{`MPgQW~~Z/~ps~t-;~{;_eGD|~s8keY_a\XJxS~~~~R~c_9H7ETLb8~^GYsP^JS~pd[dx_N~bSm>r~hr~dn`BlPs_gd~R~F~P~LRK\S~tR~~pzTa0y}~~~@~pg~Une~`oTc~?~|mZfNW~dN~~kem5~qT`gxi\_]TS~s~M}SX]g~5~~~~~eeS~ljeo5bSyE~eApYa\d~>~iix[b8b~hW~rI~gA~_ [...]
- @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/3046/ccs/rev np:i:11 rq:f:0.994641
- AAGCAGTGGTATCAACGCAGAGTACGGGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATAGAGCCTAGTGGTCATTTAGAAAGGTCACATGGAGTAGGTGTTTAGGTGTGTCGGAGGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCTCTACTAGTCTTCTCTGAGGAACCATGAGATGGATAGTGGGGGACCTGAGTCATACTAGGGTAACTTCTTATATGGTGACATCACTCCTACCGTAGAGGGGGGACGTAGTCTGTGGGAAAATCTACCCTAGTGAAGAAAGGTAAGAG [...]
+ ~~[i{edU{[&Sj_Mf5WMlYxYbf\C~~~nOJ<EHeV1p6`4Ji[lQnEVQB0{~~_~:sYPmXgfp{j~arF{EOrLYWmn)VuM=wMgN]KxBX{]~=TEd8~cPSvh~FCgef^`/^X<M6}~T~`dsdoe<~~7~t+uR?hhO~W~dcD~~gN~m?~B~~ecwlfh~E~FPzxXfs~gqhpHu^TO_1~~@akJ~{n?}nQk`Rfg>}PwfOp8d~gFys=QZ~zRmvUk7bWd~W;`KdMhA^mqt?l?p^~P5gtwmpe_~ad{`MPgQW~~Z/~ps~t-;~{;_eGD|~s8keY_a\XJxS~~~~R~c_9H7ETLb8~^GYsP^JS~pd[dx_N~bSm>r~hr~dn`BlPs_gd~R~F~P~LRK\S~tR~~pzTa0y}~~~@~pg~Une~`oTc~?~|mZfNW~dN~~kem5~qT`gxi\_]TS~s~M}SX]g~5~~~~~eeS~ljeo>\OrFv^7uViUm~7~bquSZ0`ziS~sQ~s<~c [...]
+ @m150825_055401_42161_c100844482550000001823159012311525_s1_p0/3046/ccs/rev np:i:11 rq:f:0.995009
+ AAGCAGTGGTATCAACGCAGAGTACGGGGTACAAGAGTTGGTTACTCTCAGTCCCATTCCCAACACATCACTGAGAAGTATAGAGCCTAGTGGTCATTAGAAAGGTCACATGGAGTAGGTGTTTAGGTGTGTCGAGAGGCAGAAACCAACGAAAGAAAGGAAACGATCAACACTTATATAGTGTCCTGTCGGGCCCAAATCCTAAGAGACCTTAGGTTTACCACATTAGTACTAAACAGCCTGTTGTATACCGTGAGCCCCCACTTCGATCTGTAAATGGTAATCCCTTGTAAAACCTCATCTCCAAAAACAGTATACGCAGGTACAGCTGATGTGATCCTCTCTACTAGTCTTCTCTGAGGAACCATGAGATGGATAGTGGGGGACCTGAGTCATACTAGGGTAACTTCTTATATGGTGACATCACTCCTACCGTAGAGGGGGGACGTAGTCTGTGGGAAAATCTACCCTAGTGAAGAAAGGTAAGAGA [...]
+
- F~Ulufb9~|`f]Vz?\Mi\HNikP.`^q~u>_~lvi[~Z~o~^EpFse.=S6~r_lvD~e<~bT]Ljjf[~kqGFYb8dWS]^Q;qr=KpW~~FN+\URB(];8IRL(Bel(FM:[[FsoXP|m?Rz_SwYs`=&M*'lhm`=~gL~T}WFDwva:~\Ex;sugVZgJN~hlKPIkukxbAHAcR|Wf~]AbL)ghIq~~@~~>~TUQiD~mHgK~WcdgD~_EbY]QApgjYI~~nVWJeZaBuU7^jfL~h~Y\M/lf\boNVza`hxn~h~6qukMX`6~~I~~_\]p<~~bIxYUdzi~Xt9~~qvjjhooeuOgVe=kbO]Kgh`jmoSVJgzU~aSWf^S_fAEOgarScMpW\R~b~Y~s\MiQ^wU~QmL]w8;a~~tS~^CTDOfLxj[siH~~~^~Vm~fg~]w?L1~XW=lgni\ehC~kq>SA_iKp$sus|ijJ?CheYe`a=8Od(mqTM[oVA}~vj\_]D~\GGNT~}Itad` [...]
+ >~Phnbi0}wY_bQ~JfWm_MM~hV,igv~p8Z~fvcf~U~j~jNyP}b?<M;~oYg}J~sJ~]]YTse`V~fmTCP`Jb`O\[MGlp;DmT~{S<%QH2/U;0GHG'E^b$LF5gSAgy_K~o9LoTNnViZ)9WK$tcga>~hH~\vRAItw]<~\Dv8z}bc__BH~dfGPKdldojK?;cNtUd|fChS*iqNz~~C~yA~\X]lD~jY`J~`ce`K~dLe^RKLkafeJ~~hMRDiS\IkO/\`_D~b~[[M)nj``oGWyYZ_zf~d~/uwoLe\>~xE~~bUXy@~~fElNO^ve|Vw8~~glbhavnio[eb_BufYbVbhVcmgOOG^pQ~ZMc`f\ZrG?Eb^oZXReQUHy^sR}nQFbLVnPrSeDWo60U~~jK~gLLMY`CpebhaE~~vY~bp{^izTw5P+{`P4g^ucT^jE~ph?R<e`Gp(uwx~gbR9Mabc_l\@6Zq'x|LGVjd;~~lpUhW?vUBNWQxq at n[`Y@ [...]
@m150825_055401_42161_c100844482550000001823159012311525_s1_p0/3116/ccs/fwd np:i:7 rq:f:0.995734
AAGCAGTGGTATCAACGCAGAGTACGGGGGGCGACAATTGTGGACCGTATGGACTCCATTATGCTGGGACTCCTCGGGTCAACCGCTCTAAAGCGAAGTTGTTGGACAAACAGTTATGCGTAACTGTAAAGCAAGGTGCCCAAAGTAGACTGAGCGACAGTCGAAACCAGCCCCAATGAACAAGACGCCATTGCAAAACGTCTATACGCTACGGTCAAAGACGCTTCCACACCACATGCTCTCATGTAGCCTACCTTACGAGAAATCGCACAAGTCGGTCGCCCAGCGGTGGCATATGTCTTGCCTAACGTTTCTAGACCGATCAGCCTCACGAGTAGCCTGCTTGTGGTGTTTATAGTTTACGCTAGTCCAATCTGTATCGTGCCGCTTGGTATGGCTATTGTCGGCCTGGATGCAAGCACTAACGTGGTCATCAGACTGGTCTGCGCTATAATCTACGCAATAGAGGCACCAGCGGTCGTTGAAAGCC [...]
+
diff --git a/tests/cram/force.t b/tests/cram/force.t
new file mode 100644
index 0000000..eac6528
--- /dev/null
+++ b/tests/cram/force.t
@@ -0,0 +1,14 @@
+
+Test if we mistakenly overwrite
+
+ $ touch exists.fq
+ $ $__PBTEST_CCS_EXE $TESTDIR/../data/0passes.bam exists.fq --logFile log.txt
+ [1]
+ $ if [ -s log.txt ] ; then echo "dirty"; else echo " clean"; fi
+ dirty
+
+ $ $__PBTEST_CCS_EXE $TESTDIR/../data/0passes.bam --force --minPasses=0 --minPredictedAccuracy=0.85 exists.fq
+ $ if [ -s exists.fq ] ; then echo "dirty"; else echo " clean"; fi
+ dirty
+
+ $ rm exists.fq
\ No newline at end of file
diff --git a/tests/cram/internal/big.t b/tests/cram/internal/big.t
new file mode 100644
index 0000000..400e7da
--- /dev/null
+++ b/tests/cram/internal/big.t
@@ -0,0 +1,20 @@
+This is a larger scale test run on a nightly basis. It runs a good
+chunk of a movie through CCS and pushes the results through ccscheck.
+For now we just watch that the results don't change; in the future we
+might like to replace that with some bulk checks on alignment identity,
+for example.
+
+Run CCS:
+
+ $ DATADIR=/pbi/dept/consensus/testdata/unanimity-nightly
+
+ $ mkdir results
+ $ ${__PBTEST_CCS_EXE} --zmws 1-187412 $DATADIR/ds.subreadset.xml out.bam
+
+Run ccscheck, check output:
+
+ $ /pbi/dept/consensus/ccscheck/bin/ccscheck out.bam stats /pbi/dept/consensus/references/lambdaNEB.fasta
+ $ sort -t, -n -k1,1 -k2,2 stats/zmws.csv > zmws.sorted.csv
+ $ diff -NrU1 zmws.sorted.csv /pbi/dept/consensus/testdata/unanimity-nightly/zmws.sorted.to187412.csv
+
+TODO: copy back to the "lastrun" dir
diff --git a/tests/cram/logfile.t b/tests/cram/logfile.t
new file mode 100644
index 0000000..7aac8a8
--- /dev/null
+++ b/tests/cram/logfile.t
@@ -0,0 +1,14 @@
+
+Test if correctly stream to a log file
+
+ $ $__PBTEST_CCS_EXE 2> cerr.log
+ [1]
+ $ if [ -s cerr.log ] ; then echo "dirty"; else echo "clean"; fi
+ dirty
+
+ $ $__PBTEST_CCS_EXE --logFile out.log 2> cerr.log
+ [1]
+ $ if [ -s cerr.log ] ; then echo "dirty"; else echo "clean"; fi
+ clean
+ $ if [ -s out.log ] ; then echo "dirty"; else echo "clean"; fi
+ dirty
diff --git a/tests/cram/tiny.t b/tests/cram/tiny.t
index 7464a84..2b683e7 100644
--- a/tests/cram/tiny.t
+++ b/tests/cram/tiny.t
@@ -14,10 +14,10 @@ Test a tiny collection of a few ZMWs, write to FASTQ for inspection
AAAACTGTACGATAAACGGTACGCTGAGGGCGGAAAAAATCGTCGGGGACATTGTAAAGGCGGCGAGCGCGGCTTTTCCGCGCCAGCGTGAAAGCAGTGTGGACTGGCCGTCAGGTACCCGTACTGTCACCGTGACCGATGACCATCCTTTTGATCGCCAGATAGTGGTGCTTCCGCTGACGTTTCGCGGAAGTAAGCGTACTGTCAGCGGCAGGACAACGTATTCGATGTGTTATCTGAAAGTACTGATGAACGGTGCGGTGATTTATGATGGCGCGGCGAACGAGGCGGTACAGGTGTTCTCCCGTATTGTTGACATGCCAGCGGGTCGGGGAAACGTGATCCTGACGTTCACGCTTACGTCCACACGGCATTCGGCAGATATTCCGCCGTATACGTTTGCCAGCGATGTGCAGGTTATGGTGATTAAGAAACAGGCGCTGGGCATCAGCGTGGTCTGAGTGTGTTACAGAGGTTCGTCCGGGAACGG [...]
+
J~~~~~~~~~~~~P~~~~~~~~~~~~~~~~~~~R~~~~~~~~~~P~~~~~~~~~~s~~~~~~~~~~~~~~~~~6~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~D~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~u~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~S~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [...]
- @m150404_101626_42267_c100807920800000001823174110291514_s1_p0/111500/ccs np:i:26 rq:f:0.999802
+ @m150404_101626_42267_c100807920800000001823174110291514_s1_p0/111500/ccs np:i:25 rq:f:0.999051
TATCCAGACTAAATTCACTATCGCCACTTTTATTGGCGATGAAAAGATGTTTCGTGAAGCCGTCGACGCTTATAAAAAATGGATATTAATACTGAAACTGAGATCAAGCAAAAGCATTCACTAACCCCCTTTCCTGTTTTCCTAATCAGCCCGGCATTTCGCGGGCGATATTTTCACAGCTATTTCAGGAGTTCAGCCATGAACGCTTATTACATTCAGGATCGTCTTGAGGCTCAGAGCTGGGCGCGTCACTACCAGCAGCTCGCCCGTGAAGAGAAAGAGGCAGAACTGGCAGACGACATGGAAAAAGGCCTGCCCAGCACCTGTTTGAATCGCTATGCATCGATCATTTGCAACGCCACGGGGCCAGCAAAAAATCCATTACCCGTGCGTTTGATGACGATGTTGAGTTTCAGGAGCGCATGGCAGAACACATCCGGTACATGGTTGAAACCATTGCTCACCACCAGGTTGATATTGATTCAGAGGT [...]
+
- ~of~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~V~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Y~~~~~~~~~~~~~~~w~~~~~~~~]~~~~~~v~~~~~q~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~p~~~~~~~~~~~~~~~~~~~~~~~C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~9~~~~~~~~~~<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~_~~~~~~~~-~~~~~~~~~~~~~~~~~~~~y~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~s~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [...]
+ ~~s~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~u~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~N~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~T~~~~~~~~~~~~~~~r~~~~~~~~Y~~~~~~~~~~~~f~~~~~~~{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~m~~~~~~~~~~~~~~~~~~~~~~~8~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@~~~~~~~~~~F~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`~~~~~~~~'~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~l~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [...]
@m150404_101626_42267_c100807920800000001823174110291514_s1_p0/111715/ccs np:i:24 rq:f:0.999951
GCGTCGGATCGCCAACAACATGCCGGAACAGTACGACGAAAAGCCGCAGGTACAGCAGGTAGCGCAGATCATCAACGGTGTGTTCAGCCAGTTACTGGCAACTTTCCCGGCGAGCCTGGCTAACCGTGACCAGAACGAAGTGAACGAAATCCGTCGCCAGTGGGTTCTGGCTTTTCGGGAAAACGGGATCACCACGATGGAACAGGTTAACGCAGGAATGCGCGTAGCCCGTCGGCAGAATCGACCATTTCTGCCATCACCCGGGCAGTTTGTTGCATGGTGCCGGGAAGAAGCATCCGTTACCGCCGGACTGCCAAACGTCAGCGAGCTGGTTGATATGGTTTACGAGTATTGCCGGAAGCGAGGCCTGTATCCGGATGCGGAGTCTTATCCGTGGAAATCAAACGCGCACTACTGGCTGGTTACCAACCTGTATCAGAACATGCGGGCCAATGCGCTTACTGATGCGGAATTACGCCGTAAGGCCGCA [...]
+
diff --git a/tests/cram/tiny_noPolish.t b/tests/cram/tiny_noPolish.t
new file mode 100644
index 0000000..6619988
--- /dev/null
+++ b/tests/cram/tiny_noPolish.t
@@ -0,0 +1,33 @@
+
+Test ccs on a tiny collection of ZMWs, using --noPolish
+
+ $ $__PBTEST_CCS_EXE --noPolish $TESTDIR/../data/tiny.bam tiny.fq
+
+ $ grep -c ^+$ tiny.fq
+ 6
+
+ $ cat tiny.fq
+ @m150404_101626_42267_c100807920800000001823174110291514_s1_p0/109097/ccs np:i:22 rq:f:0
+ CATGTACCGGATGTGTTCTGCCATGCGCTCCTGAAACTCAACATCGTCATCAAACGCACGGGTAATGGATTTTTTGCTGGCCCCGTGGCGTTGCAAATGATCGATGCATAGCGATTCAAACAGGTGCTGGGGCAGGCCTTTTTCCATGTCGTCTGCCAGTTCTGCCTCTTTCTCTTCACGGGCGAGCTGCTGGTAGTGACGCGCCCAGCTCTGAGCCTCAAGACGATCCTGAATGTAATAAGCGTTCATGGCTGAACTCCTGAAATAGCTGTGAAAATATCGCCCGCGAAATGCCGGCTGATTAGGAAAACAGGAAAGGGGTTAGTGAATGCTTTTGCTTGATCTCAGTTTCAGTATTAATATCCATTTTTTATAAGCGTCGACGGCTTCACGAAACATCTTTTCATCGCCAATAAAAGTGGCGATAGTGAATTTAGTCTGGATAGCCATAAGTGTTTGATCCATTCTTTGGGACTCCTGGCTGATTAAG [...]
+ +
+ 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 [...]
+ @m150404_101626_42267_c100807920800000001823174110291514_s1_p0/109700/ccs np:i:18 rq:f:0
+ GCGTGCTTGTGGTGGGTAACCGTCGTATTCCCGGCGCGTTTATTCAGCAACTGAAAAATGGCCGGTGGCATGTCATGCAGCGTGTGGCTGGGAAAAACCGTTACCCCATTGATGTGGTGAAAATCCCGATGGCGGTGCCGCTGACCACGGCGTTTAAACAAAATATTGAGCGGATACGGCGTGAACGTCTTCCGAAAGAGCTGGGCTATGCGCTGCAGCATCAACTGAGGATGGTAATAAAGCGATGAAACATACTGAACTCCGTGCAGCCGTACTGGATGCACTGGAGAAGCATGACACCGGGGCGACGTTTTTTGATGGTCGCCCCGCTGTTTTTGATGAGGCGGATTTTCCGGCAGTTGCCGTTTATCTCACCGGCGCTGAATACACGGGCGAAGAGCTGGACAGCGATACCTGGCAGGCGGAGCTGCATATCGAAGTTTTCCTGCCTGCTCAGGTGCCGGATTCAGAGCTGGATGCGTGGATGGAG [...]
+ +
+ 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 [...]
+ @m150404_101626_42267_c100807920800000001823174110291514_s1_p0/110513/ccs np:i:25 rq:f:0
+ AAAACTGTACGATAAACGGTACGCTGAGGGCGGAAAAAATCGTCGGGACATTGTAAAGGCGGCGAGCGCGGCTTTCCGCGCCAGCGTGAAAGCAGTGTGGACTGGCCGTCAGGTACCCGTACTGTCACCGTGACCGATGACCATCCTTTGATCGCCAGATAGTGGTGCTTCCGCTGACGTTTCGCGGAAGTAAGCGTACTGTCAGCGGCAGGACAACGTATTCGATGTGTTATCTGAAAGTACTGATGAACGGTGCGGTGATTTATGATGGCGCGGCGAACGAGGCGGTACAGGTGTTCTCCGTATTGTTGACATGCCAGCGGGTCGGGGAAACGTGATCCTGACGTTCACGCTTACGTCCACACGGCATTCGGCAGATATTCCGCCGTATACGTTTGCCAGCGATGTGCAGGTTATGGTGATTAAGAAACAGGCGCTGGGCATCAGCGTGGTCTGAGTGTGTTACAGAGGTTCGTCCGGGAACGGGCGT [...]
+ +
+ 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 [...]
+ @m150404_101626_42267_c100807920800000001823174110291514_s1_p0/111500/ccs np:i:28 rq:f:0
+ TATCCAGACTAATTCACTATCGCCACTTTTATTGGCGATGAAAAGATGTTTCGTGAAGCGTCGACGCTTATAAAAAATGGATATTAATACTGAAACTGAGATCAAGCAAAAGCATTCACTAACCCCTTTCCTGTTTTCCTAATGCACCGGCATTTCGCGGGCGATATTTTCACAGCTATTTCAGGAGTTCAGCATGAACGCTTATTACATTCAGGATCGTCTTGAGGCTCAGAGCTGGCGCGTCACTACCAGCAGCTCGCCGTGAAGAGAAAGAGGCAGAACTGGCAGACGACATGGAAAAGGCCTGCCCAGCACCTGTTTGAATCGCTATGCATCGATCATTTGCAACGCCAGGGGCAGCAAAAATCCATTACCCGTGCGTTTGATGACGATGTTGAGTTTCAGGAGCGCATGGCAGAACACATCGGTACATGGTTGAAACCATTGCTCACCACCAGGTTGATATGATTCAGAGGTATAAAACGAATGA [...]
+ +
+ 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 [...]
+ @m150404_101626_42267_c100807920800000001823174110291514_s1_p0/111715/ccs np:i:24 rq:f:0
+ GCGTCGGATCGCCAACAACATGCCGGAACAGTACGACGAAAAGCCGCAGGTACAGCAGGTAGCGCAGATCATCAACGGTGTGTTCAGCCAGTTACTGGCAACTTTCCGGCGAGCCTGGCTAACCGTGACCAGAACGAAGTGAACGAAATCCGTCGCCAGTGGGTTCTGGCTTTTCGGGAAAACGGGATCACCACGATGGAAGGTTAACGCAGGAATGCGCGTAGCCCGTCGGCAGAATCGACCATTTCTGCCATCACCCGGGCAGTTTGTTGCATGGTGCCGGGAAGAAGCATCCGTTACCGCCGGACTGCCAAACGTCAGCGAGCTGGTTGATATGGTTTACGAGTATTGCCGGAAGCGAGGCCTGTATCCGGATGCGGAGTCTTATCGTGGGAAACAAACGCGCACTACTGGCTGGTTACCAACCTGTATCAGAACATCGGGCCAATGCGCTTACTGATGCGGAATTACGCCGTAAGGCCGCAGATGA [...]
+ +
+ 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 [...]
+ @m150404_101626_42267_c100807920800000001823174110291514_s1_p0/112044/ccs np:i:30 rq:f:0
+ ATATCATTTTACGTTTCTCGTTCAGCTTTTTTATCTAAGTTGGCATTATAAAAAAGCATTGCTTATCAATTTGTTGCAACGAACAGGTCACTATCAGTCAAAATAAAATCATTATTTGATTTCAATTTTGTCCCACTCCCTGCCTCTGTCATCACGATACTGTGATGCCATGGTGTCCGACTTATGCCCGAGAAGATGTTGAGCAAACTTATCGCTTATCTGCTTCTCATAGAGTCTTGCAGACAAACTGCGCAACTCGTGAAAGGTAGGCGGATCCCTTCGAAGGAAAGACCTGATGCTTTTCGTGCGCGCATAAAATACCTTGATACTGTGCCGGATGAAAGCGGTTCGCGACGAGTAGATGCAATTATGGTTTCTCCGCCAAGAATCTCTTTGCATTTATCAAGTGTTTCCTTCATTGATATTCCGAGAGCATCAATATGCAATGCTGTTGGGATGGCAATTTTTACGCCTGTTTTGCTTTGCTCGA [...]
+ +
+ 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 [...]
diff --git a/tests/data/params/SP2C2.json b/tests/data/params/SP2C2.json
new file mode 100644
index 0000000..70d1d5d
--- /dev/null
+++ b/tests/data/params/SP2C2.json
@@ -0,0 +1,1026 @@
+{
+ "ConsensusModelVersion": "3.0.0",
+ "ChemistryName": "S/P2-C2",
+ "ModelForm": "PwSnr",
+ "SnrRanges": [
+ [
+ 4.06761408,
+ 7.87333488
+ ],
+ [
+ 7.56100464,
+ 14.9044018
+ ],
+ [
+ 4.05258036,
+ 6.67833996
+ ],
+ [
+ 6.47991323,
+ 10.7843523
+ ]
+ ],
+ "EmissionParameters": [
+ [
+ [
+ 0.00735664387,
+ 0.00190428659,
+ 0.000128987185,
+ 3.19609285e-05,
+ 0.0579789127,
+ 0.00159365177,
+ 0.000377851288,
+ 2.64641792e-05,
+ 0.925861388,
+ 0.0039544046,
+ 0.000740333577,
+ 4.51157354e-05
+ ],
+ [
+ 0.00268702382,
+ 0.0103554239,
+ 5.5569919e-05,
+ 0.00010710572,
+ 0.0119429479,
+ 0.0349107323,
+ 0.000173873688,
+ 3.71404194e-05,
+ 0.0132184981,
+ 0.925935393,
+ 0.000163937702,
+ 0.000412353133
+ ],
+ [
+ 0.000303779953,
+ 5.76150405e-05,
+ 0.00682147837,
+ 0.00396954594,
+ 0.000590520182,
+ 1.49898804e-05,
+ 0.0623840757,
+ 0.00479826006,
+ 0.000162992201,
+ 0.000111189159,
+ 0.896219743,
+ 0.0245658107
+ ],
+ [
+ 0.000142620524,
+ 3.85177333e-05,
+ 0.00440064256,
+ 0.018046601,
+ 0.000210517258,
+ 2.23325708e-05,
+ 0.0272865144,
+ 0.0538911959,
+ 0.000157354862,
+ 0.000143746285,
+ 0.0491787167,
+ 0.84648124
+ ],
+ [
+ 0.00733096773,
+ 0.00166007937,
+ 0.000121497496,
+ 0.000116125734,
+ 0.0573233988,
+ 0.00126886069,
+ 0.00071151983,
+ 7.74436926e-05,
+ 0.927257837,
+ 0.0023603384,
+ 0.00153974443,
+ 0.000232186399
+ ],
+ [
+ 0.00219335118,
+ 0.0112686045,
+ 4.01328525e-05,
+ 5.02885136e-05,
+ 0.0117893856,
+ 0.0371141169,
+ 1.68691479e-05,
+ 1.56068136e-05,
+ 0.0116461848,
+ 0.925851525,
+ 1.25205575e-05,
+ 1.41414695e-06
+ ],
+ [
+ 0.000117348076,
+ 1.75083299e-05,
+ 0.00297146156,
+ 0.0016269759,
+ 0.000296647296,
+ 4.87166628e-05,
+ 0.0284358458,
+ 0.002344226,
+ 0.000568544223,
+ 0.000237602686,
+ 0.942157699,
+ 0.021177424
+ ],
+ [
+ 9.37972006e-05,
+ 6.24310526e-05,
+ 0.00526664739,
+ 0.0207263945,
+ 0.00012215642,
+ 2.11772913e-05,
+ 0.0320582675,
+ 0.06180119,
+ 0.000243487269,
+ 0.000476247908,
+ 0.0530240115,
+ 0.826104192
+ ],
+ [
+ 0.00314264389,
+ 0.00082820948,
+ 9.08246005e-05,
+ 9.38915756e-05,
+ 0.028554939,
+ 0.000783143672,
+ 0.000364350553,
+ 2.37054476e-05,
+ 0.961214998,
+ 0.00421586002,
+ 0.000391376658,
+ 0.000296057041
+ ],
+ [
+ 0.00119090385,
+ 0.00593803619,
+ 2.03588382e-05,
+ 4.41352391e-05,
+ 0.00628544188,
+ 0.0204138621,
+ 0.000138312951,
+ 6.76020532e-05,
+ 0.00866986949,
+ 0.956464996,
+ 0.000533431456,
+ 0.000233049758
+ ],
+ [
+ 6.43734294e-05,
+ 1.22650033e-05,
+ 0.00210011572,
+ 0.00131543919,
+ 9.48512735e-05,
+ 9.02245873e-06,
+ 0.0243938729,
+ 0.00215317529,
+ 0.00018372826,
+ 3.35949921e-05,
+ 0.950122398,
+ 0.0195171634
+ ],
+ [
+ 3.66710321e-05,
+ 4.51849068e-05,
+ 0.0024483006,
+ 0.010397222,
+ 8.29270369e-05,
+ 1.71244431e-05,
+ 0.0166213186,
+ 0.0346020058,
+ 8.05756611e-05,
+ 0.000443816688,
+ 0.0317772895,
+ 0.903447564
+ ],
+ [
+ 0.00584782932,
+ 0.00152030367,
+ 8.92185665e-05,
+ 8.75578495e-05,
+ 0.0450024718,
+ 0.00128621735,
+ 0.000488191126,
+ 3.73830825e-05,
+ 0.940618603,
+ 0.00388969117,
+ 0.00110426833,
+ 2.82644734e-05
+ ],
+ [
+ 0.00124169992,
+ 0.00586665604,
+ 3.58345575e-05,
+ 7.76586763e-05,
+ 0.00564348936,
+ 0.0178975167,
+ 0.000131182094,
+ 2.75294579e-05,
+ 0.00733345492,
+ 0.961559728,
+ 0.000111068097,
+ 7.41824771e-05
+ ],
+ [
+ 5.36955022e-05,
+ 3.60866503e-05,
+ 0.00270197625,
+ 0.00158018444,
+ 8.86444887e-05,
+ 7.11501847e-06,
+ 0.0271717889,
+ 0.00206535023,
+ 0.000463746178,
+ 0.000180875439,
+ 0.946297025,
+ 0.0193535123
+ ],
+ [
+ 4.54423247e-05,
+ 1.30264171e-05,
+ 0.00201775615,
+ 0.00868651464,
+ 2.93835524e-05,
+ 8.6504974e-06,
+ 0.0146074997,
+ 0.0295302164,
+ 1.74359077e-05,
+ 6.74859902e-06,
+ 0.0306931623,
+ 0.914344164
+ ]
+ ],
+ [
+ [
+ 0.13965274,
+ 0.000214059166,
+ 0.000214059166,
+ 0.000214059166,
+ 0.258968176,
+ 0.000214059166,
+ 0.000214059166,
+ 0.000214059166,
+ 0.599666611,
+ 0.000214059166,
+ 0.000214059166,
+ 0
+ ],
+ [
+ 0.000190616771,
+ 0.0678223351,
+ 0.000190616771,
+ 0.000190616771,
+ 0.000190616771,
+ 0.100087597,
+ 0.000190616771,
+ 0.000190616771,
+ 0.000190616771,
+ 0.830565134,
+ 0.000190616771,
+ 0
+ ],
+ [
+ 0.000101396092,
+ 0.000101396092,
+ 0.0616730324,
+ 0.000101396092,
+ 0.000101396092,
+ 0.000101396092,
+ 0.143805821,
+ 0.000101396092,
+ 0.000101396092,
+ 0.000101396092,
+ 0.793709977,
+ 0
+ ],
+ [
+ 0.000303994885,
+ 0.000303994885,
+ 0.000303994885,
+ 0.1284746,
+ 0.000303994885,
+ 0.000303994885,
+ 0.000303994885,
+ 0.141454447,
+ 0.000303994885,
+ 0.000303994885,
+ 0.000303994885,
+ 0.727334999
+ ],
+ [
+ 0.0433312739,
+ 3.22994963e-05,
+ 3.22994963e-05,
+ 3.22994963e-05,
+ 0.117471222,
+ 3.22994963e-05,
+ 3.22994963e-05,
+ 3.22994963e-05,
+ 0.838939108,
+ 3.22994963e-05,
+ 3.22994963e-05,
+ 0
+ ],
+ [
+ 4.12209605e-05,
+ 0.0329945236,
+ 4.12209605e-05,
+ 4.12209605e-05,
+ 4.12209605e-05,
+ 0.0452292927,
+ 4.12209605e-05,
+ 4.12209605e-05,
+ 4.12209605e-05,
+ 0.921446416,
+ 4.12209605e-05,
+ 0
+ ],
+ [
+ 5.6318833e-05,
+ 5.6318833e-05,
+ 0.0532155899,
+ 5.6318833e-05,
+ 5.6318833e-05,
+ 5.6318833e-05,
+ 0.12387295,
+ 5.6318833e-05,
+ 5.6318833e-05,
+ 5.6318833e-05,
+ 0.822460909,
+ 0
+ ],
+ [
+ 0.000171851328,
+ 0.000171851328,
+ 0.000171851328,
+ 0.0769974228,
+ 0.000171851328,
+ 0.000171851328,
+ 0.000171851328,
+ 0.115058917,
+ 0.000171851328,
+ 0.000171851328,
+ 0.000171851328,
+ 0.806396998
+ ],
+ [
+ 0.0289415541,
+ 3.57312452e-05,
+ 3.57312452e-05,
+ 3.57312452e-05,
+ 0.0863096576,
+ 3.57312452e-05,
+ 3.57312452e-05,
+ 3.57312452e-05,
+ 0.884462938,
+ 3.57312452e-05,
+ 3.57312452e-05,
+ 0
+ ],
+ [
+ 7.76665226e-05,
+ 0.0487889535,
+ 7.76665226e-05,
+ 7.76665226e-05,
+ 7.76665226e-05,
+ 0.0563094047,
+ 7.76665226e-05,
+ 7.76665226e-05,
+ 7.76665226e-05,
+ 0.89428031,
+ 7.76665226e-05,
+ 0
+ ],
+ [
+ 0.000224675996,
+ 0.000224675996,
+ 0.11442169,
+ 0.000224675996,
+ 0.000224675996,
+ 0.000224675996,
+ 0.177555734,
+ 0.000224675996,
+ 0.000224675996,
+ 0.000224675996,
+ 0.706225168,
+ 0
+ ],
+ [
+ 0.000147262818,
+ 0.000147262818,
+ 0.000147262818,
+ 0.0548667631,
+ 0.000147262818,
+ 0.000147262818,
+ 0.000147262818,
+ 0.0766653324,
+ 0.000147262818,
+ 0.000147262818,
+ 0.000147262818,
+ 0.867142539
+ ],
+ [
+ 0.0251062443,
+ 3.11750569e-05,
+ 3.11750569e-05,
+ 3.11750569e-05,
+ 0.0860636051,
+ 3.11750569e-05,
+ 3.11750569e-05,
+ 3.11750569e-05,
+ 0.88858075,
+ 3.11750569e-05,
+ 3.11750569e-05,
+ 0
+ ],
+ [
+ 5.64847834e-05,
+ 0.0293039817,
+ 5.64847834e-05,
+ 5.64847834e-05,
+ 5.64847834e-05,
+ 0.0459491268,
+ 5.64847834e-05,
+ 5.64847834e-05,
+ 5.64847834e-05,
+ 0.924295013,
+ 5.64847834e-05,
+ 0
+ ],
+ [
+ 5.20954226e-05,
+ 5.20954226e-05,
+ 0.0339074593,
+ 5.20954226e-05,
+ 5.20954226e-05,
+ 5.20954226e-05,
+ 0.103213362,
+ 5.20954226e-05,
+ 5.20954226e-05,
+ 5.20954226e-05,
+ 0.862462415,
+ 0
+ ],
+ [
+ 2.41719133e-05,
+ 2.41719133e-05,
+ 2.41719133e-05,
+ 0.0373123704,
+ 2.41719133e-05,
+ 2.41719133e-05,
+ 2.41719133e-05,
+ 0.0666923249,
+ 2.41719133e-05,
+ 2.41719133e-05,
+ 2.41719133e-05,
+ 0.895777757
+ ]
+ ],
+ [
+ [
+ 0.000146474028,
+ 0.0297946523,
+ 0.0803446626,
+ 0.0323153575,
+ 0.000146474028,
+ 0.0181368779,
+ 0.159977298,
+ 0.0152271765,
+ 0.000146474028,
+ 0.244223284,
+ 0.299539822,
+ 0.120001447
+ ],
+ [
+ 0.0754353435,
+ 0.000106711295,
+ 0.108178173,
+ 0.05166508,
+ 0.0659944961,
+ 0.000106711295,
+ 0.235061774,
+ 0.0369961862,
+ 0.0285965147,
+ 0.000106711295,
+ 0.241613261,
+ 0.156139038
+ ],
+ [
+ 0.150889801,
+ 0.0424857824,
+ 0.000318026612,
+ 0.147445837,
+ 0.0393052032,
+ 0.0282810617,
+ 0.000318026612,
+ 0.0807560198,
+ 0.00326633483,
+ 0.214809655,
+ 0.000318026612,
+ 0.291806225
+ ],
+ [
+ 0.140090388,
+ 0.0466498235,
+ 0.0955223418,
+ 0.000146946243,
+ 0.100971439,
+ 0.0170277817,
+ 0.173755469,
+ 0.000146946243,
+ 0.00152457994,
+ 0.141450628,
+ 0.282713657,
+ 0
+ ],
+ [
+ 0.000119247588,
+ 0.0383163304,
+ 0.11255615,
+ 0.0436285288,
+ 0.000119247588,
+ 0.0192856198,
+ 0.175758018,
+ 0.020358817,
+ 0.000119247588,
+ 0.197235316,
+ 0.288470104,
+ 0.104033374
+ ],
+ [
+ 0.0468282051,
+ 3.20346125e-05,
+ 0.0825016476,
+ 0.0378754242,
+ 0.0868836623,
+ 3.20346125e-05,
+ 0.146909879,
+ 0.0191351973,
+ 0.260577625,
+ 3.20346125e-05,
+ 0.213141376,
+ 0.10605088
+ ],
+ [
+ 0.146293011,
+ 0.0331663512,
+ 0.000105430841,
+ 0.0501755794,
+ 0.207187242,
+ 0.0102551561,
+ 0.000105430841,
+ 0.027888217,
+ 0.283407964,
+ 0.0599407043,
+ 0.000105430841,
+ 0.181369481
+ ],
+ [
+ 0.125236617,
+ 0.0361508505,
+ 0.0591068896,
+ 0.000121340743,
+ 0.165565282,
+ 0.00791956686,
+ 0.150064084,
+ 0.000121340743,
+ 0.202982991,
+ 0.0283175644,
+ 0.224413472,
+ 0
+ ],
+ [
+ 0.000210016244,
+ 0.0414240647,
+ 0.101760633,
+ 0.0428484744,
+ 0.000210016244,
+ 0.0179312948,
+ 0.161526364,
+ 0.0189973372,
+ 0.000210016244,
+ 0.240930978,
+ 0.173671163,
+ 0.200279644
+ ],
+ [
+ 0.0495830034,
+ 4.61487199e-05,
+ 0.151014753,
+ 0.067951325,
+ 0.0907268765,
+ 4.61487199e-05,
+ 0.315461425,
+ 0.0277696796,
+ 0.128849485,
+ 4.61487199e-05,
+ 0.0567220636,
+ 0.111782943
+ ],
+ [
+ 0.11555575,
+ 0.0292950248,
+ 0.00014832042,
+ 0.0456759293,
+ 0.15337244,
+ 0.00761339039,
+ 0.00014832042,
+ 0.0203902102,
+ 0.249082062,
+ 0.122098355,
+ 0.00014832042,
+ 0.256471877
+ ],
+ [
+ 0.147130835,
+ 0.0327619952,
+ 0.0756043295,
+ 0.000188145734,
+ 0.212444944,
+ 0.0101329647,
+ 0.114642199,
+ 0.000188145734,
+ 0.294425221,
+ 0.107175814,
+ 0.00530540568,
+ 0
+ ],
+ [
+ 8.22405627e-05,
+ 0.0221237714,
+ 0.037137767,
+ 0.0162121049,
+ 8.22405627e-05,
+ 0.0187609213,
+ 0.080696449,
+ 0.0269716446,
+ 8.22405627e-05,
+ 0.248406873,
+ 0.205991108,
+ 0.343452639
+ ],
+ [
+ 0.049159614,
+ 5.43832178e-05,
+ 0.0514031038,
+ 0.0203847824,
+ 0.0855463843,
+ 5.43832178e-05,
+ 0.0980144614,
+ 0.0239136025,
+ 0.168927456,
+ 5.43832178e-05,
+ 0.158422773,
+ 0.344064673
+ ],
+ [
+ 0.137668134,
+ 0.0267105699,
+ 0.000142351166,
+ 0.0441201525,
+ 0.19166368,
+ 0.0114882132,
+ 0.000142351166,
+ 0.0202277277,
+ 0.273478098,
+ 0.129199413,
+ 0.000142351166,
+ 0.165016958
+ ],
+ [
+ 0.0443720703,
+ 0.011998886,
+ 0.0370775788,
+ 3.30887484e-05,
+ 0.0768170894,
+ 0.00839411198,
+ 0.110338914,
+ 3.30887484e-05,
+ 0.22919549,
+ 0.235978299,
+ 0.245761384,
+ 0
+ ]
+ ]
+ ],
+ "TransitionParameters": [
+ [
+ [
+ -7.36174689,
+ 1.61101289,
+ -0.268464948,
+ 0.0143320448
+ ],
+ [
+ -3.22220388,
+ 0.496986063,
+ -0.181868245,
+ 0.0125555841
+ ],
+ [
+ 2.63396482,
+ -1.49671632,
+ 0.145790372,
+ -0.00463126882
+ ]
+ ],
+ [
+ [
+ -4.29124266,
+ 0.474781729,
+ -0.0691005634,
+ 0.0024944116
+ ],
+ [
+ -5.8759345,
+ 0.769176344,
+ -0.0794793302,
+ 0.0026603066
+ ],
+ [
+ -2.52278775,
+ -0.0673361054,
+ -0.00420963573,
+ 0.000173101656
+ ]
+ ],
+ [
+ [
+ 1.44776405,
+ -1.89806596,
+ 0.230489754,
+ -0.00788373432
+ ],
+ [
+ 3.62328388,
+ -3.16155741,
+ 0.380413687,
+ -0.0139731804
+ ],
+ [
+ -2.4113731,
+ 1.5617699,
+ -0.464222808,
+ 0.0330184761
+ ]
+ ],
+ [
+ [
+ -1.52188949,
+ -0.619888164,
+ 0.0344820232,
+ -0.000466695436
+ ],
+ [
+ 7.25871708,
+ -2.89355725,
+ 0.226545422,
+ -0.00503769654
+ ],
+ [
+ 1.80689962,
+ -0.775311988,
+ 0.00287885444,
+ 0.00212630128
+ ]
+ ],
+ [
+ [
+ -1.58612186,
+ -0.153996667,
+ -0.019362539,
+ 0.00340134003
+ ],
+ [
+ -5.44435394,
+ 1.26703171,
+ -0.267105283,
+ 0.0166778421
+ ],
+ [
+ 2.91356449,
+ -1.87150825,
+ 0.226540613,
+ -0.010786308
+ ]
+ ],
+ [
+ [
+ 2.73738367,
+ -1.52165103,
+ 0.134485954,
+ -0.00364414263
+ ],
+ [
+ -1.96380465,
+ -0.0304224195,
+ -0.00741383211,
+ 0.000655817377
+ ],
+ [
+ -5.65275902,
+ 0.8554781,
+ -0.0747563725,
+ 0.00213841659
+ ]
+ ],
+ [
+ [
+ 6.82408162,
+ -5.00340617,
+ 0.843280331,
+ -0.0477216713
+ ],
+ [
+ 0.922836644,
+ -1.39570517,
+ 0.0615167062,
+ 0.00625866765
+ ],
+ [
+ -7.49471908,
+ 4.08850937,
+ -0.931670394,
+ 0.06135184
+ ]
+ ],
+ [
+ [
+ -2.03471379,
+ -0.183049895,
+ -0.0161448893,
+ 0.00147588228
+ ],
+ [
+ -0.39397695,
+ -0.497506148,
+ -0.0025279351,
+ 0.00199848358
+ ],
+ [
+ -3.14511306,
+ 0.866929002,
+ -0.161209014,
+ 0.00724003881
+ ]
+ ],
+ [
+ [
+ -4.03613088,
+ 0.951183897,
+ -0.1707077,
+ 0.00951914769
+ ],
+ [
+ -2.73727929,
+ -0.0846264685,
+ -0.0762702838,
+ 0.00765998521
+ ],
+ [
+ -0.0115161507,
+ -0.676772845,
+ 0.0186902046,
+ 0.00114061014
+ ]
+ ],
+ [
+ [
+ -4.0450919,
+ 0.19441825,
+ -0.0196572463,
+ 0.000545513282
+ ],
+ [
+ -0.590738944,
+ -0.563607207,
+ 0.0397364279,
+ -0.000835263676
+ ],
+ [
+ -0.650606525,
+ -0.793978644,
+ 0.0672391429,
+ -0.0019742867
+ ]
+ ],
+ [
+ [
+ -7.1216888,
+ 0.704299447,
+ -0.00675682556,
+ -0.00429905236
+ ],
+ [
+ 4.0135083,
+ -2.99745283,
+ 0.330100699,
+ -0.00866415885
+ ],
+ [
+ -2.95159941,
+ 1.52304256,
+ -0.417790358,
+ 0.0301178899
+ ]
+ ],
+ [
+ [
+ -5.71687526,
+ 1.02827154,
+ -0.128832359,
+ 0.00416099843
+ ],
+ [
+ -6.35542589,
+ 1.25709282,
+ -0.1917998,
+ 0.00889679996
+ ],
+ [
+ -1.20027791,
+ 0.152425947,
+ -0.0921121841,
+ 0.00518033583
+ ]
+ ],
+ [
+ [
+ -1.75233077,
+ -0.0165381386,
+ -0.0154477996,
+ 0.00191469353
+ ],
+ [
+ -3.79457085,
+ 0.695703623,
+ -0.170024823,
+ 0.0125082712
+ ],
+ [
+ 2.14044448,
+ -1.41498734,
+ 0.116355694,
+ -0.00281465688
+ ]
+ ],
+ [
+ [
+ -1.89375385,
+ -0.103804215,
+ -0.00397067386,
+ 0.000435442231
+ ],
+ [
+ -4.05701629,
+ 0.431318996,
+ -0.0460802272,
+ 0.0014783096
+ ],
+ [
+ -4.07119813,
+ 0.0340792867,
+ 0.00636890829,
+ -0.000665968456
+ ]
+ ],
+ [
+ [
+ 7.14617037,
+ -5.07757031,
+ 0.837708073,
+ -0.0452627753
+ ],
+ [
+ 1.69236944,
+ -2.28936276,
+ 0.274337077,
+ -0.00888968456
+ ],
+ [
+ -4.60392728,
+ 2.15828049,
+ -0.515604387,
+ 0.0324594302
+ ]
+ ],
+ [
+ [
+ -2.82895825,
+ -0.159891687,
+ 0.0556441946,
+ -0.00321555705
+ ],
+ [
+ 2.92995068,
+ -1.83116699,
+ 0.202125712,
+ -0.00725218663
+ ],
+ [
+ 0.981168958,
+ -0.682236621,
+ 0.0147684255,
+ 0.00146373056
+ ]
+ ]
+ ],
+ "CounterWeight": 3
+}
\ No newline at end of file
diff --git a/tests/python/test_tool_contract.py b/tests/python/test_tool_contract.py
index 30a41cd..917190a 100755
--- a/tests/python/test_tool_contract.py
+++ b/tests/python/test_tool_contract.py
@@ -32,7 +32,7 @@ class TestCCSApp(pbcommand.testkit.PbTestApp):
"pbccs.task_options.min_passes": 3,
"pbccs.task_options.min_zscore": -5,
"pbccs.task_options.max_drop_frac": 0.33,
- "pbccs.task_options.no_polish": True,
+ "pbccs.task_options.polish": False
}
def setUp(self):
diff --git a/tests/unit/TestLoadModels.cpp b/tests/unit/TestLoadModels.cpp
index 1d73655..0ef3f67 100644
--- a/tests/unit/TestLoadModels.cpp
+++ b/tests/unit/TestLoadModels.cpp
@@ -60,8 +60,6 @@ using namespace PacBio::Data; // NOLINT
namespace {
const SNR snr(10, 7, 5, 11);
-const string SP1C1 = "S/P1-C1.1";
-const string SP1C1v2 = "S/P1-C1.2";
const string longTpl =
"GGGCGGCGACCTCGCGGGTTTTCGCTATTTATGAAAATTTTCCGGTTTAAGGCGTTTCCGTTCTTCTTCGTCAT"
@@ -103,7 +101,8 @@ Read MkRead(const string& seq, const SNR& snr, const string& mdl, const vector<u
TEST(LoadModelsTest, SupportedChemistries)
{
- const std::set<std::string> chem = {"P6-C4", "S/P1-C1/beta", "S/P1-C1.1", "S/P1-C1.2"};
+ const std::set<std::string> chem = {"P6-C4", "S/P1-C1/beta", "S/P1-C1.1",
+ "S/P1-C1.2", "S/P1-C1.3", "S/P2-C2"};
const std::set<std::string> supp = SupportedChemistries();
std::set<std::string> diff;
std::set_difference(chem.begin(), chem.end(), supp.begin(), supp.end(),
@@ -135,6 +134,7 @@ TEST(LoadModelsTest, Directory)
ASSERT_TRUE(chems.find("S/P1-C1/beta::Marginal::FromFile") != chems.end());
ASSERT_TRUE(chems.find("S/P1-C1.1::PwSnrA::FromFile") != chems.end());
ASSERT_TRUE(chems.find("S/P1-C1.2::PwSnr::FromFile") != chems.end());
+ ASSERT_TRUE(chems.find("S/P2-C2::PwSnr::FromFile") != chems.end());
// test identity between S/P1-C1/beta and S/P1-C1/beta::Marginal (loaded)
// disabled until S_P1C1Beta is fixed
@@ -183,6 +183,21 @@ TEST(LoadModelsTest, Directory)
EXPECT_NEAR(ai1.LL(), ai2.LL(), 1.0e-5);
}
+
+ // test identity between S/P1-C1.2 and S/P1-C1.2::PwSnr
+ {
+ MonoMolecularIntegrator ai1(longTpl, cfg, snr, "S/P2-C2::PwSnr::Compiled");
+ EXPECT_EQ(State::VALID,
+ ai1.AddRead(MappedRead(MkRead(longRead, snr, "S/P2-C2::PwSnr::Compiled", longPws),
+ StrandType::FORWARD, 0, longTpl.length(), true, true)));
+
+ MonoMolecularIntegrator ai2(longTpl, cfg, snr, "S/P2-C2::PwSnr::FromFile");
+ EXPECT_EQ(State::VALID,
+ ai2.AddRead(MappedRead(MkRead(longRead, snr, "S/P2-C2::PwSnr::FromFile", longPws),
+ StrandType::FORWARD, 0, longTpl.length(), true, true)));
+
+ EXPECT_NEAR(ai1.LL(), ai2.LL(), 1.0e-5);
+ }
}
#if EXTENSIVE_TESTING
@@ -196,9 +211,9 @@ TEST(LoadModelsTest, ModelTiming)
LoadModels(tests::DataDir + "/params");
const size_t nsamp = 100;
- const std::vector<std::string> mdls = {"S/P1-C1/beta::Marginal::FromFile",
- "S/P1-C1.1::PwSnrA::FromFile",
- "S/P1-C1.2::PwSnr::FromFile"};
+ const std::vector<std::string> mdls = {
+ "S/P1-C1/beta::Marginal::FromFile", "S/P1-C1.1::PwSnrA::FromFile",
+ "S/P1-C1.2::PwSnr::FromFile", "S/P2-C2::PwSnr::FromFile"};
for (const auto mdl : mdls) {
MonoMolecularIntegrator ai(longTpl, cfg, snr, mdl);
const auto stime = std::chrono::high_resolution_clock::now();
diff --git a/tests/unit/TestPoaConsensus.cpp b/tests/unit/TestPoaConsensus.cpp
index a2fb219..e8c3263 100644
--- a/tests/unit/TestPoaConsensus.cpp
+++ b/tests/unit/TestPoaConsensus.cpp
@@ -480,7 +480,7 @@ TEST(PoaConsensus, TestVerboseGraphVizOutput)
" label=\"{ { 3 | G } | { 2 | 2 } | { 2.00 | 4.00 } }\"];"
"4[shape=Mrecord, style=\"filled\", fillcolor=\"lightblue\" ,"
" label=\"{ { 4 | G } | { 2 | 2 } | { 2.00 | 6.00 } }\"];"
- "5[shape=Mrecord, label=\"{ { 5 | T } | { 1 | 1 } | { -0.00 | -0.00 } "
+ "5[shape=Mrecord, label=\"{ { 5 | T } | { 1 | 2 } | { -0.00 | -0.00 } "
"}\"];"
"0->2 ;"
"2->3 ;"
@@ -509,7 +509,7 @@ TEST(PoaConsensus, TestLocalStaggered)
// coverage for CCS is (numReads-2) (beginning, end read).
// Application has to provide a sensible minCoverage.
const PoaConsensus* pc = PoaConsensus::FindConsensus(reads, AlignMode::LOCAL, 4);
- plotConsensus(pc, "local-staggered", true);
+ plotConsensus(pc, "local-staggered", false);
EXPECT_EQ("ATAGTGCCGCCAATCTTCCAGTATATACAGCACGGAGTAGCATCACGTACGTACGTCTACACGTAATT", pc->Sequence);
delete pc;
}
@@ -533,6 +533,47 @@ TEST(PoaConsensus, TestLongInsert)
delete pc;
}
+TEST(PoaConsensus, TestSpanningReads)
+{
+ string read1 = "GAAAG";
+ string read2 = "GATAG";
+ vector<string> reads{read1, read1, read1, read2, read2, read2};
+ const PoaConsensus* pc = PoaConsensus::FindConsensus(reads, AlignMode::LOCAL);
+ plotConsensus(pc, "spanning-reads");
+
+ string dot = pc->Graph.ToGraphViz(PoaGraph::VERBOSE_NODES | PoaGraph::COLOR_NODES, pc);
+ // We expect to get spanning reads of 6 for the middle A/T nodes,
+ // but each only has 3 reads passing through.
+ // The PoaGraph doesn't really expose an API, we can only check it
+ // by looking at the GraphViz output.
+
+ // clang-format off
+ string expectedDot =
+ "digraph G {"
+ "rankdir=\"LR\";"
+ "0[shape=Mrecord, label=\"{ { 0 | ^ } | { 0 | 0 } | { 0.00 | 0.00 } }\"];"
+ "1[shape=Mrecord, label=\"{ { 1 | $ } | { 0 | 0 } | { 0.00 | 0.00 } }\"];"
+ "2[shape=Mrecord, style=\"filled\", fillcolor=\"lightblue\" , label=\"{ { 2 | G } | { 6 | 6 } | { 6.00 | 6.00 } }\"];"
+ "3[shape=Mrecord, style=\"filled\", fillcolor=\"lightblue\" , label=\"{ { 3 | A } | { 6 | 6 } | { 6.00 | 12.00 } }\"];"
+ "4[shape=Mrecord, style=\"filled\", fillcolor=\"lightblue\" , label=\"{ { 4 | A } | { 3 | 6 } | { -0.00 | 12.00 } }\"];"
+ "5[shape=Mrecord, style=\"filled\", fillcolor=\"lightblue\" , label=\"{ { 5 | A } | { 6 | 6 } | { 6.00 | 18.00 } }\"];"
+ "6[shape=Mrecord, style=\"filled\", fillcolor=\"lightblue\" , label=\"{ { 6 | G } | { 6 | 6 } | { 6.00 | 24.00 } }\"];"
+ "7[shape=Mrecord, label=\"{ { 7 | T } | { 3 | 6 } | { -0.00 | 12.00 } }\"];"
+ "0->2 ;"
+ "2->3 ;"
+ "3->4 ;"
+ "4->5 ;"
+ "5->6 ;"
+ "6->1 ;"
+ "7->5 ;"
+ "3->7 ;"
+ "}";
+ // clang-format on
+
+ EXPECT_EQ(expectedDot, erase_all_copy(dot, "\n"));
+ delete pc;
+}
+
#if 0
TEST(PoaConsensus, TestMutations)
{
diff --git a/tests/unit/TestTemplate.cpp b/tests/unit/TestTemplate.cpp
index 38f8fe7..3a50c8a 100644
--- a/tests/unit/TestTemplate.cpp
+++ b/tests/unit/TestTemplate.cpp
@@ -332,7 +332,7 @@ TEST(TemplateTest, P6SiteNormalParameters)
auto results = tester.NormalParameters();
EXPECT_EQ(-9.3915588824261888, results.first);
- EXPECT_EQ(26.883352639390957, results.second);
+ EXPECT_EQ(30.392545575324248, results.second);
}
} // namespace anonymous
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/unanimity.git
More information about the debian-med-commit
mailing list