X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Futils%2Fbamtools_utilities.h;h=52098d0c4811c2977c360e573cd16c587b210551;hb=72f5b82ad353b4cc9d6f8153f1ad19cc387b9597;hp=73604fbff5f4812800e280450be967d8a4f74b3d;hpb=ced2983817b0efe2c4ea08ff1479937ea9131017;p=bamtools.git diff --git a/src/utils/bamtools_utilities.h b/src/utils/bamtools_utilities.h index 73604fb..52098d0 100644 --- a/src/utils/bamtools_utilities.h +++ b/src/utils/bamtools_utilities.h @@ -1,9 +1,8 @@ // *************************************************************************** // bamtools_utilities.h (c) 2010 Derek Barnett, Erik Garrison // Marth Lab, Department of Biology, Boston College -// All rights reserved. // --------------------------------------------------------------------------- -// Last modified: 19 November 2010 +// Last modified: 9 June 2011 // --------------------------------------------------------------------------- // Provides general utilities used by BamTools sub-tools. // *************************************************************************** @@ -16,6 +15,7 @@ #include #include #include +#include #define BAMTOOLS_ASSERT_UNREACHABLE assert( false ) #define BAMTOOLS_ASSERT_MESSAGE( condition, message ) if (!( condition )) throw std::runtime_error( message ); @@ -28,18 +28,38 @@ class BamMultiReader; class UTILS_EXPORT Utilities { public: + // returns true if 'source' contains 'pattern' or 'c' + static bool Contains(const std::string& source, const std::string& pattern); + static bool Contains(const std::string& source, const char c); + + // returns true if 'source' ends with 'pattern' or 'c' + static bool EndsWith(const std::string& source, const std::string& pattern); + static bool EndsWith(const std::string& source, const char c); + // check if a file exists static bool FileExists(const std::string& fname); // Parses a region string, uses reader to do validation (valid ID's, positions), stores in Region struct // Returns success (true/false) - static bool ParseRegionString(const std::string& regionString, const BamReader& reader, BamRegion& region); + static bool ParseRegionString(const std::string& regionString, + const BamReader& reader, + BamRegion& region); // Same as above, but accepts a BamMultiReader - static bool ParseRegionString(const std::string& regionString, const BamMultiReader& reader, BamRegion& region); + static bool ParseRegionString(const std::string& regionString, + const BamMultiReader& reader, + BamRegion& region); // sequence utilities static void Reverse(std::string& sequence); static void ReverseComplement(std::string& sequence); + + // split string on delimiter character (or string of allowed delimiters) + static std::vector Split(const std::string& source, const char delim); + static std::vector Split(const std::string& source, const std::string& delims); + + // returns true if 'source' starts with 'pattern' or 'c' + static bool StartsWith(const std::string& source, const std::string& pattern); + static bool StartsWith(const std::string &source, const char c); }; } // namespace BamTools