Skip to content
Snippets Groups Projects
Commit 5963bc07 authored by Bienchen's avatar Bienchen
Browse files

Fixed mmCIF parser, format clash

parent 24c5748d
Branches
Tags
No related merge requests found
......@@ -171,7 +171,8 @@ void export_mmcif_io()
.add_property("details", make_function(&MMCifInfoStructRefSeqDif::GetDetails,
return_value_policy<copy_const_reference>()))
.add_property("seq_rnum", &MMCifInfoStructRefSeqDif::GetSeqRNum)
.add_property("db_rnum", &MMCifInfoStructRefSeqDif::GetDBRNum)
.add_property("db_rnum", make_function(&MMCifInfoStructRefSeqDif::GetDBRNum,
return_value_policy<copy_const_reference>()))
;
typedef std::pair<int, int> IntPair;
......
......
......@@ -168,7 +168,7 @@ MMCifInfoStructRef::GetAlignedSeq(const String& aid) const
}
MMCifInfoStructRefSeqDifPtr
MMCifInfoStructRefSeq::AddDif(int seq_rnum, int db_rnum, const String& details)
MMCifInfoStructRefSeq::AddDif(int seq_rnum, const String& db_rnum, const String& details)
{
MMCifInfoStructRefSeqDifPtr d(new MMCifInfoStructRefSeqDif(seq_rnum, db_rnum,
details));
......
......
......@@ -817,7 +817,7 @@ public:
int GetSeqEnd() const { return seq_end_; }
int GetDBBegin() const { return db_begin_; }
int GetDBEnd() const { return db_end_; }
MMCifInfoStructRefSeqDifPtr AddDif(int seq_num, int db_num,
MMCifInfoStructRefSeqDifPtr AddDif(int seq_num, const String& db_rnum,
const String& details);
const std::vector<MMCifInfoStructRefSeqDifPtr>& GetDifs() const { return difs_; }
private:
......@@ -832,14 +832,14 @@ private:
class DLLEXPORT_OST_IO MMCifInfoStructRefSeqDif {
public:
MMCifInfoStructRefSeqDif(int seq_rnum, int db_rnum, const String& details):
MMCifInfoStructRefSeqDif(int seq_rnum, const String& db_rnum, const String& details):
seq_rnum_(seq_rnum), db_rnum_(db_rnum), details_(details) {}
int GetSeqRNum() const { return seq_rnum_;}
int GetDBRNum() const { return db_rnum_; }
const String& GetDBRNum() const { return db_rnum_; }
const String& GetDetails() const { return details_; }
private:
int seq_rnum_;
int db_rnum_;
String db_rnum_;
String details_;
};
......
......
......@@ -1543,12 +1543,9 @@ void MMCifReader::ParseStructRefSeq(const std::vector<StringRef>& columns)
void MMCifReader::ParseStructRefSeqDif(const std::vector<StringRef>& columns)
{
String aln_id=columns[indices_[SRSD_ALIGN_ID]].str();
std::pair<bool,int> db_rnum(true, -1);
String db_rnum;
if (!is_undef(columns[indices_[SRSD_DB_RNUM]])) {
db_rnum=this->TryGetInt(columns[indices_[SRSD_DB_RNUM]],
"_struct_ref_seq_dif.pdbx_seq_db_seq_num",
profile_.fault_tolerant);
db_rnum=columns[indices_[SRSD_DB_RNUM]].str();
}
std::pair<bool,int> seq_rnum(true, -1);
if (!is_undef(columns[indices_[SRSD_SEQ_RNUM]])) {
......@@ -1557,7 +1554,7 @@ void MMCifReader::ParseStructRefSeqDif(const std::vector<StringRef>& columns)
profile_.fault_tolerant);
}
if (!seq_rnum.first || !db_rnum.first) {
if (!seq_rnum.first) {
return;
}
String details;
......@@ -1568,7 +1565,7 @@ void MMCifReader::ParseStructRefSeqDif(const std::vector<StringRef>& columns)
for (MMCifInfoStructRefs::iterator i=struct_refs_.begin(),
e=struct_refs_.end(); i!=e; ++i) {
if (MMCifInfoStructRefSeqPtr s=(*i)->GetAlignedSeq(aln_id)) {
s->AddDif(seq_rnum.second, db_rnum.second, details);
s->AddDif(seq_rnum.second, db_rnum, details);
found=true;
break;
}
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment