[med-svn] [bowtie2] 01/04: Imported Upstream version 2.2.9

Alex Mestiashvili malex-guest at moszumanska.debian.org
Thu Apr 28 07:30:19 UTC 2016


This is an automated email from the git hooks/post-receive script.

malex-guest pushed a commit to branch master
in repository bowtie2.

commit cce9c2f9961d60ca0e6a4ec949c380541d28f1ef
Author: Alexandre Mestiashvili <alex at biotec.tu-dresden.de>
Date:   Thu Apr 28 09:25:01 2016 +0200

    Imported Upstream version 2.2.9
---
 MANUAL           |  5 +++++
 MANUAL.markdown  | 10 ++++++++++
 NEWS             |  4 ++++
 VERSION          |  2 +-
 aligner_seed.cpp |  2 --
 blockwise_sa.h   | 21 +++++++++++----------
 bt2_search.cpp   |  4 ++--
 bt2_search.h     |  4 ++--
 diff_sample.h    |  2 +-
 doc/manual.html  | 20 +++++++++++++-------
 10 files changed, 49 insertions(+), 25 deletions(-)

diff --git a/MANUAL b/MANUAL
index 947e8ce..28ae790 100644
--- a/MANUAL
+++ b/MANUAL
@@ -1781,6 +1781,11 @@ sequences) and ignore the rest.
 `bowtie2-build` is verbose by default.  With this option `bowtie2-build` will
 print only error messages.
 
+    --threads <int>
+
+By default `bowtie2-build` is using only one thread. Increasing the number
+of threads will speed up the index building considerably in most cases.
+ 
     -h/--help
 
 Print usage information and quit.
diff --git a/MANUAL.markdown b/MANUAL.markdown
index fd07cfa..1f0d29f 100644
--- a/MANUAL.markdown
+++ b/MANUAL.markdown
@@ -2616,6 +2616,16 @@ sequences) and ignore the rest.
 `bowtie2-build` is verbose by default.  With this option `bowtie2-build` will
 print only error messages.
 
+
+</td></tr><tr><td>
+
+    --threads <int>
+
+</td><td>
+
+By default `bowtie2-build` is using only one thread. Increasing the number
+of threads will speed up the index building considerably in most cases.
+ 
 </td></tr><tr><td>
 
     -h/--help
diff --git a/NEWS b/NEWS
index eb2c0e8..a25813b 100644
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,10 @@ Please report any issues using the Sourceforge bug tracker:
 Version Release History
 =======================
 
+Version 2.2.9 - Apr 22, 2016
+   * Fixed the multiple threads issue for the bowtie2-build.
+   * Fixed a TBB related build issue impacting TBB v4.4.
+
 Version 2.2.8 - Mar 10, 2016
    * Various website updates.
    * Fixed the bowtie2-build issue that made TBB compilation fail.
diff --git a/VERSION b/VERSION
index 23a63f5..a6333e4 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.2.8
+2.2.9
diff --git a/aligner_seed.cpp b/aligner_seed.cpp
index f038848..cbd167b 100644
--- a/aligner_seed.cpp
+++ b/aligner_seed.cpp
@@ -333,8 +333,6 @@ enum {
 	SA_ACTION_TYPE_EDIT         // 6
 };
 
