Provided by: pbbarcode_0.8.0-1_amd64 bug

NAME

       pbbarcode - annotate PacBio sequencing reads with barcode information

DESCRIPTION

       The  pbbarcode  package  provides utilities for annotating individual ZMWs directly from a
       bas.h5 file, emitting fast[a|q] files for each barcode, labeling alignments  stored  in  a
       cmp.h5 file, and calling consensus on small amplicons (requires pbdagcon(1))

       At  the  moment,  Barcodes  can  be  scored  in  two different ways: symmetric and paired.
       Symmetric mode supports barcode designs with two identical barcodes on  both  sides  of  a
       SMRTbell,  e.g.,  for  barcodes  (A, B), molecules are labeled as A--A or B--B. The paired
       mode supports designs with two distinct barcodes on each side of the molecule, but neither
       barcode  appears  without  its  mate.  The  minimum  example  is  given with the following
       barcodes: (ALeft, ARight, BLeft, BRight), where the following barcode  sets  are  checked:
       ALeft--ARight, BLeft--BRight.

       It  is  important  to  highlight  that  a barcode FASTA file specifies a list of available
       barcodes to evaluate. Depending on the scoring mode, the barcodes are grouped together  in
       different  ways.  For  instance,  in  the  symmetric  case, the number of possible barcode
       outcomes are simply the number of barcodes that are supplied to the routine in  the  FASTA
       file  (see  below  for  usage)  plus an additional NULL barcode indicating that no barcode
       could be evaluated (denoted by: '--'). Labels like this  (A--A)  are  used  in  the  final
       outputs.  In  the paired mode, the number of possible barcode outcomes are half the number
       of the sequences in the FASTA file plus the NULL barcode. The NULL barcode indicates  that
       no  attempt  was made to score the molecule or it was filtered out by the user's criteria.
       The majority of cases when a molecule is not scored  are  related  to  not  observing  any
       adapters.  If  a  user has executed a "hot-start" run, the user can try the '--scoreFirst'
       parameter to attempt to label the first adapter's barcode. This increases the yield of the
       labeleing procedure at the expense of some probably false positives.

       The  software  is implemented as a standard python package. Barcodes are labeled according
       to the following high-level logic. For each molecule, all adapters  are  found.  For  each
       adapter,  we align (using standard Smith-Watterman alignment) each barcode and its reverse
       complement to flanking sequence of the adapter. If two  complete  flanking  sequences  are
       available,  we  divide  by  2, else 1 if only one flanking sequence was available (average
       score at adapter). This allows the scores across adapters to be on the same scale (chimera
       detection).  Depending  on  the  mode,  we  then  determine which barcode(s) are maximally
       scoring. We store the two maximally scoring barcodes, the sum of  their  alignment  scores
       across  the  adapters.  The  average  barcode  score  then  can be given approximately by:
       total-score/number-of-adapters. At the moment, the alignment parameters are fixed at:

                                          ┌──────────┬───────┐
                                          │type      │ score │
                                          ├──────────┼───────┤
                                          │insertion │ -1    │
                                          ├──────────┼───────┤
                                          │deletion  │ -1    │
                                          ├──────────┼───────┤
                                          │missmatch │ -2    │
                                          ├──────────┼───────┤
                                          │match     │ 2     │
                                          └──────────┴───────┘

   Input and output
   labelZmws
          usage: pbbarcode labelZmws [-h] [--outDir OUTDIR] [--outFofn OUTFOFN]
                 [--adapterSidePad ADAPTERSIDEPAD] [--insertSidePad  INSERTSIDEPAD]  [--scoreMode
                 {symmetric,paired}]       [--maxAdapters       MAXADAPTERS]       [--scoreFirst]
                 [--startTimeCutoff   STARTTIMECUTOFF]   [--nZmws   NZMWS]   [--nProcs    NPROCS]
                 [--saveExtendedInfo] barcode.fasta input.fofn

          Creates a barcode.h5 file from base h5 files.

          positional arguments:
                 barcode.fasta          Input barcode fasta file input.fofn            Input base
                 fofn

          optional arguments:

                 -h, --help
                        show this help message and exit

                 --outDir OUTDIR
                        Where  to  write  the  newly   created   barcode.h5   files.    (default:
                        /home/UNIXHOME/jbullard/projects/software/bioinformatics/tools/pbbarcode/doc)

                 --outFofn OUTFOFN
                        Write to outFofn (default: barcode.fofn)

                 --adapterSidePad ADAPTERSIDEPAD
                        Pad with adapterSidePad bases (default: 4)

                 --insertSidePad INSERTSIDEPAD
                        Pad with insertSidePad bases (default: 4)

                 --scoreMode {symmetric,paired}
                        The mode in which the barcodes should be scored.  (default: symmetric)

                 --maxAdapters MAXADAPTERS
                        Only score the first maxAdapters (default: 20)

                 --scoreFirst
                        Whether to try to score the leftmost barcode in a trace. (default: False)

                 --startTimeCutoff STARTTIMECUTOFF
                        Reads must  start  before  this  value  in  order  to  be  included  when
                        scoreFirst is set. (default: 10.0)

                 --nZmws NZMWS
                        Use the first n ZMWs for testing (default: -1)

                 --nProcs NPROCS
                        How many processes to use (default: 8)

                 --saveExtendedInfo
                        Whether  to  save  extended  information  tothe  barcode.h5  files;  this
                        information is useful  for  debugging  and  chimera  detection  (default:
                        False)

       The  labelZmws  command  takes an input.fofn representing a set of bas.h5 files to operate
       on. Additionally, it takes a barcode.fasta file. Depending on scoreMode,  the  FASTA  file
       will  be  processed  in different ways. Specifically, in paired mode, each two consecutive
       barcodes in the file are considered a set.

       The parameters, adapterSidePad and insertSidePad  represents  how  many  bases  should  be
       considered  on  each  side  of the putative barcode. These parameters are constrained such
       that: |adapterSidePad| + |insertSidePad| + |barcode| < 65.

       Users have the option to specify a different output  location  for  the  various  outputs.
       Specifically,  for  each  bas.h5  file  in  input.fofn,  a  bc.h5  (barcode  hdf5) file is
       generated. These files are listed in the file  outFofn  which  is  typically  just  called
       barcode.fofn. See below for a description of the barcode hdf5 file.

   labelAlignments
          usage: pbbarcode labelAlignments [-h]
                 [--minAvgBarcodeScore   MINAVGBARCODESCORE]   [--minNumBarcodes  MINNUMBARCODES]
                 [--minScoreRatio MINSCORERATIO] barcode.fofn aligned_reads.cmp.h5

          Adds information about barcode alignments to a cmp.h5 file  from  a  previous  call  to
          "labelZmws".

          positional arguments:
                 barcode.fofn           input barcode fofn file aligned_reads.cmp.h5  cmp.h5 file
                 to add barcode labels

          optional arguments:

                 -h, --help
                        show this help message and exit

                 --minAvgBarcodeScore MINAVGBARCODESCORE
                        ZMW Filter: exclude ZMW if average barcode score is less than this  value
                        (default: 0.0)

                 --minNumBarcodes MINNUMBARCODES
                        ZMW  Filter: exclude ZMW if number of barcodes observed is less than this
                        value (default: 1)

                 --minScoreRatio MINSCORERATIO
                        ZMW Filter: exclude ZMWs whose best score divided by the 2nd  best  score
                        is less than this ratio (default: 1.0)

       The  labelAlignments  command  takes  as  input  a  barcode.fofn  computed  from a call to
       labelZMWs and a cmp.h5 file where the barcode information is written to. See below  for  a
       description of the cmp.h5 file additions.

   emitFastqs
          usage: pbbarcode emitFastqs [-h] [--outDir output.dir] [--subreads]
                 [--unlabeledZmws]      [--trim     TRIM]     [--fasta]     [--minMaxInsertLength
                 MINMAXINSERTLENGTH] [--hqStartTime  HQSTARTTIME]  [--minReadScore  MINREADSCORE]
                 [--minAvgBarcodeScore   MINAVGBARCODESCORE]   [--minNumBarcodes  MINNUMBARCODES]
                 [--minScoreRatio MINSCORERATIO] input.fofn barcode.fofn

          Takes a bas.h5 fofn and a barcode.h5 fofn  and  produces  a  fast[a|q]  file  for  each
          barcode.

          positional arguments:
                 input.fofn             input  base  or CCS fofn file barcode.fofn          input
                 barcode.h5 fofn file

          optional arguments:

                 -h, --help
                        show this help message and exit

                 --outDir output.dir output directory to write fastq files (default: /home/
                        UNIXHOME/jbullard/projects/software/bioinformatics/too ls/pbbarcode/doc)

                 --subreads
                        whether to produce fastq files for the subreads;the default is to use the
                        CCS reads. This option onlyapplies when input.fofn has both consensus and
                        raw reads,otherwise the read  type  from  input.fofn  will  be  returned.
                        (default: False)

                 --unlabeledZmws
                        whether  to emit a fastq file for the unlabeled ZMWs.  These are the ZMWs
                        where no adapters are found typically (default: False)

                 --trim TRIM
                        trim off barcodes and any excess constant sequence (default: 20)

                 --fasta
                        whether the files produced should  be  FASTA  files  asopposed  to  FASTQ
                        (default: False)

                 --minMaxInsertLength MINMAXINSERTLENGTH
                        ZMW  Filter:  exclude  ZMW if the longest subreadis less than this amount
                        (default: 0)

                 --hqStartTime HQSTARTTIME
                        ZMW Filter: exclude ZMW if start time of HQ regiongreater than this value
                        (seconds) (default: inf)

                 --minReadScore MINREADSCORE
                        ZMW Filter: exclude ZMW if readScore is less thanthis value (default: 0)

                 --minAvgBarcodeScore MINAVGBARCODESCORE
                        ZMW  Filter: exclude ZMW if average barcode score is less than this value
                        (default: 0.0)

                 --minNumBarcodes MINNUMBARCODES
                        ZMW Filter: exclude ZMW if number of barcodes observed is less than  this
                        value (default: 1)

                 --minScoreRatio MINSCORERATIO
                        ZMW  Filter:  exclude ZMWs whose best score divided by the 2nd best score
                        is less than this ratio (default: 1.0)

       The emitFastqs command takes as input both an input.fofn for the bas.h5 files as well as a
       barcode.fofn  from  a  call to labelZmws. The optional parameter outDir dictates where the
       files will be written. For each detected barcode, a fast[a|q] file will  be  emitted  with
       all of the reads for that barcode. The trim parameter dictates how much of the read should
       be trimmed off. The default parameter for trim is the length  of  the  barcode  (which  is
       stored  in  the barcode hdf5 files). At the moment, all barcodes in the barcode FASTA file
       must be the same length, therefore only a constant trim value is supported.  In  practice,
       one  can  aggressively trim in order to ensure that extra bases aren't left on the ends of
       reads. Finally, the subreads parameter dictates whether subreads or CCS  reads  should  be
       returned  with  the  default being the appropriate reads according to the input file type,
       either CCS or subreads. This parameter is only inspected if the input.fofn  contains  both
       CCS  and  subread  data,  if the input.fofn contains only subread or CCS data then that is
       returned irrespective of the state of the the subreads parameter and a warning is issued.

   consensus
          usage: pbbarcode consensus [-h] [--subsample SUBSAMPLE] [--nZmws NZMWS]
                 [--outDir  OUTDIR]  [--keepTmpDir]   [--ccsFofn   CCSFOFN]   [--nProcs   NPROCS]
                 [--noQuiver]     [--minMaxInsertLength     MINMAXINSERTLENGTH]    [--hqStartTime
                 HQSTARTTIME]      [--minReadScore      MINREADSCORE]       [--minAvgBarcodeScore
                 MINAVGBARCODESCORE]     [--minNumBarcodes    MINNUMBARCODES]    [--minScoreRatio
                 MINSCORERATIO] [--barcode BARCODE [BARCODE ...]]  input.fofn barcode.fofn

          Compute consensus sequences for each barcode.

          positional arguments:
                 input.fofn            input bas.h5 fofn file barcode.fofn           input  bc.h5
                 fofn file

          optional arguments:

                 -h, --help
                        show this help message and exit

                 --subsample SUBSAMPLE
                        Subsample ZMWs (default: 1)

                 --nZmws NZMWS
                        Take n ZMWs (default: -1)

                 --outDir OUTDIR
                        Use this directory to output results (default: .)

                 --keepTmpDir  --ccsFofn  CCSFOFN      Obtain  CCS  data  from ccsFofn instead of
                 input.fofn
                     (default: )

                 --nProcs NPROCS
                        Use nProcs to execute. (default: 16)

                 --noQuiver --minMaxInsertLength MINMAXINSERTLENGTH
                     ZMW Filter: exclude ZMW if the  longest  subreadis  less  than  this  amount
                     (default: 0)

                 --hqStartTime HQSTARTTIME
                        ZMW Filter: exclude ZMW if start time of HQ regiongreater than this value
                        (seconds) (default: inf)

                 --minReadScore MINREADSCORE
                        ZMW Filter: exclude ZMW if readScore is less thanthis value (default: 0)

                 --minAvgBarcodeScore MINAVGBARCODESCORE
                        ZMW Filter: exclude ZMW if average barcode score is less than this  value
                        (default: 0.0)

                 --minNumBarcodes MINNUMBARCODES
                        ZMW  Filter: exclude ZMW if number of barcodes observed is less than this
                        value (default: 1)

                 --minScoreRatio MINSCORERATIO
                        ZMW Filter: exclude ZMWs whose best score divided by the 2nd  best  score
                        is less than this ratio (default: 1.0)

                 --barcode BARCODE [BARCODE ...]
                        Use this to extract consensus for just one barcode.  (default: None)

       The emitFastqs command takes as input both an input.fofn for the bas.h5 files as well as a
       barcode.fofn from a call to labelZmws. The results are a FASTA file with an entry for each
       barcode containing the consensus amplicon sequence. This mode utilizes Quiver and pbdagcon
       to compute consensus.

       In cases where the amplicon is fewer than 2.5k bases, using CCS data is quite helpful. The
       --ccsFofn  allows  one to pass directly the ccs files. In many cases, both the CCS and raw
       basecalls are in the same file  so  you  can  check  by  passing  the  same  parameter  to
       input.fofn as to ccsFofn.

   Dependencies
       The    pbbarcode    package    depends    on    a    standard   pbcore   installation   (‐
       https://github.com/PacificBiosciences/pbcore). If one wishes to use  the  consensus  tool,
       pbdagcon needs to be installed (https://github.com/PacificBiosciences/pbdagcon).

   Barcode HDF5 File
       The  barcode  hdf5 file, bc.h5, represents a simple data store for barcode calls and their
       scores for each ZMW. Generally, a user need not interact with barcode hdf5 files, but  can
       use the results stored in either the resulting cmp.h5 file or fast[a|q] files. The barcode
       hdf5 file contains the following structure:

       /BarcodeCalls/best - (nZMWs, 6)[32-bit integer] dataset with the following columns:
          holeNumber,nAdapters,barcodeIdx1,barcodeScore1,barcodeIdx2,barcodeScore2

       Additionally, the best dataset has the following attributes:

            ┌────────────┬─────────────────────────────────────────────────────────────────┐
            │movieName   │ m120408_042614_richard_c100309392550000001523011508061222_s1_p0 │
            ├────────────┼─────────────────────────────────────────────────────────────────┤
            │columnNames │ holeNumber,nAdapters,barcodeIdx1,barcodeScore1,barcodeIdx2,     │
            │            │ barcodeScore2                                                   │
            └────────────┴─────────────────────────────────────────────────────────────────┘

            │scoreMode   │ [symmetric|paired]                                              │
            ├────────────┼─────────────────────────────────────────────────────────────────┤
            │barcodes    │ 'bc_1', 'bc_2', ...., 'bc_N'                                    │
            └────────────┴─────────────────────────────────────────────────────────────────┘

       The two barcodeIdx1 and barcodeIdx2 columns  are  indices  into  barcodes  attribute.  The
       scoreMode is scoring mode used to align the barcodes. The barcodes attribute correspond to
       the barcode.fasta sequence names.

       Additionally, in some circumstances, it is useful to retain  the  entire  history  of  the
       scoring, i.e., each barcode scored to each adapter across all ZMWs. In oder to retain this
       information, one must call:
          pbbarcode labelZmws --saveExtendedInfo ...

       In this mode,  the  resultant  HDF5  file  will  have  an  additional  dataset  under  the
       BarcodeCalls group, named: all. This dataset has the following format:

       /BarcodeCalls/all - (nbarcodes * nadapters[zmw_i], 4) forall i in 1 ... nZMWs
          `holeNumber, adapterIdx, barcodeIdx, score`

       The  adapterIdx  is the index of the adapter along the molecule, i.e., adapterIdx 1 is the
       first adapter scored.

   Additions to the compare HDF5 (cmp.h5) File
       In addition to the barcode hdf5 file, a call to labelAlignments  will  annotate  a  cmp.h5
       file.  This  annotation  is  stored  in  ways  consistent  with  the  cmp.h5  file format.
       Specifically, a new group:
       /BarcodeInfo/
         ID   (nBarcodeLabels + 1, 1)[32-bit integer]
         Name (nBarcodeLabels + 1, 1)[variable length string]

       In addition to the /BarcodeInfo/ group,  the  key  dataset  which  assigns  alignments  to
       barcodes is located at:

       /AlnInfo/Barcode (nAlignments, 3)[32-bit integer] with the following colums:
          index,count,bestIndex,bestScore,secondBestIndex,secondBestScore

       Here  index  refers to the index into the Name vector, score corresponds to the sum of the
       scores for the barcodes, and finally, count refers to the number of adapters found in  the
       molecule.

                                          December 2015                              PBBARCODE(1)