Commit 1cf8e7b7 by maarten

pepflip werkt ook weer

git-svn-id: svn+ssh://gitlab/srv/svn-repos/pdb-redo/trunk@344 a1961a4f-ab94-4bcc-80e8-33b5a54de466
parent bc50f868
......@@ -820,19 +820,12 @@ DSSPImpl::DSSPImpl(const Structure& s)
0.0, [](double s, auto& p) { return s + p.size(); });
mResidues.reserve(nRes);
cerr << "starting to copy atoms for DSSP" << endl;
auto start = std::chrono::system_clock::now();
for (auto& p: mPolymers)
{
for (auto& m: p)
mResidues.emplace_back(m);
}
auto end = std::chrono::system_clock::now();
chrono::duration<double> diff = end - start;
cerr << "Copying atoms took " << diff << " seconds" << endl;
for (size_t i = 0; i + 1 < mResidues.size(); ++i)
{
......
......@@ -1260,7 +1260,6 @@ Structure::Structure(File& f, uint32 modelNr)
// sort(mAtoms.begin(), mAtoms.end(), [](auto& a, auto& b) { return a.id() < b.id(); });
// polymers
auto& polySeqScheme = category("pdbx_poly_seq_scheme");
for (auto& r: polySeqScheme)
......@@ -1273,15 +1272,26 @@ Structure::Structure(File& f, uint32 modelNr)
mPolymers.emplace_back(*this, entityID, asymID);
}
}
Structure::Structure(const Structure& s)
: mFile(s.mFile), mModelNr(s.mModelNr)
{
mAtoms.reserve(s.mAtoms.size());
for (auto& atom: s.mAtoms)
mAtoms.emplace_back(atom.clone());
auto& polySeqScheme = category("pdbx_poly_seq_scheme");
// Structure(const Structure& s)
// : mFile(s.mFile), mModelNr(s.mModelNr)
// {
// mAtoms.reserve(si.mAtoms.size());
// for (auto& atom: si.mAtoms)
// mAtoms.emplace_back(atom.clone());
// }
//}
for (auto& r: polySeqScheme)
{
string asymID, entityID, seqID, monID;
cif::tie(asymID, entityID, seqID, monID) =
r.get("asym_id", "entity_id", "seq_id", "mon_id");
if (mPolymers.empty() or mPolymers.back().asymID() != asymID or mPolymers.back().entityID() != entityID)
mPolymers.emplace_back(*this, entityID, asymID);
}
}
Structure::~Structure()
{
......@@ -1323,21 +1333,6 @@ AtomView Structure::waters() const
const list<Polymer>& Structure::polymers() const
{
// vector<Polymer> result;
//
// auto& polySeqScheme = category("pdbx_poly_seq_scheme");
//
// for (auto& r: polySeqScheme)
// {
// string asymID, entityID, seqID, monID;
// cif::tie(asymID, entityID, seqID, monID) =
// r.get("asym_id", "entity_id", "seq_id", "mon_id");
//
// if (result.empty() or result.back().asymID() != asymID or result.back().entityID() != entityID)
// result.emplace_back(*this, entityID, asymID);
// }
//
// return result;
return mPolymers;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment