From b80ce103737d40f9c0f668b5539592d3fb9fab7b Mon Sep 17 00:00:00 2001 From: Martin Steinegger Date: Mon, 9 Dec 2024 01:26:14 +0700 Subject: [PATCH] Fix issues in masksequence --- src/commons/Masker.cpp | 2 +- src/commons/Parameters.cpp | 1 + src/util/masksequence.cpp | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/commons/Masker.cpp b/src/commons/Masker.cpp index efa8cebb..66736250 100644 --- a/src/commons/Masker.cpp +++ b/src/commons/Masker.cpp @@ -20,7 +20,7 @@ int Masker::maskSequence(Sequence & seq, bool maskTantan, double maskProb, if(maskTantan){ // 1. Apply tantan masking without influencing by repeat mask maskedResidues += tantan::maskSequences(seq.numSequence, - (seq.numSequence + seq.L), + seq.numSequence + seq.L, 50 /*maxCycleLength*/, probMatrix.probMatrixPointers, 0.005 /*repeatProb*/, diff --git a/src/commons/Parameters.cpp b/src/commons/Parameters.cpp index f9b39c6b..8f4e409e 100644 --- a/src/commons/Parameters.cpp +++ b/src/commons/Parameters.cpp @@ -768,6 +768,7 @@ Parameters::Parameters(): // mask sequence masksequence.push_back(&PARAM_MASK_PROBABILTY); + masksequence.push_back(&PARAM_MASK_N_REPEAT); masksequence.push_back(&PARAM_THREADS); masksequence.push_back(&PARAM_COMPRESSED); masksequence.push_back(&PARAM_V); diff --git a/src/util/masksequence.cpp b/src/util/masksequence.cpp index 53b0a626..012568b2 100644 --- a/src/util/masksequence.cpp +++ b/src/util/masksequence.cpp @@ -46,8 +46,10 @@ int masksequence(int argc, const char **argv, const Command& command) { for (size_t id = 0; id < reader.getSize(); ++id) { seq.mapSequence(id, reader.getDbKey(id), reader.getData(id, thread_idx), reader.getSeqLen(id)); masker.maskSequence(seq, true, par.maskProb, par.maskLowerCaseMode, par.maskNrepeats); + memcpy(charSequence, seq.getSeqData(), seq.L * sizeof(char)); masker.applySoftmasking(charSequence, seq.numSequence, seq.L); - writer.writeData((char*)charSequence, seq.L, thread_idx); + charSequence[seq.L] = '\n'; + writer.writeData((const char *)charSequence, seq.L + 1, seq.getDbKey(), thread_idx); } delete[] charSequence; }