-#define MIN(x, y) ((x < y) ? x : y)
-
 /**
  * Given a read and a few coordinates that describe a substring of the read (or
  * its reverse complement), fill in 'seq' and 'qual' objects with the seed
diff --git a/blockwise_sa.h b/blockwise_sa.h
index b11ad28..2990e2c 100644
--- a/blockwise_sa.h
+++ b/blockwise_sa.h
@@ -213,7 +213,7 @@ public:
 #ifdef WITH_TBB
 ,thread_group_started(false)
 #endif
-    { _randomSrc.init(__seed); reset(); _done = new bool[_nthreads]; }
+    { _randomSrc.init(__seed); reset(); }
     
     ~KarkkainenBlockwiseSA()
     {
@@ -226,7 +226,6 @@ public:
                 delete _threads[tid];
             }
         }
-        delete [] _done;
 #endif
     }
     
@@ -261,6 +260,8 @@ public:
             if(_threads.size() == 0) 
             {
 #endif
+	      _done.resize(_sampleSuffs.size() + 1);
+	      _done.fill(false);
                 _itrBuckets.resize(this->_nthreads);
                 _tparams.resize(this->_nthreads);
                 for(int tid = 0; tid < this->_nthreads; tid++) {
@@ -309,7 +310,7 @@ public:
                 const string fname = _base_fname + "." + number.str() + ".sa";
                 ifstream sa_file(fname.c_str(), ios::binary);
                 if(!sa_file.good()) {
-                    cerr << "Could not open file for reading a reference graph: \"" << fname << "\"" << endl;
+                    cerr << "Could not open file for reading a suffix array: \"" << fname << "\"" << endl;
                     throw 1;
                 }
                 size_t numSAs = readU<TIndexOffU>(sa_file, _bigEndian);
@@ -350,7 +351,7 @@ public:
 
     nextBlock_Worker(const nextBlock_Worker& W): vp(W.vp) {};
     nextBlock_Worker(void *vp_):vp(vp_) {}; 
-    void operator()() {
+    void operator()() const {
 #else
     static void nextBlock_Worker(void *vp) {
 #endif
@@ -477,7 +478,7 @@ private:
 #endif
     EList<pair<KarkkainenBlockwiseSA*, int> > _tparams;
     ELList<TIndexOffU>      _itrBuckets;  /// buckets
-    bool*             _done;        /// is a block processed?
+    EList<bool>             _done;        /// is a block processed?
 };
 
 
@@ -558,7 +559,7 @@ public:
 
 	BinarySorting_worker(const BinarySorting_worker& W): vp(W.vp) {};
 	BinarySorting_worker(void *vp_):vp(vp_) {};
-	void operator()() 
+	void operator()() const
 	{
 #else
 static void BinarySorting_worker(void *vp)
@@ -1001,7 +1002,7 @@ template<typename TStr>
 void KarkkainenBlockwiseSA<TStr>::nextBlock(int cur_block, int tid) {
 #ifndef NDEBUG
     if(this->_nthreads > 1) {
-        assert_lt(tid, this->_itrBuckets.size());
+        assert_lt(tid, (int)this->_itrBuckets.size());
     }
 #endif
     EList<TIndexOffU>& bucket = (this->_nthreads > 1 ? this->_itrBuckets[tid] : this->_itrBucket);
@@ -1011,7 +1012,7 @@ void KarkkainenBlockwiseSA<TStr>::nextBlock(int cur_block, int tid) {
     }
     assert(_built);
     assert_gt(_dcV, 3);
-    assert_leq(cur_block, _sampleSuffs.size());
+    assert_leq(cur_block, (int)_sampleSuffs.size());
     const TStr& t = this->text();
     TIndexOffU len = (TIndexOffU)t.length();
     // Set up the bucket
@@ -1080,7 +1081,7 @@ void KarkkainenBlockwiseSA<TStr>::nextBlock(int cur_block, int tid) {
             }
             if(!last) {
                 // Not the last bucket
-                assert_lt(cur_block, _sampleSuffs.size());
+                assert_lt(cur_block, (int)_sampleSuffs.size());
                 hi = _sampleSuffs[cur_block];
                 zHi.resizeExact(_dcV);
                 zHi.fillZero();
@@ -1090,7 +1091,7 @@ void KarkkainenBlockwiseSA<TStr>::nextBlock(int cur_block, int tid) {
             if(!first) {
                 // Not the first bucket
                 assert_gt(cur_block, 0);
-                assert_leq(cur_block, _sampleSuffs.size());
+                assert_leq(cur_block, (int)_sampleSuffs.size());
                 lo = _sampleSuffs[cur_block-1];
                 zLo.resizeExact(_dcV);
                 zLo.fillZero();
diff --git a/bt2_search.cpp b/bt2_search.cpp
index d28df28..b481f44 100644
--- a/bt2_search.cpp
+++ b/bt2_search.cpp
@@ -2791,7 +2791,7 @@ void get_cpu_and_node(int& cpu, int& node) {
  * - 
  */
 #ifdef WITH_TBB
