diff --git a/src/strucclustutils/aln2tmscore.cpp b/src/strucclustutils/aln2tmscore.cpp index 9566a472..fbe849a8 100644 --- a/src/strucclustutils/aln2tmscore.cpp +++ b/src/strucclustutils/aln2tmscore.cpp @@ -101,11 +101,8 @@ int aln2tmscore(int argc, const char **argv, const Command& command) { float* tdata = tcoords.read(tcadata, targetLen, tCaLength); // Matching residue index collection - unsigned int normLen = std::min(res.dbLen, res.qLen); TMaligner::TMscoreResult tmres = tmaln.computeTMscore(tdata, &tdata[targetLen], &tdata[targetLen + targetLen], targetLen, - res.qStartPos, res.dbStartPos, res.backtrace, normLen); - tmres.tmscore = (tmres.tmscore / static_cast(normLen)) - * static_cast(res.backtrace.size()); + res.qStartPos, res.dbStartPos, res.backtrace, res.backtrace.size()); //std::cout << TMalnScore << std::endl; resultsStr.append(SSTR(dbKey)); resultsStr.push_back(' '); diff --git a/src/strucclustutils/structurealign.cpp b/src/strucclustutils/structurealign.cpp index 157a2d1c..c259d7ec 100644 --- a/src/strucclustutils/structurealign.cpp +++ b/src/strucclustutils/structurealign.cpp @@ -380,7 +380,6 @@ int structurealign(int argc, const char **argv, const Command& command) { size_t tCaLength = tcadbr->sequenceReader->getEntryLen(tId); float* targetCaData = tcoords.read(tcadata, res.dbLen, tCaLength); if(needTMaligner) { - unsigned int normLen = std::min(res.dbLen, res.qLen); tmres = tmaligner->computeTMscore(targetCaData, &targetCaData[res.dbLen], &targetCaData[res.dbLen + @@ -389,9 +388,7 @@ int structurealign(int argc, const char **argv, const Command& command) { res.qStartPos, res.dbStartPos, res.backtrace, - normLen); - tmres.tmscore = (tmres.tmscore / static_cast(normLen)) - * static_cast(res.backtrace.size()); + res.backtrace.size()); if (tmres.tmscore < par.tmScoreThr) { continue; } diff --git a/src/strucclustutils/structureconvertalis.cpp b/src/strucclustutils/structureconvertalis.cpp index b4f7ab78..c4d444f5 100644 --- a/src/strucclustutils/structureconvertalis.cpp +++ b/src/strucclustutils/structureconvertalis.cpp @@ -522,7 +522,6 @@ R"html( Coordinate16 tcoords; std::string tmpBt; - double rmsd = 0.0; #pragma omp for schedule(dynamic, 10) for (size_t i = 0; i < alnDbr.getSize(); i++) { progress.updateProgress(); @@ -653,12 +652,7 @@ R"html( } if(needTMaligner){ tmaligner->initQuery(queryCaData, &queryCaData[res.qLen], &queryCaData[res.qLen+res.qLen], NULL, res.qLen); - unsigned int normlen= std::min(res.qLen, res.dbLen); tmpBt = Matcher::uncompressAlignment(res.backtrace); - tmres = tmaligner->computeTMscore(targetCaData, &targetCaData[res.dbLen], &targetCaData[res.dbLen+res.dbLen], res.dbLen, - res.qStartPos, res.dbStartPos, tmpBt,normlen); - tmres.tmscore = tmres.tmscore / normlen; - rmsd = tmres.rmsd; } LDDTCalculator::LDDTScoreResult lddtres; if(needLDDT) { @@ -885,16 +879,25 @@ R"html( result.append(SSTR(tmres.t[2])); break; case LocalParameters::OUTFMT_ALNTMSCORE: - result.append(SSTR(tmres.tmscore * tmpBt.size())); + tmres = tmaligner->computeTMscore(targetCaData, &targetCaData[res.dbLen], &targetCaData[res.dbLen+res.dbLen], res.dbLen, + res.qStartPos, res.dbStartPos, tmpBt, + tmpBt.size()); + result.append(SSTR(tmres.tmscore)); break; case LocalParameters::OUTFMT_QTMSCORE: - result.append(SSTR(tmres.tmscore * res.qLen)); + tmres = tmaligner->computeTMscore(targetCaData, &targetCaData[res.dbLen], &targetCaData[res.dbLen+res.dbLen], res.dbLen, + res.qStartPos, res.dbStartPos, tmpBt,res.qLen); + result.append(SSTR(tmres.tmscore)); break; case LocalParameters::OUTFMT_TTMSCORE: - result.append(SSTR(tmres.tmscore * res.dbLen)); + tmres = tmaligner->computeTMscore(targetCaData, &targetCaData[res.dbLen], &targetCaData[res.dbLen+res.dbLen], res.dbLen, + res.qStartPos, res.dbStartPos, tmpBt, res.dbLen); + result.append(SSTR(tmres.tmscore)); break; case LocalParameters::OUTFMT_RMSD: - result.append(SSTR(rmsd)); + tmres = tmaligner->computeTMscore(targetCaData, &targetCaData[res.dbLen], &targetCaData[res.dbLen+res.dbLen], res.dbLen, + res.qStartPos, res.dbStartPos, tmpBt, res.dbLen); + result.append(SSTR(tmres.rmsd)); break; case LocalParameters::OUTFMT_LDDT: // TODO: make SSTR_approx that outputs %2f, not %3f diff --git a/src/strucclustutils/structurerescorediagonal.cpp b/src/strucclustutils/structurerescorediagonal.cpp index ba59b604..0d49e0d3 100644 --- a/src/strucclustutils/structurerescorediagonal.cpp +++ b/src/strucclustutils/structurerescorediagonal.cpp @@ -342,12 +342,9 @@ int structureungappedalign(int argc, const char **argv, const Command& command) char *tcadata = tcadbr->sequenceReader->getData(tId, thread_idx); size_t tCaLength = tcadbr->sequenceReader->getEntryLen(tId); float* targetCaData = tcoords.read(tcadata, res.dbLen, tCaLength); - unsigned int normLen = std::min(res.dbLen, res.qLen); TMaligner::TMscoreResult tmres = tmaligner->computeTMscore(targetCaData, &targetCaData[res.dbLen], &targetCaData[res.dbLen+res.dbLen], res.dbLen, res.qStartPos, res.dbStartPos, Matcher::uncompressAlignment(res.backtrace), - normLen); - tmres.tmscore = (tmres.tmscore / static_cast(normLen)) - * static_cast(res.backtrace.size()); + res.backtrace.size()); if(tmres.tmscore < par.tmScoreThr){ continue; }