diff --git a/src/privateer/cpp/privateer-lib.cpp b/src/privateer/cpp/privateer-lib.cpp index 236b203d..73c801af 100644 --- a/src/privateer/cpp/privateer-lib.cpp +++ b/src/privateer/cpp/privateer-lib.cpp @@ -2363,30 +2363,28 @@ std::string privateer::glycanbuilderplot::Plot::get_XML ( ) bool privateer::glycanbuilderplot::Plot::plot_glycan ( clipper::MGlycan glycan, privateer::glycanbuilderplot::GlycanErrorCount* error_count) { - + this->set_size(3000,3000); const clipper::String type = glycan.get_type(); privateer::glycanbuilderplot::GlycanRoot *root; - clipper::String id = glycan.get_root().first.id().trim().substr(0,glycan.get_root().first.id().trim().find(":")); - std::string mmdbsel = "mmdb:///" + glycan.get_chain().substr(0,1) + "/" + id; + std::string mmdbsel = "mmdb:///" + glycan.get_chain().substr(0,1) + "/" + glycan.get_root().first.id().trim(); // first, let us draw the root if ( type == "n-glycan" ) - root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "N", glycan.get_root().first.type(), glycan.get_chain().substr(0,1) + "/" + id, "N-glycosylation. " + glycan.get_root_description(), mmdbsel ); + root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "N", glycan.get_root().first.type(), glycan.get_chain().substr(0,1) + "/" + glycan.get_root().first.id().trim(), "N-glycosylation. " + glycan.get_root_description(), glycan.get_chain().trim(), glycan.get_root().first.type().trim(), glycan.get_root().first.seqnum(), mmdbsel ); else if ( type == "o-glycan" ) - root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "O", glycan.get_root().first.type(), glycan.get_chain().substr(0,1) + "/" + id, "O-glycosylation. " + glycan.get_root_description(), mmdbsel ); + root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "O", glycan.get_root().first.type(), glycan.get_chain().substr(0,1) + "/" + glycan.get_root().first.id().trim(), "O-glycosylation. " + glycan.get_root_description(), glycan.get_chain().trim(), glycan.get_root().first.type().trim(), glycan.get_root().first.seqnum(), mmdbsel ); else if ( type == "s-glycan" ) - root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "S", glycan.get_root().first.type(), glycan.get_chain().substr(0,1) + "/" + id, "S-glycosylation. " + glycan.get_root_description(), mmdbsel ); + root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "S", glycan.get_root().first.type(), glycan.get_chain().substr(0,1) + "/" + glycan.get_root().first.id().trim(), "S-glycosylation. " + glycan.get_root_description(), glycan.get_chain().trim(), glycan.get_root().first.type().trim(), glycan.get_root().first.seqnum(), mmdbsel ); else if ( type == "c-glycan" ) - root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "C", glycan.get_root().first.type(), glycan.get_chain().substr(0,1) + "/" + id, "C-glycosylation. " + glycan.get_root_description(), mmdbsel ); + root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "C", glycan.get_root().first.type(), glycan.get_chain().substr(0,1) + "/" + glycan.get_root().first.id().trim(), "C-glycosylation. " + glycan.get_root_description(), glycan.get_chain().trim(), glycan.get_root().first.type().trim(), glycan.get_root().first.seqnum(), mmdbsel ); else if ( type == "p-glycan" ) - root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "P", glycan.get_root().first.type(), glycan.get_chain().substr(0,1) + "/" + id, "P-glycosylation. " + glycan.get_root_description(), mmdbsel ); + root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "P", glycan.get_root().first.type(), glycan.get_chain().substr(0,1) + "/" + glycan.get_root().first.id().trim(), "P-glycosylation. " + glycan.get_root_description(), glycan.get_chain().trim(), glycan.get_root().first.type().trim(), glycan.get_root().first.seqnum(), mmdbsel ); else if ( type == "ligand" ) - root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "L-", "N/A", "Ligand", mmdbsel ); - else - return true; + root = new privateer::glycanbuilderplot::GlycanRoot(2768, 990, "L-", "N/A", "Ligand", "Ligand", glycan.get_root_sugar_chainID().trim(), glycan.get_root().second.type().trim(), glycan.get_root().second.seqnum(), mmdbsel ); + else return true; add_block ( root ); @@ -2465,192 +2463,192 @@ void privateer::glycanbuilderplot::Plot::recursive_paint ( clipper::MGlycan mg, if ( sugname == "Glc" ) { - Glc * glc = new Glc (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + Glc * glc = new Glc (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( glc ); if (node_contains_issue_with_sugar && this->potential_issue_shading) { - shadedCircle * shCrcl = new shadedCircle (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedCircle * shCrcl = new shadedCircle (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shCrcl); } } else if ( sugname == "Gal" ) { - Gal * gal = new Gal (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + Gal * gal = new Gal (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( gal ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedCircle * shCrcl = new shadedCircle (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedCircle * shCrcl = new shadedCircle (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shCrcl); } } else if ( sugname == "Man" ) { - Man * man = new Man (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + Man * man = new Man (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( man ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedCircle * shCrcl = new shadedCircle (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedCircle * shCrcl = new shadedCircle (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shCrcl); } } else if ( sugname == "Fuc" ) { - Fuc * fuc = new Fuc (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + Fuc * fuc = new Fuc (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( fuc ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedTriangle * shTrngl = new shadedTriangle (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedTriangle * shTrngl = new shadedTriangle (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shTrngl); } } else if ( sugname == "Xyl" ) { - Xyl * xyl = new Xyl (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + Xyl * xyl = new Xyl (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( xyl ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedStar * shStar = new shadedStar (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedStar * shStar = new shadedStar (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shStar); } } else if ( sugname == "GlcN" ) { - GlcN * glcn = new GlcN (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + GlcN * glcn = new GlcN (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( glcn ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shSqr); } } else if ( sugname == "GalN" ) { - GalN * galn = new GalN (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + GalN * galn = new GalN (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( galn ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shSqr); } } else if ( sugname == "ManN" ) { - ManN * mann = new ManN (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + ManN * mann = new ManN (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( mann ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shSqr); } } else if ( sugname == "GlcNAc" ) { - GlcNAc * glcnac = new GlcNAc (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + GlcNAc * glcnac = new GlcNAc (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( glcnac ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shSqr); } } else if ( sugname == "GalNAc" ) { - GalNAc * galnac = new GalNAc (x, y, get_svg_tooltip ( sugar, validation ) , mmdbsel ); + GalNAc * galnac = new GalNAc (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( galnac ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shSqr); } } else if ( sugname == "ManNAc" ) { - ManNAc * mannac = new ManNAc (x, y, get_svg_tooltip ( sugar, validation ) , mmdbsel ); + ManNAc * mannac = new ManNAc (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( mannac ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shSqr); } } else if ( sugname == "GlcA" ) { - GlcA * glca = new GlcA (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + GlcA * glca = new GlcA (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( glca ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shSqr); } } else if ( sugname == "GalA" ) { - GalA * gala = new GalA (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + GalA * gala = new GalA (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( gala ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shSqr); } } else if ( sugname == "ManA" ) { - ManA * mana = new ManA (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + ManA * mana = new ManA (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( mana ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedSquare * shSqr = new shadedSquare (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shSqr); } } else if ( sugname == "Neu5Gc" ) { - Neu5Gc *neu5gc = new Neu5Gc ( x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + Neu5Gc *neu5gc = new Neu5Gc ( x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( neu5gc ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedDiamond * shDiam = new shadedDiamond (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedDiamond * shDiam = new shadedDiamond (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shDiam); } } else if ( sugname == "Neu5Ac" ) { - Neu5Ac *neu5ac = new Neu5Ac ( x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + Neu5Ac *neu5ac = new Neu5Ac ( x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( neu5ac ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedDiamond * shDiam = new shadedDiamond (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedDiamond * shDiam = new shadedDiamond (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shDiam); } } else if ( sugname == "IdoA" ) { - IdoA *idoa = new IdoA ( x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + IdoA *idoa = new IdoA ( x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( idoa ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedDiamond * shDiam = new shadedDiamond (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedDiamond * shDiam = new shadedDiamond (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shDiam); } } else if ( sugname == "KDN" ) { - KDN *kdn = new KDN ( x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + KDN *kdn = new KDN ( x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( kdn ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedDiamond * shDiam = new shadedDiamond (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedDiamond * shDiam = new shadedDiamond (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shDiam); } } else { - Unk *unk = new Unk ( x, y, *(sugar.type().substr(0,1).c_str()), get_svg_tooltip ( sugar, validation ), mmdbsel ); + Unk *unk = new Unk ( x, y, *(sugar.type().substr(0,1).c_str()), get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_block ( unk ); if (node_contains_issue_with_sugar && this->potential_issue_shading ) { - shadedHexagon * shHex = new shadedHexagon (x, y, get_svg_tooltip ( sugar, validation ), mmdbsel ); + shadedHexagon * shHex = new shadedHexagon (x, y, get_svg_tooltip ( sugar, validation ), sugar.chain_id().trim(), sugar.short_name().trim(), sugar.get_seqnum(), mmdbsel ); add_shaded_node (shHex); } } @@ -2693,8 +2691,6 @@ void privateer::glycanbuilderplot::Plot::recursive_paint ( clipper::MGlycan mg, std::string message = os.str(); shadedBond * new_shaded_bond = new shadedBond( x+25, y + 25, up, message, "shadedbond", mmdbsel ); add_shaded_link(new_shaded_bond); - errors->torsion_err++; - } } else @@ -2704,12 +2700,10 @@ void privateer::glycanbuilderplot::Plot::recursive_paint ( clipper::MGlycan mg, std::string message = os.str(); shadedBond * new_shaded_bond = new shadedBond( x+25, y + 25, up, message, "shadedbondnull", mmdbsel ); add_shaded_link(new_shaded_bond); - errors->torsion_err++; - } } - recursive_paint ( mg, linked_node, x, y + 110, false, errors); + recursive_paint ( mg, linked_node, x, y + 110 ); } else // up it goes, then { @@ -2735,8 +2729,6 @@ void privateer::glycanbuilderplot::Plot::recursive_paint ( clipper::MGlycan mg, std::string message = os.str(); shadedBond * new_shaded_bond = new shadedBond( x+25, y + 25, down, message, "shadedbond", mmdbsel ); add_shaded_link(new_shaded_bond); - errors->torsion_err++; - } } else @@ -2746,12 +2738,10 @@ void privateer::glycanbuilderplot::Plot::recursive_paint ( clipper::MGlycan mg, std::string message = os.str(); shadedBond * new_shaded_bond = new shadedBond( x+25, y + 25, down, message, "shadedbondnull", mmdbsel ); add_shaded_link(new_shaded_bond); - errors->torsion_err++; - } } // } - recursive_paint ( mg, linked_node, x, y - 110, false, errors ); + recursive_paint ( mg, linked_node, x, y - 110 ); } } else if ( clipper::data::carbname_of(linked_node.get_sugar().type()) == "Xyl" ) @@ -2781,8 +2771,6 @@ void privateer::glycanbuilderplot::Plot::recursive_paint ( clipper::MGlycan mg, std::string message = os.str(); shadedBond * new_shaded_bond = new shadedBond( x+25, y + 25, up, message, "shadedbond", mmdbsel ); add_shaded_link(new_shaded_bond); - errors->torsion_err++; - } } else @@ -2792,12 +2780,10 @@ void privateer::glycanbuilderplot::Plot::recursive_paint ( clipper::MGlycan mg, std::string message = os.str(); shadedBond * new_shaded_bond = new shadedBond( x+25, y + 25, up, message, "shadedbondnull", mmdbsel ); add_shaded_link(new_shaded_bond); - errors->torsion_err++; - } } - recursive_paint ( mg, linked_node, x, y + 110, false, errors ); + recursive_paint ( mg, linked_node, x, y + 110 ); } else // up it goes, then { @@ -2823,8 +2809,6 @@ void privateer::glycanbuilderplot::Plot::recursive_paint ( clipper::MGlycan mg, std::string message = os.str(); shadedBond * new_shaded_bond = new shadedBond( x+25, y + 25, down, message, "shadedbond", mmdbsel ); add_shaded_link(new_shaded_bond); - errors->torsion_err++; - } } else @@ -2834,11 +2818,10 @@ void privateer::glycanbuilderplot::Plot::recursive_paint ( clipper::MGlycan mg, std::string message = os.str(); shadedBond * new_shaded_bond = new shadedBond( x+25, y + 25, down, message, "shadedbondnull", mmdbsel ); add_shaded_link(new_shaded_bond); - errors->torsion_err++; } } - recursive_paint ( mg, linked_node, x, y - 110, false, errors ); + recursive_paint ( mg, linked_node, x, y - 110 ); } } else // pseudo-general case @@ -2936,7 +2919,6 @@ void privateer::glycanbuilderplot::Plot::recursive_paint ( clipper::MGlycan mg, std::string message = os.str(); shadedBond * new_shaded_bond = new shadedBond( x, y + 25 + (sign * 15), orientation, message, "shadedbond", mmdbsel ); add_shaded_link(new_shaded_bond); - errors->torsion_err++; } } else @@ -2946,11 +2928,10 @@ void privateer::glycanbuilderplot::Plot::recursive_paint ( clipper::MGlycan mg, std::string message = os.str(); shadedBond * new_shaded_bond = new shadedBond( x, y + 25 + (sign * 15), orientation, message, "shadedbondnull", mmdbsel ); add_shaded_link(new_shaded_bond); - errors->torsion_err++; } } - recursive_paint ( mg, linked_node, x - 110, y + ( sign * 80 ), false, errors); + recursive_paint ( mg, linked_node, x - 110, y + ( sign * 80 ) ); } } } @@ -3064,7 +3045,7 @@ std::string privateer::glycanbuilderplot::Glc::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3078,7 +3059,7 @@ std::string privateer::glycanbuilderplot::Man::get_XML () tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3091,7 +3072,7 @@ std::string privateer::glycanbuilderplot::Gal::get_XML () tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3115,7 +3096,7 @@ std::string privateer::glycanbuilderplot::Fuc::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3139,7 +3120,7 @@ std::string privateer::glycanbuilderplot::Xyl::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3167,7 +3148,7 @@ std::string privateer::glycanbuilderplot::GalN::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3179,7 +3160,7 @@ std::string privateer::glycanbuilderplot::GlcN::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3192,7 +3173,7 @@ std::string privateer::glycanbuilderplot::ManN::get_XML () tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3207,7 +3188,7 @@ std::string privateer::glycanbuilderplot::GlcNAc::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3220,7 +3201,7 @@ std::string privateer::glycanbuilderplot::GalNAc::get_XML () tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3233,7 +3214,7 @@ std::string privateer::glycanbuilderplot::ManNAc::get_XML () tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3259,7 +3240,7 @@ std::string privateer::glycanbuilderplot::Neu5Ac::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3272,7 +3253,7 @@ std::string privateer::glycanbuilderplot::Neu5Gc::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3284,7 +3265,7 @@ std::string privateer::glycanbuilderplot::KDN::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3297,7 +3278,7 @@ std::string privateer::glycanbuilderplot::GlcA::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3311,7 +3292,7 @@ std::string privateer::glycanbuilderplot::ManA::get_XML () tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3323,7 +3304,7 @@ std::string privateer::glycanbuilderplot::GalA::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3336,7 +3317,7 @@ std::string privateer::glycanbuilderplot::IdoA::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n"; @@ -3361,7 +3342,7 @@ std::string privateer::glycanbuilderplot::Unk::get_XML () std::ostringstream tmp; tmp << " " + << " y=\"" << get_y() << "\" data-chainID=\"" << get_chainID() << "\" data-resname=\"" << get_resname() << "\" data-seqnum=\"" << get_seqnum() << "\"" << ">" << "" << get_tooltip() << "" << "\n" << "\n" + tmp << " \n" << " \n" << " privateer::scripting::report_link } return temp_vector; -} +} \ No newline at end of file diff --git a/src/privateer/cpp/privateer-lib.h b/src/privateer/cpp/privateer-lib.h index bd0d5a2d..03218573 100644 --- a/src/privateer/cpp/privateer-lib.h +++ b/src/privateer/cpp/privateer-lib.h @@ -198,6 +198,12 @@ namespace privateer std::string get_tooltip ( ) { return this->tooltip; } void set_mmdbsel ( std::string mmdbsel ) { this->mmdbsel = mmdbsel; } std::string get_mmdbsel ( ) { return this->mmdbsel; } + void set_chainID ( std::string chainID ) { this -> chainID = chainID; } + std::string get_chainID () { return this-> chainID; } + void set_resname ( std::string resname ) { this -> resname = resname; } + std::string get_resname () { return this -> resname; } + void set_seqnum ( int seqnum ) { this -> seqnum = seqnum; } + int get_seqnum ( ) { return this -> seqnum; } protected: int pos_x; @@ -205,6 +211,10 @@ namespace privateer std::string svg_id; std::string tooltip; std::string mmdbsel; + std::string chainID; + std::string resname; + int seqnum; + }; @@ -489,7 +499,7 @@ namespace privateer { public: shadedCircle() { } //!< null constructor - shadedCircle( int x, int y, std::string message, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + shadedCircle( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -497,7 +507,7 @@ namespace privateer { public: Glc() { } //!< null constructor - Glc( int x, int y, std::string message, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + Glc( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -506,7 +516,7 @@ namespace privateer { public: Gal() { } //!< null constructor - Gal( int x, int y, std::string message, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + Gal( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -515,7 +525,7 @@ namespace privateer { public: Man() { } //!< null constructor - Man( int x, int y, std::string message, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + Man( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -524,7 +534,7 @@ namespace privateer { public: shadedTriangle() { } //!< null constructor - shadedTriangle( int x, int y, std::string message, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + shadedTriangle( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -532,7 +542,7 @@ namespace privateer { public: Fuc() { } //!< null constructor - Fuc( int x, int y, std::string message, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + Fuc( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -541,7 +551,7 @@ namespace privateer { public: shadedStar() { } //!< null constructor - shadedStar( int x, int y, std::string message, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + shadedStar( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -549,7 +559,7 @@ namespace privateer { public: Xyl() { } //!< null constructor - Xyl( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + Xyl( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -561,7 +571,7 @@ namespace privateer { public: shadedSquare() { } //!< null constructor - shadedSquare( int x, int y, std::string message, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + shadedSquare( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -569,7 +579,7 @@ namespace privateer { public: GlcN() { } //!< null constructor - GlcN( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + GlcN( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -578,7 +588,7 @@ namespace privateer { public: GalN() { } //!< null constructor - GalN( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + GalN( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -587,7 +597,7 @@ namespace privateer { public: ManN() { } //!< null constructor - ManN( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + ManN( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -599,7 +609,7 @@ namespace privateer { public: GlcNAc() { } //!< null constructor - GlcNAc( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + GlcNAc( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -608,7 +618,7 @@ namespace privateer { public: GalNAc() { } //!< null constructor - GalNAc( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + GalNAc( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -617,7 +627,7 @@ namespace privateer { public: ManNAc() { } //!< null constructor - ManNAc( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + ManNAc( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -628,7 +638,7 @@ namespace privateer { public: shadedDiamond() { } //!< null constructor - shadedDiamond( int x, int y, std::string message, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + shadedDiamond( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -636,7 +646,7 @@ namespace privateer { public: Neu5Ac() { } //!< null constructor - Neu5Ac( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + Neu5Ac( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -645,7 +655,7 @@ namespace privateer { public: Neu5Gc() { } //!< null constructor - Neu5Gc( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + Neu5Gc( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -654,7 +664,7 @@ namespace privateer { public: KDN() { } //!< null constructor - KDN( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + KDN( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -663,7 +673,7 @@ namespace privateer { public: GlcA() { } //!< null constructor - GlcA( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + GlcA( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -672,7 +682,7 @@ namespace privateer { public: IdoA() { } //!< null constructor - IdoA( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); } + IdoA( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -681,7 +691,7 @@ namespace privateer { public: GalA() { } //!< null constructor - GalA( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + GalA( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -690,7 +700,7 @@ namespace privateer { public: ManA() { } //!< null constructor - ManA( int x, int y, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + ManA( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -699,7 +709,7 @@ namespace privateer { public: shadedHexagon() { } //!< null constructor - shadedHexagon( int x, int y, std::string message, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel);} + shadedHexagon( int x, int y, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); }; @@ -707,7 +717,7 @@ namespace privateer { public: Unk() { } //!< null constructor - Unk( int x, int y, const char letter, std::string message, std::string mmdbsel = "") { set_pos(x, y); set_tooltip ( message ); code += letter; set_mmdbsel(mmdbsel);} + Unk( int x, int y, const char letter, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel = "" ) { set_pos(x, y); set_tooltip ( message ); code += letter; set_mmdbsel(mmdbsel); set_chainID(chainID); set_resname(resname); set_seqnum(seqnum);} std::string get_XML ( ); private: std::string code; @@ -756,7 +766,7 @@ namespace privateer public: GlycanRoot() {} //!< null constructor - GlycanRoot( int x, int y, std::string link_atom, std::string root_name, std::string root_id, std::string message, std::string mmdbsel="" ) + GlycanRoot( int x, int y, std::string link_atom, std::string root_name, std::string root_id, std::string message, std::string chainID = "N/A", std::string resname = "N/A", int seqnum = 0, std::string mmdbsel="" ) { set_pos(x, y); set_tooltip ( message ); @@ -764,6 +774,9 @@ namespace privateer set_root_name ( root_name ); set_root_id ( root_id ); set_mmdbsel ( mmdbsel ); + set_chainID ( chainID ); + set_resname ( resname ); + set_seqnum ( seqnum ); } std::string get_XML ( ); diff --git a/webserver/api/privateer.wasm b/webserver/api/privateer.wasm index c644a205..fdd807c1 100755 Binary files a/webserver/api/privateer.wasm and b/webserver/api/privateer.wasm differ diff --git a/webserver/src/components/GlycanDetail/GlycanDetail.jsx b/webserver/src/components/GlycanDetail/GlycanDetail.jsx index bf9100c8..57cdf053 100644 --- a/webserver/src/components/GlycanDetail/GlycanDetail.jsx +++ b/webserver/src/components/GlycanDetail/GlycanDetail.jsx @@ -7,19 +7,30 @@ import TorsionMultiPlot from "../TorsionPlot/TorsionMultiPlot"; const GlycanDetailTable = lazy(() => import('./GlycanDetailTable')); -export default function GlycanDetail({tableData, hideMoorhen, setHideMoorhen, rowID, forwardControls, scrollPosition}) { +export default function GlycanDetail({tableData, hideMoorhen, setHideMoorhen, rowID, forwardControls, scrollPosition, controls, molecule}) { + + async function handle_click(e) { + + let new_center_string = e.target.dataset.chainid + "/" + e.target.dataset.seqnum + "(" + e.target.dataset.resname + ")" + const selectedMolecule = controls.current.molecules.find((molecule) => molecule.name === "mol-1") + await selectedMolecule.centreOn(new_center_string) + + } const ref = useCallback((node) => { - let useList = document.querySelectorAll('use') + if (node !== null) { - for (let i = 0; i < useList.length; i++) { - useList[i].addEventListener("click", (e) => { - console.log(useList[i].id) - }) + let useList = node.querySelectorAll('use') + + for (let i = 0; i < useList.length; i++) { + useList[i].addEventListener('click', handle_click) + } } + document.querySelectorAll("svg")[0].setAttribute("width", "50vw") document.querySelectorAll("svg")[0].setAttribute("height", "100%") + }) // useEffect( () => { diff --git a/webserver/src/components/PrivateerDisplay/SNFG.jsx b/webserver/src/components/PrivateerDisplay/SNFG.jsx index d3b317aa..700a31ce 100644 --- a/webserver/src/components/PrivateerDisplay/SNFG.jsx +++ b/webserver/src/components/PrivateerDisplay/SNFG.jsx @@ -16,7 +16,7 @@ export default function SNFG({tableData, fileName, pdbString}) { const [cootInitialized, setCootInitialized] = useState(false) const controls = useRef() - + const [molecule, setMolecule] = useState() const forwardControls = (forwardedControls) => { setCootInitialized(true) controls.current = forwardedControls @@ -49,8 +49,9 @@ export default function SNFG({tableData, fileName, pdbString}) { let sugar_chain = id.split("/")[1].split("_")[0] let center_string = sugar_chain + "/" + sugar_id + "(" + sugar_name + ")" - console.log("PRIVATEER", center_string) + newMolecule.centreOn(center_string) + setMolecule(newMolecule) } ) }) @@ -76,6 +77,8 @@ export default function SNFG({tableData, fileName, pdbString}) { rowID={rowID} forwardControls={forwardControls} scrollPosition={yScrollPosition} + controls={controls} + molecule={molecule} /> diff --git a/webserver/src/wasm/privateer.wasm b/webserver/src/wasm/privateer.wasm index c644a205..fdd807c1 100755 Binary files a/webserver/src/wasm/privateer.wasm and b/webserver/src/wasm/privateer.wasm differ