Skip to content
Commits on Source (10)
rapmap (0.15.0+dfsg-1) unstable; urgency=medium
* New upstream version
* debhelper-compat 12
* Standards-Version: 4.4.0
* Trim trailing whitespace.
* Set upstream metadata fields: Repository.
* -dev, -examples are Multi-Arch: foreign
-- Michael R. Crusoe <michael.crusoe@gmail.com> Thu, 14 Nov 2019 14:45:15 +0100
rapmap (0.14.1+dfsg-2) unstable; urgency=medium
* only amd64 due to compiling variants for Intel SSE extensions
......
......@@ -4,7 +4,7 @@ Uploaders: Andreas Tille <tille@debian.org>,
Michael R. Crusoe <michael.crusoe@gmail.com>
Section: science
Priority: optional
Build-Depends: debhelper (>= 11),
Build-Depends: debhelper-compat (= 12),
cmake,
zlib1g-dev,
libdivsufsort-dev,
......@@ -15,8 +15,9 @@ Build-Depends: debhelper (>= 11),
libspdlog-dev,
libtclap-dev,
pkg-config,
python3-markdown
Standards-Version: 4.3.0
python3-markdown,
python3
Standards-Version: 4.4.0
Vcs-Browser: https://salsa.debian.org/med-team/rapmap
Vcs-Git: https://salsa.debian.org/med-team/rapmap.git
Homepage: https://github.com/COMBINE-lab/RapMap
......@@ -52,6 +53,7 @@ Description: rapid sensitive and accurate DNA read mapping via quasi-mapping
Package: rapmap-example-data
Architecture: all
Multi-Arch: foreign
Depends: ${misc:Depends}
Recommends: rapmap
Description: example data for rapmap - rapid sensitive and accurate DNA read mapping
......@@ -70,6 +72,7 @@ Description: example data for rapmap - rapid sensitive and accurate DNA read map
Package: rapmap-dev
Architecture: all
Multi-Arch: foreign
Depends: ${misc:Depends}
Description: rapmap - rapid sensitive and accurate DNA read mapping (some headers)
RapMap is a testing ground for ideas in quasi-mapping / (lightweight /
......
......@@ -24,5 +24,3 @@ override_dh_auto_build:
override_dh_clean:
dh_clean README.html sample_data/sample_quasi_index/ sample_data/sample_quasi_index_ph/ sample_data/sample_quasi_map.sam sample_data/sample_quasi_map_ph.sam
Reference:
- Author: Avi Srivastava and Hirak Sarkar and Nitish Gupta and Rob Patro
Title: >
RapMap: a rapid, sensitive and accurate tool for mapping RNA-seq reads to
transcriptomes
Title: "RapMap: a rapid, sensitive and accurate tool for mapping RNA-seq reads to\
\ transcriptomes\n"
Journal: Bioinformatics
Year: 2016
Volume: 32
......@@ -31,3 +30,4 @@ Registry:
Entry: NA
- Name: conda:bioconda
Entry: rapmap
Repository: https://github.com/COMBINE-lab/RapMap
......@@ -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_;
};
......
......@@ -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);
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);
......