[med-svn] [Git][med-team/rapmap][upstream] New upstream version 0.15.0+dfsg

Michael R. Crusoe gitlab at salsa.debian.org
Thu Nov 14 13:47:03 GMT 2019



Michael R. Crusoe pushed to branch upstream at Debian Med / rapmap


Commits:
9e3b41dd by Michael R. Crusoe at 2019-11-14T13:38:27Z
New upstream version 0.15.0+dfsg
- - - - -


2 changed files:

- include/IndexHeader.hpp
- src/RapMapSAIndexer.cpp


Changes:

=====================================
include/IndexHeader.hpp
=====================================
@@ -54,6 +54,8 @@ class IndexHeader {
                 ar( cereal::make_nvp("NameHash", nameHash256_) );
                 ar( cereal::make_nvp("SeqHash512", seqHash512_) );
                 ar( cereal::make_nvp("NameHash512", nameHash512_) );
+                ar( cereal::make_nvp("DecoySeqHash", decoySeqHash256_) );
+                ar( cereal::make_nvp("DecoyNameHash", decoyNameHash256_) );
             }
 
         template <typename Archive>
@@ -69,6 +71,8 @@ class IndexHeader {
                 ar( cereal::make_nvp("NameHash", nameHash256_) );
                 ar( cereal::make_nvp("SeqHash512", seqHash512_) );
                 ar( cereal::make_nvp("NameHash512", nameHash512_) );
+                ar( cereal::make_nvp("DecoySeqHash", decoySeqHash256_) );
+                ar( cereal::make_nvp("DecoyNameHash", decoyNameHash256_) );
             } catch (const cereal::Exception& e) {
                 auto cerrLog = spdlog::get("stderrLog");
                 cerrLog->error("Encountered exception [{}] when loading index.", e.what());
@@ -91,10 +95,16 @@ class IndexHeader {
         std::string seqHash256() const { return seqHash256_; }
         std::string nameHash256() const { return nameHash256_; }
 
+        void setDecoySeqHash256(const std::string& seqHash) { decoySeqHash256_ = seqHash; }
+        void setDecoyNameHash256(const std::string& nameHash) { decoyNameHash256_ = nameHash; }
+        std::string decoySeqHash256() const { return decoySeqHash256_; }
+        std::string decoyNameHash256() const { return decoyNameHash256_; }
+
         void setSeqHash512(const std::string& seqHash) { seqHash512_ = seqHash; }
         void setNameHash512(const std::string& nameHash) { nameHash512_ = nameHash; }
         std::string seqHash512() const { return seqHash512_; }
         std::string nameHash512() const { return nameHash512_; }
+
     private:
         // The type of index we have
         IndexType type_;
@@ -117,6 +127,10 @@ class IndexHeader {
         std::string seqHash512_;
         // Hash of sequence names in txome
         std::string nameHash512_;
+        // Hash of the names of decoys
+        std::string decoyNameHash256_;
+        // Hash of the sequences of decoys
+        std::string decoySeqHash256_;
 };
 
 


=====================================
src/RapMapSAIndexer.cpp
=====================================
@@ -465,8 +465,11 @@ void indexTranscriptsSA(ParserT* parser,
   digestpp::sha256 nameHasher256;
   digestpp::sha512 seqHasher512;
   digestpp::sha512 nameHasher512;
-  //picosha2::hash256_one_by_one seqHasher; seqHasher.init();
-  //picosha2::hash256_one_by_one nameHasher; nameHasher.init();
+
+  digestpp::sha256 decoySeqHasher256;
+  digestpp::sha256 decoyNameHasher256;
+
+
 
   bool firstRecord{true};
   bool hasGencodeSep = (sepStr.find('|') != std::string::npos);
@@ -536,9 +539,6 @@ void indexTranscriptsSA(ParserT* parser,
                            [](const char a) -> bool { return !(isprint(a)); }),
             readStr.end());
 
-        seqHasher256.absorb(readStr.begin(), readStr.end());
-        seqHasher512.absorb(readStr.begin(), readStr.end());
-
         uint32_t readLen = readStr.size();
         uint32_t completeLen = readLen;
 
@@ -573,6 +573,14 @@ void indexTranscriptsSA(ParserT* parser,
           //throw std::logic_error("Input fasta file contained out-of-order decoy targets.");
         }
 
+        // If this was a decoy, add it to the decoy hash
+        if (isDecoy) {
+          decoySeqHasher256.absorb(readStr.begin(), readStr.end());
+        } else { // otherwise the ref hash
+          seqHasher256.absorb(readStr.begin(), readStr.end());
+          seqHasher512.absorb(readStr.begin(), readStr.end());
+        }
+
         // First, replace non ATCG nucleotides
         for (size_t b = 0; b < readLen; ++b) {
           readStr[b] = ::toupper(readStr[b]);
@@ -656,8 +664,12 @@ void indexTranscriptsSA(ParserT* parser,
 
           // If there was no collision, then add the transcript
           transcriptNames.emplace_back(processedName);
-          nameHasher256.absorb(processedName.begin(), processedName.end());
-          nameHasher512.absorb(processedName.begin(), processedName.end());
+          if (isDecoy) {
+            decoyNameHasher256.absorb(processedName.begin(), processedName.end());
+          } else {
+            nameHasher256.absorb(processedName.begin(), processedName.end());
+            nameHasher512.absorb(processedName.begin(), processedName.end());
+          }
 
           // The position at which this transcript starts
           transcriptStarts.push_back(currIndex);
@@ -869,10 +881,15 @@ void indexTranscriptsSA(ParserT* parser,
   std::string nameHash256 = nameHasher256.hexdigest();
   std::string seqHash512 = seqHasher512.hexdigest();
   std::string nameHash512 = nameHasher512.hexdigest();
+  std::string decoySeqHash256 = decoySeqHasher256.hexdigest();
+  std::string decoyNameHash256 = decoyNameHasher256.hexdigest();
+
   header.setSeqHash256(seqHash256);
   header.setNameHash256(nameHash256);
   header.setSeqHash512(seqHash512);
   header.setNameHash512(nameHash512);
+  header.setDecoySeqHash256(decoySeqHash256);
+  header.setDecoyNameHash256(decoyNameHash256);
   //std::string seqHash;
   //std::string nameHash;
   //picosha2::get_hash_hex_string(seqHasher, seqHash);



View it on GitLab: https://salsa.debian.org/med-team/rapmap/commit/9e3b41ddec31d2981d0b5ade34d3d8e072a8958c

-- 
View it on GitLab: https://salsa.debian.org/med-team/rapmap/commit/9e3b41ddec31d2981d0b5ade34d3d8e072a8958c
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20191114/2f7b9882/attachment-0001.html>


More information about the debian-med-commit mailing list