@@ -1136,7 +1136,7 @@ int structuremsa(int argc, const char **argv, const Command& command, bool preCl
1136
1136
IndexReader qdbrH (par.db1 , par.threads , IndexReader::HEADERS, touch ? IndexReader::PRELOAD_INDEX : 0 );
1137
1137
1138
1138
Debug (Debug::INFO) << " Got databases\n " ;
1139
-
1139
+
1140
1140
SubstitutionMatrix subMat_3di (par.scoringMatrixFile .values .aminoacid ().c_str (), par.bitFactor3Di , par.scoreBias3di );
1141
1141
std::string blosum;
1142
1142
for (size_t i = 0 ; i < par.substitutionMatrices .size (); i++) {
@@ -1148,6 +1148,7 @@ int structuremsa(int argc, const char **argv, const Command& command, bool preCl
1148
1148
free (serializedMatrix);
1149
1149
}
1150
1150
}
1151
+
1151
1152
SubstitutionMatrix subMat_aa (blosum.c_str (), par.bitFactorAa , par.scoreBiasAa );
1152
1153
1153
1154
Debug (Debug::INFO) << " Got substitution matrices\n " ;
@@ -1632,8 +1633,11 @@ int structuremsa(int argc, const char **argv, const Command& command, bool preCl
1632
1633
1633
1634
// Don't make profiles on final alignment
1634
1635
if (i == merges.size () - 1 && j == merges[i] - 1 ) {
1636
+ #pragma omp critical
1637
+ {
1635
1638
profiles.erase (targetId);
1636
1639
profiles.erase (mergedId);
1640
+ }
1637
1641
continue ;
1638
1642
}
1639
1643
@@ -1679,8 +1683,10 @@ int structuremsa(int argc, const char **argv, const Command& command, bool preCl
1679
1683
par.wg
1680
1684
);
1681
1685
assert (profile_aa.length () == profile_3di.length ());
1686
+ #pragma omp critical
1682
1687
profiles[mergedId] = std::make_pair (profile_aa, profile_3di);
1683
1688
if (targetIsProfile) {
1689
+ #pragma omp critical
1684
1690
profiles.erase (targetId);
1685
1691
}
1686
1692
}
0 commit comments