-void multiseedSearchWorker::operator()() {
+void multiseedSearchWorker::operator()() const {
 #else
 static void multiseedSearchWorker(void *vp) {
 	int tid = *((int*)vp);
@@ -3895,7 +3895,7 @@ static void multiseedSearchWorker(void *vp) {
 }
 
 #ifdef WITH_TBB
-void multiseedSearchWorker_2p5::operator()() {
+void multiseedSearchWorker_2p5::operator()() const {
 #else
 static void multiseedSearchWorker_2p5(void *vp) {
 	int tid = *((int*)vp);
diff --git a/bt2_search.h b/bt2_search.h
index 3ca3feb..3aaf52c 100644
--- a/bt2_search.h
+++ b/bt2_search.h
@@ -30,7 +30,7 @@ class multiseedSearchWorker {
 public:
 	multiseedSearchWorker(const multiseedSearchWorker& W): tid(W.tid) {};
 	multiseedSearchWorker(int id):tid(id) {};
-	void operator()();
+	void operator()() const;
 };
 
 class multiseedSearchWorker_2p5 {
@@ -39,7 +39,7 @@ class multiseedSearchWorker_2p5 {
 public:
 	multiseedSearchWorker_2p5(const multiseedSearchWorker_2p5& W): tid(W.tid) {};
 	multiseedSearchWorker_2p5(int id):tid(id) {};
-	void operator()();
+	void operator()() const;
 
 };
 
diff --git a/diff_sample.h b/diff_sample.h
index 7c7afff..8c1064f 100644
--- a/diff_sample.h
+++ b/diff_sample.h
@@ -696,7 +696,7 @@ public:
 
 	VSorting_worker(const VSorting_worker& W): vp(W.vp) {};
 	VSorting_worker(void *vp_):vp(vp_) {};
-	void operator()() 
+	void operator()() const
 	{
 #else
 static void VSorting_worker(void *vp)
diff --git a/doc/manual.html b/doc/manual.html
index 361e664..bb4b79c 100644
--- a/doc/manual.html
+++ b/doc/manual.html
@@ -168,7 +168,7 @@ Alignment:
 <p>A mismatched base at a high-quality position in the read receives a penalty of -6 by default. A length-2 read gap receives a penalty of -11 by default (-5 for the gap open, -3 for the first extension, -3 for the second extension). A base that matches receives a bonus of +2 be default. Thus, in local alignment mode, if the read is 50 bp long and it matches the reference exactly except for one mismatch at a high-quality position and one length-2 read gap, then the overall score equals t [...]
 <p>The best possible score in local mode equals the match bonus times the length of the read. This happens when there are no differences between the read and the reference.</p>
 <h3 id="valid-alignments-meet-or-exceed-the-minimum-score-threshold">Valid alignments meet or exceed the minimum score threshold</h3>
-<p>For an alignment to be considered "valid" (i.e. "good enough") by Bowtie 2, it must have an alignment score no less than the minimum score threshold. The threshold is configurable and is expressed as a function of the read length. In end-to-end alignment mode, the default minimum score threhsold is <code>-0.6 + -0.6 * L</code>, where <code>L</code> is the read length. In local alignment mdoe, the default minimum score threshold is <code>20 + 8.0 * ln(L)</code>, whe [...]
+<p>For an alignment to be considered "valid" (i.e. "good enough") by Bowtie 2, it must have an alignment score no less than the minimum score threshold. The threshold is configurable and is expressed as a function of the read length. In end-to-end alignment mode, the default minimum score threshold is <code>-0.6 + -0.6 * L</code>, where <code>L</code> is the read length. In local alignment mode, the default minimum score threshold is <code>20 + 8.0 * ln(L)</code>, whe [...]
 <h2 id="mapping-quality-higher-more-unique">Mapping quality: higher = more unique</h2>
 <p>The aligner cannot always assign a read to its point of origin with high confidence. For instance, a read that originated inside a repeat element might align equally well to many occurrences of the element throughout the genome, leaving the aligner with no basis for preferring one over the others.</p>
 <p>Aligners characterize their degree of confidence in the point of origin by reporting a mapping quality: a non-negative integer Q = -10 log10 p, where p is an estimate of the probability that the alignment does not correspond to the read's true point of origin. Mapping quality is sometimes abbreviated MAPQ, and is recorded in the <a href="http://samtools.sourceforge.net/SAM1.pdf">SAM</a> <code>MAPQ</code> field.</p>
@@ -190,7 +190,7 @@ Alignment:
 <p>If Bowtie 2 cannot find a paired-end alignment for a pair, by default it will go on to look for unpaired alignments for the constituent mates. This is called "mixed mode." To disable mixed mode, set the <a href="#bowtie2-options-no-mixed"><code>--no-mixed</code></a> option.</p>
 <p>Bowtie 2 runs a little faster in <code>--no-mixed</code> mode, but will only consider alignment status of pairs per se, not individual mates.</p>
 <h3 id="some-sam-flags-describe-paired-end-properties">Some SAM FLAGS describe paired-end properties</h3>
-<p>The SAM <code>FLAGS</code> field, the second field in a SAM record, has multiple bits that describe the paired-end nature of the read and alignment. The first (least significant) bit (1 in decimal, 0x1 in hexidecimal) is set if the read is part of a pair. The second bit (2 in decimal, 0x2 in hexidecimal) is set if the read is part of a pair that aligned in a paired-end fashion. The fourth bit (8 in decimal, 0x8 in hexidecimal) is set if the read is part of a pair and the other mate in [...]
+<p>The SAM <code>FLAGS</code> field, the second field in a SAM record, has multiple bits that describe the paired-end nature of the read and alignment. The first (least significant) bit (1 in decimal, 0x1 in hexadecimal) is set if the read is part of a pair. The second bit (2 in decimal, 0x2 in hexadecimal) is set if the read is part of a pair that aligned in a paired-end fashion. The fourth bit (8 in decimal, 0x8 in hexadecimal) is set if the read is part of a pair and the other mate in [...]
 <h3 id="some-sam-optional-fields-describe-more-paired-end-properties">Some SAM optional fields describe more paired-end properties</h3>
 <p>The last severeal fields of each SAM record usually contain SAM optional fields, which are simply tab-separated strings conveying additional information about the reads and alignments. A SAM optional field is formatted like this: "XP:i:1" where "XP" is the <code>TAG</code>, "i" is the <code>TYPE</code> ("integer" in this case), and "1" is the <code>VALUE</code>. See the <a href="http://samtools.sourceforge.net/SAM1.pdf">SAM specificati [...]
 <h3 id="mates-can-overlap-contain-or-dovetail-each-other">Mates can overlap, contain, or dovetail each other</h3>
@@ -220,7 +220,7 @@ Reference: GCAGATTATATGAGTCAGCTACGATATTGTTTGGGGTGACACATTACGCGTCTTTGAC</code></pr
 <p>Two alignments for the same individual read are "distinct" if they map the same read to different places. Specifically, we say that two alignments are distinct if there are no alignment positions where a particular read offset is aligned opposite a particular reference offset in both alignments with the same orientation. E.g. if the first alignment is in the forward orientation and aligns the read character at read offset 10 to the reference character at chromosome 3, offset [...]
 <p>Two alignments for the same pair are distinct if either the mate 1s in the two paired-end alignments are distinct or the mate 2s in the two alignments are distinct or both.</p>
 <h3 id="default-mode-search-for-multiple-alignments-report-the-best-one">Default mode: search for multiple alignments, report the best one</h3>
-<p>By default, Bowtie 2 searches for distinct, valid alignments for each read. When it finds a valid alignment, it generally will continue to look for alignments that are nearly as good or better. It will eventually stop looking, either because it exceeded a limit placed on search effort (see <a href="#bowtie2-options-D"><code>-D</code></a> and <a href="#bowtie2-options-R"><code>-R</code></a>) or because it already knows all it needs to know to report an alignment. Information from the b [...]
+<p>By default, Bowtie 2 searches for distinct, valid alignments for each read. When it finds a valid alignment, it generally will continue to look for alignments that are nearly as good or better. It will eventually stop looking, either because it exceeded a limit placed on search effort (see <a href="#bowtie2-options-D"><code>-D</code></a> and <a href="#bowtie2-options-R"><code>-R</code></a>) or because it already knows all it needs to know to report an alignment. Information from the b [...]
 <p>See also: <a href="#bowtie2-options-D"><code>-D</code></a>, which puts an upper limit on the number of dynamic programming problems (i.e. seed extensions) that can "fail" in a row before Bowtie 2 stops searching. Increasing <a href="#bowtie2-options-D"><code>-D</code></a> makes Bowtie 2 slower, but increases the likelihood that it will report the correct alignment for a read that aligns many places.</p>
 <p>See also: <a href="#bowtie2-options-R"><code>-R</code></a>, which sets the maximum number of times Bowtie 2 will "re-seed" when attempting to align a read with repetitive seeds. Increasing <a href="#bowtie2-options-R"><code>-R</code></a> makes Bowtie 2 slower, but increases the likelihood that it will report the correct alignment for a read that aligns many places.</p>
 <h3 id="k-mode-search-for-one-or-more-alignments-report-each">-k mode: search for one or more alignments, report each</h3>
@@ -249,7 +249,7 @@ Reference: GCAGATTATATGAGTCAGCTACGATATTGTTTGGGGTGACACATTACGCGTCTTTGAC</code></pr
 <h2 id="filtering">Filtering</h2>
 <p>Some reads are skipped or "filtered out" by Bowtie 2. For example, reads may be filtered out because they are extremely short or have a high proportion of ambiguous nucleotides. Bowtie 2 will still print a SAM record for such a read, but no alignment will be reported and and the <code>YF:i</code> SAM optional field will be set to indicate the reason the read was filtered.</p>
 <ul>
-<li><code>YF:Z:LN</code>: the read was filtered becuase it had length less than or equal to the number of seed mismatches set with the <a href="#bowtie2-options-N"><code>-N</code></a> option.</li>
+<li><code>YF:Z:LN</code>: the read was filtered because it had length less than or equal to the number of seed mismatches set with the <a href="#bowtie2-options-N"><code>-N</code></a> option.</li>
 <li><code>YF:Z:NS</code>: the read was filtered because it contains a number of ambiguous characters (usually <code>N</code> or <code>.</code>) greater than the ceiling specified with <a href="#bowtie2-options-n-ceil"><code>--n-ceil</code></a>.</li>
 <li><code>YF:Z:SC</code>: the read was filtered because the read length and the match bonus (set with <a href="#bowtie2-options-ma"><code>--ma</code></a>) are such that the read can't possibly earn an alignment score greater than or equal to the threshold set with <a href="#bowtie2-options-score-min"><code>--score-min</code></a></li>
 <li><code>YF:Z:QC</code>: the read was filtered because it was marked as failing quality control and the user specified the <a href="#bowtie2-options-qc-filter"><code>--qc-filter</code></a> option. This only happens when the input is in Illumina's QSEQ format (i.e. when <a href="#bowtie2-options-qseq"><code>--qseq</code></a> is specified) and the last (11th) field of the read's QSEQ record contains <code>1</code>.</li>
@@ -510,14 +510,14 @@ Reference: GCAGATTATATGAGTCAGCTACGATATTGTTTGGGGTGACACATTACGCGTCTTTGAC</code></pr
 <pre><code>-L <int></code></pre>
 </td><td>
 
-<p>Sets the length of the seed substrings to align during <a href="#multiseed-heuristic">multiseed alignment</a>. Smaller values make alignment slower but more senstive. Default: the <a href="#bowtie2-options-sensitive"><code>--sensitive</code></a> preset is used by default, which sets <code>-L</code> to 20 both in <a href="#bowtie2-options-end-to-end"><code>--end-to-end</code></a> mode and in <a href="#bowtie2-options-local"><code>--local</code></a> mode.</p>
+<p>Sets the length of the seed substrings to align during <a href="#multiseed-heuristic">multiseed alignment</a>. Smaller values make alignment slower but more sensitive. Default: the <a href="#bowtie2-options-sensitive"><code>--sensitive</code></a> preset is used by default, which sets <code>-L</code> to 20 both in <a href="#bowtie2-options-end-to-end"><code>--end-to-end</code></a> mode and in <a href="#bowtie2-options-local"><code>--local</code></a> mode.</p>
 </td></tr>
 <tr><td id="bowtie2-options-i">
 
 <pre><code>-i <func></code></pre>
 </td><td>
 
-<p>Sets a function governing the interval between seed substrings to use during <a href="#multiseed-heuristic">multiseed alignment</a>. For instance, if the read has 30 characers, and seed length is 10, and the seed interval is 6, the seeds extracted will be:</p>
+<p>Sets a function governing the interval between seed substrings to use during <a href="#multiseed-heuristic">multiseed alignment</a>. For instance, if the read has 30 characters, and seed length is 10, and the seed interval is 6, the seeds extracted will be:</p>
 <pre><code>Read:      TAGCTACGCTCTACGCTATCATGCATAAAC
 Seed 1 fw: TAGCTACGCT
 Seed 1 rc: AGCGTAGCTA
@@ -940,7 +940,7 @@ Seed 4 rc:                   TTATGCATGA</code></pre>
 <h2 id="sam-output">SAM output</h2>
 <p>Following is a brief description of the <a href="http://samtools.sourceforge.net/SAM1.pdf">SAM</a> format as output by <code>bowtie2</code>. For more details, see the <a href="http://samtools.sourceforge.net/SAM1.pdf">SAM format specification</a>.</p>
 <p>By default, <code>bowtie2</code> prints a SAM header with <code>@HD</code>, <code>@SQ</code> and <code>@PG</code> lines. When one or more <a href="#bowtie2-options-rg"><code>--rg</code></a> arguments are specified, <code>bowtie2</code> will also print an <code>@RG</code> line that includes all user-specified <a href="#bowtie2-options-rg"><code>--rg</code></a> tokens separated by tabs.</p>
-<p>Each subsequnt line describes an alignment or, if the read failed to align, a read. Each line is a collection of at least 12 fields separated by tabs; from left to right, the fields are:</p>
+<p>Each subsequent line describes an alignment or, if the read failed to align, a read. Each line is a collection of at least 12 fields separated by tabs; from left to right, the fields are:</p>
 <ol style="list-style-type: decimal">
 <li><p>Name of read that aligned.</p>
 <p>Note that the <a href="http://samtools.sourceforge.net/SAM1.pdf">SAM specification</a> disallows whitespace in the read name. If the read name contains any whitespace characters, Bowtie 2 will truncate the name at the first whitespace character. This is similar to the behavior of other tools.</p></li>
@@ -1210,6 +1210,12 @@ A string representation of the mismatched reference bases in the alignment. See
 <p><code>bowtie2-build</code> is verbose by default. With this option <code>bowtie2-build</code> will print only error messages.</p>
 </td></tr><tr><td>
 
+<pre><code>--threads <int></code></pre>
+</td><td>
+
+<p>By default <code>bowtie2-build</code> is using only one thread. Increasing the number of threads will speed up the index building considerably in most cases.</p>
+</td></tr><tr><td>
+
 <pre><code>-h/--help</code></pre>
 </td><td>
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/bowtie2.git



More information about the debian-med-commit mailing list