Skip to content
Snippets Groups Projects
Commit 55cd0493 authored by Studer Gabriel's avatar Studer Gabriel
Browse files

wrap data extracted from linear dbs in single objects

parent 156499e3
No related branches found
No related tags found
No related merge requests found
......@@ -166,23 +166,32 @@ struct DisCoDataContainers {
LinearPositionContainerPtr position_container;
};
// helper struct to wrap output
void WrapExtractTemplateDataDisCo(const String& entry_name, const String& chain_name,
const ost::seq::AlignmentHandle& aln,
DisCoDataContainers& data_containers,
boost::python::list& residue_numbers,
geom::Vec3List& positions) {
struct ExtractedDisCoData{
std::vector<int> residue_numbers;
geom::Vec3List ca_positions;
};
typedef boost::shared_ptr<ExtractedDisCoData> ExtractedDisCoDataPtr;
list WrapExtractedDisCoDataGetResNums(ExtractedDisCoDataPtr ptr) {
list residue_numbers;
VecToList(ptr->residue_numbers, residue_numbers);
return residue_numbers;
}
std::vector<int> v_residue_numbers;
ExtractedDisCoDataPtr WrapExtractTemplateDataDisCo(const String& entry_name,
const String& chain_name,
const ost::seq::AlignmentHandle& aln,
DisCoDataContainers& data_containers) {
ExtractedDisCoDataPtr ptr(new ExtractedDisCoData);
ost::db::ExtractTemplateDataDisCo(entry_name, chain_name, aln,
data_containers.indexer,
data_containers.seqres_container,
data_containers.atomseq_container,
data_containers.position_container,
v_residue_numbers,
positions);
residue_numbers = boost::python::list();
VecToList(v_residue_numbers, residue_numbers);
ptr->residue_numbers,
ptr->ca_positions);
return ptr;
}
......@@ -217,19 +226,27 @@ struct GMQEDataContainers {
LinearPositionContainerPtr cb_position_container;
};
// helper struct to wrap output
struct ExtractedGMQEData{
std::vector<int> residue_numbers;
String dssp;
geom::Vec3List n_positions;
geom::Vec3List ca_positions;
geom::Vec3List c_positions;
geom::Vec3List cb_positions;
};
typedef boost::shared_ptr<ExtractedGMQEData> ExtractedGMQEDataPtr;
list WrapExtractedGMQEDataGetResNums(ExtractedGMQEDataPtr ptr) {
list residue_numbers;
VecToList(ptr->residue_numbers, residue_numbers);
return residue_numbers;
}
void WrapExtractTemplateDataGMQE(const String& entry_name,
const String& chain_name,
const ost::seq::AlignmentHandle& aln,
GMQEDataContainers& data_containers,
boost::python::list& residue_numbers,
String& dssp,
geom::Vec3List& n_positions,
geom::Vec3List& ca_positions,
geom::Vec3List& c_positions,
geom::Vec3List& cb_positions) {
std::vector<int> v_residue_numbers;
ExtractedGMQEDataPtr WrapExtractTemplateDataGMQE(const String& entry_name,
const String& chain_name,
const ost::seq::AlignmentHandle& aln,
GMQEDataContainers& data_containers) {
ExtractedGMQEDataPtr ptr(new ExtractedGMQEData);
ost::db::ExtractTemplateDataGMQE(entry_name, chain_name, aln,
data_containers.indexer,
data_containers.seqres_container,
......@@ -239,9 +256,10 @@ void WrapExtractTemplateDataGMQE(const String& entry_name,
data_containers.ca_position_container,
data_containers.c_position_container,
data_containers.cb_position_container,
v_residue_numbers, dssp, n_positions,
ca_positions, c_positions, cb_positions);
VecToList(v_residue_numbers, residue_numbers);
ptr->residue_numbers, ptr->dssp,
ptr->n_positions, ptr->ca_positions,
ptr->c_positions, ptr->cb_positions);
return ptr;
}
}
......@@ -309,15 +327,18 @@ void export_linear_db() {
.def_readonly("indexer", &DisCoDataContainers::indexer)
.def_readonly("seqres_container", &DisCoDataContainers::seqres_container)
.def_readonly("atomseq_container", &DisCoDataContainers::atomseq_container)
.def_readonly("position_container", &DisCoDataContainers::position_container)
.def_readonly("ca_position_container", &DisCoDataContainers::position_container)
;
class_<ExtractedDisCoData, ExtractedDisCoDataPtr>("ExtractedDisCoData", no_init)
.add_property("residue_numbers", &WrapExtractedDisCoDataGetResNums)
.def_readonly("ca_positions", &ExtractedDisCoData::ca_positions)
;
def("ExtractTemplateDataDisCo", &WrapExtractTemplateDataDisCo, (arg("entry_name"),
arg("chain_name"),
arg("aln"),
arg("data_containers"),
arg("residue_numbers"),
arg("positions")));
arg("data_containers")));
class_<GMQEDataContainers>("GMQEDataContainers", init<const String&,
const String&,
......@@ -337,16 +358,18 @@ void export_linear_db() {
.def_readonly("cb_position_container", &GMQEDataContainers::cb_position_container)
;
class_<ExtractedGMQEData, ExtractedGMQEDataPtr>("ExtractedGMQEData", no_init)
.add_property("residue_numbers", &WrapExtractedGMQEDataGetResNums)
.def_readonly("dssp", &ExtractedGMQEData::dssp)
.def_readonly("n_positions", &ExtractedGMQEData::n_positions)
.def_readonly("ca_positions", &ExtractedGMQEData::ca_positions)
.def_readonly("c_positions", &ExtractedGMQEData::c_positions)
.def_readonly("cb_positions", &ExtractedGMQEData::cb_positions)
;
def("ExtractTemplateDataGMQE", &WrapExtractTemplateDataGMQE, (arg("entry_name"),
arg("chain_name"),
arg("aln"),
arg("data_containers"),
arg("residue_numbers"),
arg("dssp"),
arg("n_positions"),
arg("ca_positions"),
arg("c_positions"),
arg("cb_positions")));
arg("data_containers")));
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment