summaryrefslogtreecommitdiff
path: root/sci-biology/vaal
diff options
context:
space:
mode:
Diffstat (limited to 'sci-biology/vaal')
-rw-r--r--sci-biology/vaal/Manifest7
-rw-r--r--sci-biology/vaal/files/vaal-46233_remove-namespace-std.patch911
-rw-r--r--sci-biology/vaal/metadata.xml8
-rw-r--r--sci-biology/vaal/vaal-46233-r2.ebuild47
4 files changed, 973 insertions, 0 deletions
diff --git a/sci-biology/vaal/Manifest b/sci-biology/vaal/Manifest
new file mode 100644
index 000000000000..077dc3dfa2a9
--- /dev/null
+++ b/sci-biology/vaal/Manifest
@@ -0,0 +1,7 @@
+AUX vaal-46233_remove-namespace-std.patch 23667 SHA256 24b54021fe8deb7655162779cbf0d9e9c6ab07dbca806b04085dcf9313d6db7c SHA512 47df9a497541d18d96ec6314288e8a429c1d71030f61f8bc29f1a95292f1f2bf53aedd88a16666c204f3bea051b7521ca13de6d03f52f78fcbc5d1cf24a76c47 WHIRLPOOL c5f868ec2041a9413a353ee89ce3346cd51df1b64920e69b92e61ddfc585a20bd7c53f7473605bb91560b544d5f3f81c8a5468dbc8f4df3555a35d8d50403485
+DIST VAAL_manual.doc 48128 SHA256 08b662105e8db41b33ea5d6626b58d5a5d793b1dd40fdc663a7068d9abacdc83 SHA512 4da21b6559659764e108c118773bd8ed365b67e3a22de52c7c13429979bb765e7f5d05955ce746a7a55e8d3a6baa752ad575289e71dfd7fb5b8b7207f5cff171 WHIRLPOOL 3a7432974921946e28cd037e47b79fd31631f7a7915a96589a8485b84a3296e1e7d8768e84f4f9086b2648e270f9f84f1e73261bb0b492b3fa7a6cc6fe36f175
+DIST vaal-46233.tar.gz 1148052 SHA256 a1c27ae25583c1333c5169bb33a37cf461bc93b1c18c7e49f585c1cdc9e5a131 SHA512 7a6927d06e1788411063d38e446b7e3c93192e4322a33ea652855f72e550f35debcdb970b895f1fb8504411a54d9096f3dcf506faebd33d50eb033937e15a321 WHIRLPOOL e848bcd6b2dd0c0c52142a3d55acef6a98b816e37355d22386bf3a2fac21e1318a821a394ebd5851cd530aa9afb0d178debc3f74638ee0d0820209a0f432f59f
+EBUILD vaal-46233-r2.ebuild 914 SHA256 745ad1ca1c2bc0c739f3f027cd64916f8bb9ac4d0a08ef841fa6cf68fa5117b9 SHA512 134814f2f2c6fe73a6bf31eb466b8f1736d583cf92518382a7e0e0e1b04620b4f8ce6680871b3c2a53e018e25912724113755aac46a1cc14d13b575477768844 WHIRLPOOL 0d2e7dbf8a9374effbc1b0a364bd555996571ab41d2680a5b39d1ed5cebf2648a5f3f939a4740f2efc4a60a7213aaa3f61267146d887fcbb062bc3ce3113208f
+MISC ChangeLog 3374 SHA256 82ff9009dad0139bdbd1bd7545c7a6fab2aa6f7eace794716b9ea52eab4b29a6 SHA512 a3444503e92e518d42aa98b0a3a7b7da1834a87e06b5ee63d470513b646b6032b193082f423df34354060e97671ec96f3cf7649307cc73e2198aa618dcd60bc8 WHIRLPOOL 63ed0cef96e4a375aab84d7e402bb317c088bd9faa041ad1c271e59f3ea1b02f427955a38cef11ee2521d5931272ad56298fa811d61b1baf066499929bdd1487
+MISC ChangeLog-2015 2681 SHA256 3a7d489318b1bf9ba91a9efa3eb116011bf80c84b6c1e28544d3ed556e20490b SHA512 d508d48c7ed2f65219275f70720df978e3874b430b64aaed3833a6aae7821e0d5f3d5c0cc5478033cec30c533e3c6cfddbc1f5da48be797ce927ace0a70ed99d WHIRLPOOL 7e6ff98b96049a0cc09c72eb8a30f577257f26995351c3095dbe9d71f683466efeebde6bfd012b0d7d398e044c9f3187faf29f35f35dbba0624d3cc61cc029b4
+MISC metadata.xml 267 SHA256 b3535fccca0fc8511c1245214c1a7c105447b35f21093bda132991874ce82d48 SHA512 91ab266d9ab24401bc0fec759c5b6cfcf44a3c5669fc31c7301d79770839bb5dfa0e155d949392ef06176b4a0b2c32b91b1b54b0027f972db61f0a5e54644403 WHIRLPOOL d841a2f928c50434f2e8c65f583ea3aa2d04e5cebd664b1531ab5373260f735219131991000bbb2b21aa3add05dcdce29548b78eac8d8c0eced6dc5505b64e13
diff --git a/sci-biology/vaal/files/vaal-46233_remove-namespace-std.patch b/sci-biology/vaal/files/vaal-46233_remove-namespace-std.patch
new file mode 100644
index 000000000000..c3c3ec032481
--- /dev/null
+++ b/sci-biology/vaal/files/vaal-46233_remove-namespace-std.patch
@@ -0,0 +1,911 @@
+Remove 'using namespace std' causing massive havoc with newly
+introduced std::align in GCC-5. Fix bug
+https://bugs.gentoo.org/show_bug.cgi?id=568438
+
+--- vaal-46233/src/efasta/EfastaTools.cc
++++ vaal-46233/src/efasta/EfastaTools.cc
+@@ -18,6 +18,8 @@
+ #include "math/Functions.h"
+ #include "math/Array.h"
+
++using std::set;
++
+ #define Err(message) \
+ { cout << message << endl << "\nInvalid.\n" << endl; \
+ TracebackThisProcess( ); }
+--- vaal-46233/src/Equiv.cc
++++ vaal-46233/src/Equiv.cc
+@@ -9,6 +9,8 @@
+ #include "Equiv.h"
+ #include "Vec.h"
+
++using std::swap;
++
+ bool equivalence_relation::equiv(int a, int b) const
+ { if ( a == b ) return true;
+ int c = a;
+--- vaal-46233/src/FastaFilestream.cc
++++ vaal-46233/src/FastaFilestream.cc
+@@ -13,6 +13,8 @@
+
+ #include <strstream>
+
++using std::string;
++
+ template <typename vecT, typename seqT, typename convT, typename verifT>
+ FastaFilestream<vecT,seqT,convT,verifT>::FastaFilestream( const String& filename,
+ FastaNameParser* name_parser )
+--- vaal-46233/src/FastaFilestreamPreview.cc
++++ vaal-46233/src/FastaFilestreamPreview.cc
+@@ -11,6 +11,8 @@
+
+ #include <algorithm>
+
++using std::streamoff;
++
+ FastaFilestreamPreview::FastaFilestreamPreview(istream& filestream)
+ : max_sequence_size_(0), start_offset_(0)
+ {
+--- vaal-46233/src/FastaFilestreamPreview.h
++++ vaal-46233/src/FastaFilestreamPreview.h
+@@ -12,6 +12,8 @@
+
+ #include "Vec.h"
+
++using std::streampos;
++
+ // FastaFilestreamPreview understands just enough about the fasta
+ // format to be able to count the number of sequences in the specified
+ // filestream and to know where each sequence starts in that filestream.
+--- vaal-46233/src/Fastavector.cc
++++ vaal-46233/src/Fastavector.cc
+@@ -14,6 +14,8 @@
+ #include <istream>
+ #include <string>
+
++using std::max;
++
+ // Split this into chunks, separated by gaps ('n'), and return each chunk as a
+ // gapless fastavector.
+ // TODO: generalize this into a templatized STL algorithm.
+--- vaal-46233/src/Fastavector.h
++++ vaal-46233/src/Fastavector.h
+@@ -24,6 +24,9 @@
+ #include <iostream>
+ #include <unistd.h>
+
++using std::string;
++using std::istringstream;
++
+ typedef std::tuple<String, int, int> FastaRegion;
+
+ class fastaindex {
+--- vaal-46233/src/FetchReads.cc
++++ vaal-46233/src/FetchReads.cc
+@@ -36,6 +36,8 @@
+ #include "Qualvector.h"
+ #include "random/Random.h"
+
++using std::istringstream;
++
+ // Heuristic constants:
+
+ namespace
+--- vaal-46233/src/feudal/BaseVec.cc
++++ vaal-46233/src/feudal/BaseVec.cc
+@@ -21,6 +21,7 @@
+ using std::ostream;
+ using std::cout;
+ using std::endl;
++using std::max_element;
+
+ // Cap: in a given basevector, replace any sequence of N > n identical
+ // bases by n of the same base.
+--- vaal-46233/src/graph/Digraph.cc
++++ vaal-46233/src/graph/Digraph.cc
+@@ -16,6 +16,8 @@
+ #include "graph/Digraph.h"
+ #include "math/Functions.h"
+
++using std::make_pair;
++
+ Bool digraph::HasEdge( int v, int w ) const {
+ return find( from_[v].begin(), from_[v].end(), w ) != from_[v].end();
+ }
+--- vaal-46233/src/graph/DigraphTemplate.h
++++ vaal-46233/src/graph/DigraphTemplate.h
+@@ -34,6 +34,8 @@
+ #include "graph/Digraph.h"
+ #include <cstddef>
+
++using std::make_pair;
++
+ template<class E> vec<int> digraphE<E>::EdgesConnectedTo( const vec<int>& v ) const
+ { vec<int> G = VerticesConnectedTo(v), e;
+ for ( int x = 0; x < G.isize( ); x++ )
+--- vaal-46233/src/IndexedAlignmentPlusVector.cc
++++ vaal-46233/src/IndexedAlignmentPlusVector.cc
+@@ -9,6 +9,8 @@
+ #include "IndexedAlignmentPlusVector.h"
+ #include "VecAlignmentPlus.h"
+
++using std::streamoff;
++
+ // These strings are at the head of the vector and index files for verification purposes.
+
+ const String VecAlignmentPlusHeaderIO::mStrVectorHeader( "alignment_plus vector V.2\n" );
+--- vaal-46233/src/IndexedAlignmentPlusVector.h
++++ vaal-46233/src/IndexedAlignmentPlusVector.h
+@@ -15,6 +15,7 @@
+
+ #include "Alignment.h"
+
++using std::streampos;
+
+ // This class encapsulates the header information for both vectors and indices.
+
+--- vaal-46233/src/kmers/kmer_parcels/KmerParcelsBuilder.cc
++++ vaal-46233/src/kmers/kmer_parcels/KmerParcelsBuilder.cc
+@@ -10,6 +10,7 @@
+ #include "kmers/KmerParcels.h"
+ #include "system/WorklistN.h"
+
++using std::fixed;
+
+ inline String Tag(String S = "KPs") { return Date() + " (" + S + "): "; }
+
+--- vaal-46233/src/kmers/kmer_parcels/KmerParcelsClasses.h
++++ vaal-46233/src/kmers/kmer_parcels/KmerParcelsClasses.h
+@@ -6,6 +6,9 @@
+ // Institute is not responsible for its use, misuse, or functionality. //
+ ///////////////////////////////////////////////////////////////////////////////
+
++using std::hex;
++using std::dec;
++
+ // ---------------------------------
+ // NaifTimer
+ // ---------------------------------
+--- vaal-46233/src/kmers/kmer_parcels/KmerParcelsStatistics.h
++++ vaal-46233/src/kmers/kmer_parcels/KmerParcelsStatistics.h
+@@ -10,7 +10,7 @@
+ #ifndef KMERS__KMER_PARCELS__KMER_PARCELS_STATISTICS_H
+ #define KMERS__KMER_PARCELS__KMER_PARCELS_STATISTICS_H
+
+-
++using std::map;
+
+ // --------------------------------------
+ // MapOfCounters
+--- vaal-46233/src/layout/ContigActualloc.h
++++ vaal-46233/src/layout/ContigActualloc.h
+@@ -17,6 +17,8 @@
+ #include "system/Crash.h"
+ #include "Misc.h"
+
++using std::set;
++using std::map;
+
+ //
+ // Class contig_actualloc
+--- vaal-46233/src/lookup/ImperfectLookup.h
++++ vaal-46233/src/lookup/ImperfectLookup.h
+@@ -52,6 +52,8 @@
+ #include "lookup/AlignCollector.h"
+ #include "solid/Solid.h"
+
++using std::unique_ptr;
++
+ class TaskTimer;
+
+
+@@ -534,7 +536,7 @@
+ aligns.resize( nqueries );
+ }
+
+- auto_ptr<TaskTimer> t1, t2;
++ unique_ptr<TaskTimer> t1, t2;
+
+ if ( m_instr_level & IO_TIMER != 0 ) t1.reset( new TaskTimer() );
+ if ( m_instr_level & CPU_TIMER != 0 ) t2.reset( new TaskTimer() );
+--- vaal-46233/src/lookup/LookAlign.cc
++++ vaal-46233/src/lookup/LookAlign.cc
+@@ -29,6 +29,8 @@
+ #include "random/Random.h"
+ #include "system/ParsedArgs.h"
+
++using std::istrstream;
++
+ String QUERY("QUERY");
+
+ void look_align::ResetFromAlign(const align & al, const basevector & b1,
+--- vaal-46233/src/lookup/LookAlignFinder.h
++++ vaal-46233/src/lookup/LookAlignFinder.h
+@@ -12,6 +12,8 @@
+ #include "lookup/LookAlign.h"
+ #include "Vec.h"
+
++using std::set;
++
+ /**
+ Class: LookAlignFinder
+
+--- vaal-46233/src/lookup/LookAlignSort.h
++++ vaal-46233/src/lookup/LookAlignSort.h
+@@ -15,6 +15,8 @@
+
+ #include <functional>
+
++using std::set;
++
+ /// Read in look_aligns from file, sort, and load into vecs
+ /// \param fname name of look_align text file
+ /// \param aligns vector into which to put the alignments
+--- vaal-46233/src/lookup/LookupTable.h
++++ vaal-46233/src/lookup/LookupTable.h
+@@ -18,6 +18,8 @@
+
+ #include <set>
+
++using std::set;
++
+ typedef pair<unsigned int, unsigned int> LocSeq;
+
+ ///
+--- vaal-46233/src/lookup/QueryLookupTableCore.cc
++++ vaal-46233/src/lookup/QueryLookupTableCore.cc
+@@ -456,6 +456,9 @@
+ #include "system/ParsedArgs.h"
+ #include "system/file/FileReader.h"
+
++using std::istrstream;
++using std::less_equal;
++
+ #define ABORT(MSG) \
+ { out << MSG << " Abort." << endl << endl; \
+ exit(1); }
+--- vaal-46233/src/lookup/ShortQueryLookup.cc
++++ vaal-46233/src/lookup/ShortQueryLookup.cc
+@@ -32,6 +32,8 @@
+ #include "lookup/AlignCollector.h"
+ #include "lookup/ImperfectLookup.h"
+
++using std::ios_base;
++
+ // Run an alignment processing chain: seqs -> look -> receiver -> aligns
+ // That is, look turns seqs into hits, which receiver accepts
+ // and turns into alignments which are passed to aligns. The
+--- vaal-46233/src/Map.h
++++ vaal-46233/src/Map.h
+@@ -21,7 +21,7 @@
+ #include <map>
+ #include <ext/hash_map>
+ using namespace __gnu_cxx;
+-
++using std::map;
+
+ ///Return true if k is a key in map m
+ template<class Key, class Value, typename Cmp>
+--- vaal-46233/src/math/Array.h
++++ vaal-46233/src/math/Array.h
+@@ -12,6 +12,9 @@
+ #include "CoreTools.h"
+ #include "Vec.h"
+
++using std::map;
++using std::fill;
++
+ // ==============================================================================
+ // A fixed-size simple c-style 2D array that allocates faster than vec< vec<T> >
+ // The elements are uninitialized.
+--- vaal-46233/src/math/Functions.cc
++++ vaal-46233/src/math/Functions.cc
+@@ -10,8 +10,8 @@
+ #include "STLExtensions.h"
+ #include "math/Functions.h"
+
+-
+-
++using std::isfinite;
++using std::make_pair;
+
+ /* CombineNormalDistribution Filipe Ribeiro 2009-06-22
+ *
+--- vaal-46233/src/math/Functions.h
++++ vaal-46233/src/math/Functions.h
+@@ -14,6 +14,10 @@
+ #include <cmath>
+ #include <numeric>
+
++using std::min;
++using std::cerr;
++using std::swap;
++
+ // ===========================================================================
+ //
+ // Min functions
+--- vaal-46233/src/math/HoInterval.cc
++++ vaal-46233/src/math/HoInterval.cc
+@@ -10,6 +10,8 @@
+ #include "math/HoInterval.h"
+ #include "STLExtensions.h"
+
++using std::make_pair;
++
+ bool ho_interval::Merge(const ho_interval & o) {
+ if (!Meets(*this,o)) return false;
+ *this = Span(*this, o);
+--- vaal-46233/src/math/HoInterval.h
++++ vaal-46233/src/math/HoInterval.h
+@@ -14,6 +14,8 @@
+ #include "feudal/MasterVec.h"
+ #include "feudal/SerfVec.h"
+
++using std::max;
++
+ /// Class: ho_interval
+ /// A half-open interval [a, b).
+ class ho_interval {
+--- vaal-46233/src/PackAlign.h
++++ vaal-46233/src/PackAlign.h
+@@ -133,6 +133,8 @@
+ #include "pairwise_aligners/Mutmer.h"
+ #include "feudal/BinaryStream.h"
+
++using std::make_pair;
++
+ const int Bits2 = 3, Bits3 = 7, Bits4 = 15, Bits10 = 1023, Bits12 = 4095,
+ Bits16 = 65535;
+
+--- vaal-46233/src/pairwise_aligners/MakeAlignsMethod.cc
++++ vaal-46233/src/pairwise_aligners/MakeAlignsMethod.cc
+@@ -19,6 +19,9 @@
+ #include "pairwise_aligners/AlignFromMutmers.h"
+ #include "pairwise_aligners/SmithWatBandedA.h"
+
++using std::map;
++using std::set;
++
+ // If there's a perfect match of length at least perf but we produced no proper
+ // alignment, use banded Smith-Waterman to create one.
+
+--- vaal-46233/src/pairwise_aligners/MatchList.cc
++++ vaal-46233/src/pairwise_aligners/MatchList.cc
+@@ -9,6 +9,8 @@
+
+ #include "pairwise_aligners/MatchList.h"
+
++using std::max;
++
+ bool MatchList::FindMatchInSorted( const int id1, const Match& newMatch ) const
+ {
+ const vec<Match>& sortedMatches = m_sortedMatches[id1];
+--- vaal-46233/src/pairwise_aligners/SuffixTree.h
++++ vaal-46233/src/pairwise_aligners/SuffixTree.h
+@@ -23,6 +23,8 @@
+ #include <list>
+ #include <string>
+
++using std::list;
++
+ /**
+ * Implementation of a suffix tree for basevectors.
+ * This is a data structure for exact (sub)string matching.
+--- vaal-46233/src/paths/AlignHyperKmerPath.cc
++++ vaal-46233/src/paths/AlignHyperKmerPath.cc
+@@ -23,6 +23,9 @@
+ #include "paths/KmerBaseBroker.h"
+ #include "paths/KmerPath.h"
+
++using std::ostringstream;
++using std::set;
++
+ // Function: AlignHyperKmerPath
+ //
+ // AlignHyperKmerPath takes a HyperKmerPath h, whose KmerPath edges are assumed
+--- vaal-46233/src/paths/AlignSeqsToHyper.cc
++++ vaal-46233/src/paths/AlignSeqsToHyper.cc
+@@ -26,6 +26,7 @@
+ #include "paths/ReadsToPathsCoreX.h"
+ #include "paths/SeqOnHyper.h"
+
++using std::multimap;
+
+ // Local class: simple_align
+ //
+--- vaal-46233/src/paths/HyperKmerPath.cc
++++ vaal-46233/src/paths/HyperKmerPath.cc
+@@ -19,6 +19,8 @@
+ #include "paths/HyperKmerPath.h"
+ #include "paths/KmerBaseBroker.h"
+
++using std::ostrstream;
++using std::ends;
+
+ void HyperKmerPath::ReduceLoops( )
+ { for ( int v = 0; v < N( ); v++ )
+--- vaal-46233/src/paths/KmerBaseBroker.h
++++ vaal-46233/src/paths/KmerBaseBroker.h
+@@ -20,6 +20,8 @@
+ #include <algorithm> // for set_union
+ #include <map>
+
++using std::map;
++
+ /**
+ Class: KmerBaseBrokerTemplate
+
+--- vaal-46233/src/paths/KmerPath.h
++++ vaal-46233/src/paths/KmerPath.h
+@@ -22,6 +22,8 @@
+ #include "HashSimple.h"
+ #include "graph/Digraph.h"
+
++using std::make_pair;
++
+ class KmerPathLoc; // forward declaration
+
+ /**
+--- vaal-46233/src/paths/KmerPathInterval.h
++++ vaal-46233/src/paths/KmerPathInterval.h
+@@ -8,6 +8,8 @@
+ #include "CommonSemanticTypes.h"
+ #include "feudal/BinaryStreamTraits.h"
+
++using std::max;
++
+ // Portability note: endianness
+ // The implementations here would need to be changed for big endian architectures.
+
+@@ -285,6 +287,12 @@
+ Models <tagged read path interval>.
+ */
+ // TODO: potentially dangerous truncation of index by PathId, ReadId
++template<class TAG>
++void Contains( const vec<TAG>& segs, kmer_id_t index, vec<longlong>& answer, bool append = false, int cap = -1 );
++
++template<class TAG>
++void Contains( const vec<TAG>& segs, KmerPathInterval rpi, vec<longlong>& answer, bool append = false, int cap = -1 );
++
+ class tagged_rpint {
+
+ public: /* PUBLIC METHODS */
+@@ -362,11 +370,11 @@
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, kmer_id_t index,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, KmerPathInterval rpi,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend longlong Instance( const vec<TAG>& segs, kmer_id_t k );
+@@ -489,11 +497,11 @@
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, kmer_id_t index,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, KmerPathInterval rpi,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend longlong Instance( const vec<TAG>& segs, kmer_id_t k );
+@@ -620,11 +628,11 @@
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, kmer_id_t index,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend void Contains( const vec<TAG>& segs, KmerPathInterval rpi,
+- vec<longlong>& answer, bool append = false, int cap = -1 );
++ vec<longlong>& answer, bool append, int cap );
+
+ template<class TAG>
+ friend kmer_id_t Instance( const vec<TAG>& segs, kmer_id_t k );
+--- vaal-46233/src/paths/ReadsToPathsCoreX.cc
++++ vaal-46233/src/paths/ReadsToPathsCoreX.cc
+@@ -20,6 +20,8 @@
+ #include "paths/MakeAlignsPathsParallelX.h"
+ #include "paths/ReadsToPathsCoreX.h"
+
++using std::map;
++
+ static inline
+ String Tag(String S = "RTPCX") { return Date() + " (" + S + "): "; }
+
+--- vaal-46233/src/paths/SuperBaseVector.h
++++ vaal-46233/src/paths/SuperBaseVector.h
+@@ -10,6 +10,8 @@
+ #include <numeric>
+ #include <functional>
+
++using std::mem_fun_ref;
++
+ /// A simple class which holds a series of basevectors with
+ /// (possibly negative) gaps between them. This is what a
+ /// KmerPath logically maps to in sequence space. The function
+--- vaal-46233/src/polymorphism/VAAL2.cc
++++ vaal-46233/src/polymorphism/VAAL2.cc
+@@ -42,7 +42,7 @@
+ #include "feudal/BinaryStream.h"
+ #include "feudal/VirtualMasterVec.h"
+
+-using namespace std;
++
+
+ // Trim reads so that they contain only kmers in the unipaths.
+
+--- vaal-46233/src/polymorphism/VAAL3.cc
++++ vaal-46233/src/polymorphism/VAAL3.cc
+@@ -29,6 +29,8 @@
+ #include "polymorphism/VAALTools.h"
+ #include "solexa/SolexaTools.h"
+
++using std::ostringstream;
++
+ int main( int argc, char *argv[] )
+ {
+ RunTime( );
+--- vaal-46233/src/PrintAlignment.h
++++ vaal-46233/src/PrintAlignment.h
+@@ -14,6 +14,8 @@
+ #include "CoreTools.h"
+ #include "Qualvector.h"
+
++using std::ostringstream;
++
+ void PrintBlanks( ostream& out, int n );
+
+ template<class BASEVEC>
+--- vaal-46233/src/Qualvector.cc
++++ vaal-46233/src/Qualvector.cc
+@@ -10,6 +10,8 @@
+ #include "FastIfstream.h"
+ #include "Qualvector.h"
+
++using std::istrstream;
++
+ /// \file
+ /// \ingroup grp_quals
+ /// \copydoc Qualvector.h
+--- vaal-46233/src/SeqInterval.cc
++++ vaal-46233/src/SeqInterval.cc
+@@ -9,6 +9,8 @@
+ #include "SeqInterval.h"
+ #include "Vec.h"
+
++using std::max;
++using std::min;
+
+ /*
+ * seq_interval
+--- vaal-46233/src/SeqInterval.h
++++ vaal-46233/src/SeqInterval.h
+@@ -14,7 +14,9 @@
+ #include <algorithm>
+ #include <iostream>
+
+-using namespace std;
++using std::binary_function;
++using std::ostream;
++using std::istream;
+
+ /*
+ * class seq_interval
+--- vaal-46233/src/Set.h
++++ vaal-46233/src/Set.h
+@@ -16,7 +16,7 @@
+ #include <set>
+ #include "CoreTools.h"
+
+-using namespace std;
++using std::set;
+
+ template<class T> bool Member( const set<T>& the_set, const T& value )
+ { return the_set.find(value) != the_set.end( ); } // Breaks cxx
+--- vaal-46233/src/ShortVector.h
++++ vaal-46233/src/ShortVector.h
+@@ -14,6 +14,8 @@
+ #include "system/Types.h"
+ #include "feudal/BinaryStream.h"
+
++using std::uninitialized_fill_n;
++
+ // ================================================================================
+ //
+ // A shortvector holds a list of up to 255 things of any type T.
+--- vaal-46233/src/solexa/FourBase2.h
++++ vaal-46233/src/solexa/FourBase2.h
+@@ -15,6 +15,10 @@
+ #include "feudal/MasterVec.h"
+ #include "feudal/SerfVec.h"
+
++using std::max_element;
++using std::min_element;
++using std::accumulate;
++
+ class four_base2 {
+
+ public:
+--- vaal-46233/src/solexa/FourBase.cc
++++ vaal-46233/src/solexa/FourBase.cc
+@@ -9,6 +9,9 @@
+
+ #include "solexa/FourBase.h"
+
++using std::string;
++using std::istringstream;
++
+ int four_base::Call( ) const
+ {
+ int result = 0;
+--- vaal-46233/src/solexa/FourBase.h
++++ vaal-46233/src/solexa/FourBase.h
+@@ -16,6 +16,8 @@
+ #include "feudal/MasterVec.h"
+ #include "feudal/SerfVec.h"
+
++using std::max;
++
+ /*
+ Class: four_base
+
+--- vaal-46233/src/solexa/SolexaMetrics.h
++++ vaal-46233/src/solexa/SolexaMetrics.h
+@@ -42,6 +42,8 @@
+ #include "CommonSemanticTypes.h"
+ #include <map>
+
++using std::map;
++
+ /// Definition of general macros.
+
+ class solexa_metric_db {
+--- vaal-46233/src/solexa/SolexaTools.cc
++++ vaal-46233/src/solexa/SolexaTools.cc
+@@ -20,6 +20,8 @@
+ #include "FastaFileset.h"
+ #include "util/BaitMap.h"
+
++using std::ostringstream;
++
+ void SolexaPredictorParameters::SetFromFile(const String & fname) {
+ Ifstream(is, fname);
+ String params = Slurp(is);
+--- vaal-46233/src/STLExtensions.h
++++ vaal-46233/src/STLExtensions.h
+@@ -9,7 +9,7 @@
+ #ifndef STLEXTENSIONS_H
+ #define STLEXTENSIONS_H
+
+-using namespace std;
++
+
+ #include <functional>
+ #include <vector>
+@@ -21,6 +21,13 @@
+ #include "feudal/BinaryStream.h"
+ #include "system/StaticAssert.h"
+
++using std::binary_function;
++using std::unary_function;
++using std::pair;
++using std::bitset;
++using std::vector;
++using std::ostream;
++
+ /// minimum<T> is a function object.
+ ///
+ /// If f is an object of class minimum<T> and x and y are objects of
+--- vaal-46233/src/system/ParsedArgs.cc
++++ vaal-46233/src/system/ParsedArgs.cc
+@@ -26,6 +26,9 @@
+ #include "system/HostName.h"
+ #include "system/UseGDB.h"
+
++using std::istrstream;
++using std::mem_fun_ref;
++
+ #ifndef FatalErr
+ #define FatalErr(message) { cout << message << endl << endl; exit(-1); }
+ #endif
+--- vaal-46233/src/system/ParsedArgs.h
++++ vaal-46233/src/system/ParsedArgs.h
+@@ -97,6 +97,8 @@
+ #include "TokenizeString.h"
+ #include "ParseSet.h"
+
++using std::stringstream;
++
+ class parsed_arg_help {
+
+ public:
+--- vaal-46233/src/system/ProcBuf.cc
++++ vaal-46233/src/system/ProcBuf.cc
+@@ -15,6 +15,8 @@
+ #include <sys/wait.h>
+ #include <unistd.h>
+
++using std::ios_base;
++
+ namespace
+ {
+ size_t const BUFFER_SIZE = 8192;
+--- vaal-46233/src/system/RunTime.cc
++++ vaal-46233/src/system/RunTime.cc
+@@ -41,6 +41,10 @@
+ #include <unwind.h>
+ #endif
+
++using std::strstream;
++using std::hex;
++using std::setw;
++
+ /// ===========================================================================
+ ///
+ /// ReturnAddress(i), where 0 <= i <= 100: get the return address. The
+--- vaal-46233/src/system/RunTime.h
++++ vaal-46233/src/system/RunTime.h
+@@ -14,6 +14,8 @@
+ #include "system/Exit.h"
+ #include "system/Types.h"
+
++using std::ostream;
++
+ typedef void ArachneSignalHandler(int, siginfo_t*, void*);
+
+ void arachne_signal_handler( int signal_number, siginfo_t* info, void* context,
+--- vaal-46233/src/system/System.cc
++++ vaal-46233/src/system/System.cc
+@@ -35,6 +35,11 @@
+
+ #include <dirent.h>
+
++using std::istringstream;
++using std::istream_iterator;
++using std::ostrstream;
++using std::ends;
++
+ int SystemInternal( String command, const char *shell )
+ {
+ flush(cout);
+--- vaal-46233/src/system/System.h
++++ vaal-46233/src/system/System.h
+@@ -21,6 +21,17 @@
+ #include "system/Exit.h"
+ #include "system/file/TempFile.h"
+
++using std::vector;
++using std::ostream;
++using std::ofstream;
++using std::cout;
++using std::flush;
++using std::endl;
++using std::istream;
++using std::ifstream;
++using std::ios;
++using std::setprecision;
++
+ #ifndef InputErr
+ #define InputErr(message) \
+ { cout << "\nFatal error at " << Date( ) << ": " << message << endl; \
+--- vaal-46233/src/system/TraceVal.h
++++ vaal-46233/src/system/TraceVal.h
+@@ -24,6 +24,9 @@
+ #include "system/Types.h"
+ #include "system/Assert.h"
+
++using std::cout;
++using std::endl;
++
+ // Macros: Tracing macros
+ // TRACEVAL_ON - undefine if you're not doing tracing
+ // TRACEVAL_STOP_TRACING_COPIES -- call before an operation that shuffles
+--- vaal-46233/src/system/Types.h
++++ vaal-46233/src/system/Types.h
+@@ -14,7 +14,7 @@
+ #include <cstdlib>
+ #include <netinet/in.h>
+
+-using namespace std;
++
+
+ // This assumes that all suns run Solaris...
+ #if __sun == 1
+--- vaal-46233/src/util/BaitMap.cc
++++ vaal-46233/src/util/BaitMap.cc
+@@ -236,7 +236,7 @@
+ bool BaitMap::write(String file_name)
+ {
+ std::ofstream out(file_name.c_str());
+- ForceAssert(out);
++ ForceAssert(static_cast<bool>(out));
+
+ for (unsigned int i = 0; i < this->size(); i++)
+ {
+@@ -250,7 +250,7 @@
+ }
+
+ out.close();
+- ForceAssert(out);
++ ForceAssert(static_cast<bool>(out));
+
+ return true;
+ }
+@@ -260,7 +260,7 @@
+ bool BaitMap::write_names(String file_name)
+ {
+ std::ofstream out(file_name.c_str());
+- ForceAssert(out);
++ ForceAssert(static_cast<bool>(out));
+
+ for (unsigned int i = 0; i < this->size(); i++)
+ {
+@@ -268,7 +268,7 @@
+ }
+
+ out.close();
+- ForceAssert(out);
++ ForceAssert(static_cast<bool>(out));
+
+ return true;
+ }
+--- vaal-46233/src/util/BaitMap.h
++++ vaal-46233/src/util/BaitMap.h
+@@ -20,6 +20,8 @@
+
+ #include <map>
+
++using std::map;
++
+ class BaitMap
+ {
+ public:
+--- vaal-46233/src/util/Qualb.cc
++++ vaal-46233/src/util/Qualb.cc
+@@ -10,6 +10,8 @@
+ #include "FastIfstream.h"
+ #include "Qualvector.h"
+
++using std::istrstream;
++
+ int main( int argc, char *argv[] )
+ {
+ RunTime( );
+--- vaal-46233/src/Vec.h
++++ vaal-46233/src/Vec.h
+@@ -48,6 +48,14 @@
+ #include "Compare.h"
+ #include "system/file/FileReader.h"
+
++using std::initializer_list;
++using std::numeric_limits;
++using std::ostream_iterator;
++using std::less;
++using std::equal_to;
++using std::setfill;
++using std::setw;
++
+ /////////////////////////////////////////////////////////////////////////////
+ //
+ // vec Class Declaration and Template Definitions
+--- vaal-46233/src/VecUtilities.h
++++ vaal-46233/src/VecUtilities.h
+@@ -37,6 +37,7 @@
+ #include "Vec.h"
+ #include <cstddef>
+
++using std::greater;
+
+ /////////////////////////////////////////////////////////////////////////////
+ //
diff --git a/sci-biology/vaal/metadata.xml b/sci-biology/vaal/metadata.xml
new file mode 100644
index 000000000000..959160fe46b1
--- /dev/null
+++ b/sci-biology/vaal/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sci-biology@gentoo.org</email>
+ <name>Gentoo Biology Project</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/sci-biology/vaal/vaal-46233-r2.ebuild b/sci-biology/vaal/vaal-46233-r2.ebuild
new file mode 100644
index 000000000000..7185fc1c24df
--- /dev/null
+++ b/sci-biology/vaal/vaal-46233-r2.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools
+
+DESCRIPTION="Algorithm for detecting SNPs, indels, and other polymorphisms"
+HOMEPAGE="http://www.broadinstitute.org/science/programs/genome-biology/crd/"
+SRC_URI="
+ ftp://ftp.broad.mit.edu/pub/crd/VAAL/latest_source_code/${P}.tar.gz
+ ftp://ftp.broad.mit.edu/pub/crd/VAAL/VAAL_manual.doc"
+
+LICENSE="Whitehead-MIT"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="openmp"
+
+RDEPEND="
+ !sci-biology/allpaths
+ !sci-biology/allpathslg"
+DEPEND="
+ ${RDEPEND}
+ dev-libs/boost"
+
+DOCS=( "${DISTDIR}/VAAL_manual.doc" )
+PATCHES=(
+ "${FILESDIR}/${P}_remove-namespace-std.patch"
+)
+
+src_prepare() {
+ sed \
+ -e '/COPYING/d' \
+ -i src/Makefile.am || die
+
+ sed \
+ -e 's:-ggdb::g' \
+ -e '/AC_OPENMP_CEHCK/d' \
+ -i configure.ac || die
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable openmp)
+}