package IMP; option optimize_for = LITE_RUNTIME; message Reference { repeated string author=1; required string title=2; required string journal=3; required uint32 year=4; } message Color { required float red=1; required float green=2; required float blue=3; } message Coordinates { required double x=1; required double y=2; required double z=3; } message Label { required string text=1; required Coordinates coordinates=2; optional float standoff=3; } message Geometry { optional string name=1; repeated Coordinates vertex=2; // -1 delimited faces repeated int32 face=3 [packed=true]; // -1 delimited edges repeated int32 edge=4 [packed=true]; // positive values if the edge should be a cylinder repeated float edge_radius=6 [packed=true]; // a positive value for anything that should be displayed as a ball repeated float vertex_radius=5 [packed=true]; repeated Geometry geometry=7; repeated Label label=8; } message Structure { message RepresentationID { required uint32 id=1; } message Representation { required uint32 id = 1; // store the pdb name for atoms or tlc for residues // or anything else for other things optional string name = 2; // the sequence as one letter codes optional string sequence =11; optional Coordinates coordinates =3; optional double radius =6; //repeated uint32 children= 8 [packed=true]; optional RepresentationID parent =9; optional double mass= 10; optional uint32 element=13; // say 0 for none, 1 for helix, 2 for beta optional uint32 secondary_structure=17; repeated uint32 residue_index=14 [packed=true]; optional Color color=15; optional Geometry geometry=16; } message Bond { required uint32 id=1; optional uint32 type=2; repeated RepresentationID endpoint=3; } message Feature { required uint32 id=1; required string name=2; repeated RepresentationID representation=3; optional float value=4; optional Color color=5; } repeated Representation representation=1; repeated Bond bond=2; optional Reference reference=3; repeated Feature feature=4; } message File { repeated Structure structure=1; optional Reference reference=3; }