1 2--- ------------------------------------------------------------------------- 3--- Definitions for GB project 4--- GUI projects are the basic units of data used in Genome Workbench 5--- 6--- ------------------------------------------------------------------------- 7 8NCBI-GBProject DEFINITIONS ::= 9BEGIN 10 11IMPORTS Annotdesc, Seq-annot FROM NCBI-Sequence 12 Seq-submit FROM NCBI-Submit 13 Seq-entry FROM NCBI-Seqset 14 Seq-id, Seq-loc FROM NCBI-Seqloc 15 Seq-align, Seq-align-set FROM NCBI-Seqalign 16 Date, User-object FROM NCBI-General; 17 18EXPORTS ProjectFolder, ProjectItem, ProjectHistoryItem, ProjectDescr, ProjectAnnot, 19 FolderInfo, AbstractProjectItem, LoaderDescriptor, ViewDescriptor; 20 21 22-- A dummy type used for replacing 'removed' or deprecated optional fields that 23-- have not been used and won't be used any more. 24DummyObsoleteType ::= CHOICE { 25 null NULL 26} 27 28-- 29-- Version 2 project 30-- With version two we start a new paradigm 31-- The first item in the project *MUST* be a non-optional version stamp, 32-- composed as an integer. This allows us to use a binary ASN.1 fingerprint to 33-- determine the version prior to reading a file. 34-- 35GBProject-ver2 ::= SEQUENCE { 36 37 -- the version for this project 38 -- for this particular instance, this should always be 2 39 -- this data element *MUST* be first 40 project-version VisibleString, 41 42 -- next counter for project items 43 counter INTEGER DEFAULT 0, 44 45 -- standard descriptors 46 descr ProjectDescr, 47 48 -- a set of extra analyses perfromed by the user 49 -- each of these may have descriptors 50 data ProjectFolder, 51 52 -- a copy of the original plugin message used to generate this project 53 -- This is deprecated. DO NOT USE THIS FIELD. 54 -- The original spec is: orig-message PluginMessage OPTIONAL. 55 -- It is intended to be removed, but a complete 56 -- removal will cause order shift for the rest of 57 -- fields in this choice, and cause deserialization 58 -- failure for existing ASN file since this filed is 59 -- in the middle of the spec. 60 obsolete-orig-message DummyObsoleteType OPTIONAL, 61 62 -- history of things done to this object 63 history SET OF ProjectHistoryItem OPTIONAL, 64 65 --name of the plugin that can handle External Data for the project 66 data-plugin VisibleString OPTIONAL, 67 68 --optional parameter for the data-plugin 69 plugin-param VisibleString OPTIONAL, 70 71 -- arbitrary annotations 72 annot SET OF ProjectAnnot OPTIONAL, 73 74 -- a set of data sources including data loader and data 75 loaders SET OF LoaderDescriptor OPTIONAL, 76 77 --- set of views, associated with project 78 views SET OF ViewDescriptor OPTIONAL, 79 80 -- set of view-specific settings 81 view-settings SET OF User-object OPTIONAL 82} 83 84 85ViewDataLink ::= SEQUENCE { 86 --- if both are absent - link goes to project 87 --- if both present - fingerprinted object inside project item 88 --- if only project-item-id present - link goes to project item 89 90 --- project item id 91 project-item-id INTEGER OPTIONAL, 92 93 --- fingerprint of object to show in view 94 fingerprint CHOICE { 95 crc32 INTEGER, 96 md5 OCTET STRING 97 } OPTIONAL, 98 99 type VisibleString 100} 101 102ViewDescriptor ::= SEQUENCE { 103 --- data for view opening 104 data CHOICE { 105 --- link to retrieve data 106 link ViewDataLink, 107 108 --- virtual project item, if link cannot be created 109 item ProjectItem 110 }, 111 112 --- plugin name of saved view 113 view-plugin VisibleString, 114 115 --- view id 116 view-id INTEGER, 117 118 --- optional settings, requered to open view 119 view-memento ViewMemento OPTIONAL 120} 121 122 123ViewMemento ::= SEQUENCE { 124 options-id INTEGER 125} 126 127 128ProjectFolder ::= SEQUENCE { 129 info FolderInfo, 130 folders SET OF ProjectFolder OPTIONAL, 131 items SET OF ProjectItem OPTIONAL 132} 133 134 135ProjectItem ::= SEQUENCE { 136 -- serial number - must be unique in a project (GBProject) 137 id INTEGER, 138 139 -- user-defined label 140 label VisibleString OPTIONAL, 141 142 -- user-defined descriptors 143 descr SET OF Annotdesc OPTIONAL, 144 145 -- the item we represent 146 item CHOICE { 147 -- for projects that simply import a far-pointer 148 id Seq-id, 149 150 -- for projects that contain something else 151 entry Seq-entry, 152 153 -- annotation only 154 annot Seq-annot, 155 156 -- for submission 157 submit Seq-submit, 158 159 -- seq-align and seq-align-set as registered items 160 seq-align Seq-align, 161 seq-align-set Seq-align-set, 162 163 -- plugin message 164 -- This is deprecated. DO NOT USE THIS FIELD. 165 -- The original spec is: plugin PluginMessage. 166 -- It is intended to be removed, but a complete 167 -- removal will cause order shift for the rest of 168 -- fields in this choice, and cause deserialization 169 -- failure for existing ASN files since this filed is 170 -- in the middle of the spec. 171 obsolete-plugin DummyObsoleteType, 172 173 -- arbitrary object (use with care!) 174 other AbstractProjectItem, 175 176 -- PubMed ID 177 pmid SET OF INTEGER, 178 179 -- Taxonomy ID 180 taxid SET OF INTEGER 181 }, 182 183 --name of the plugin that can handle External Data for the project 184 data-plugin VisibleString OPTIONAL, 185 186 -- "folder open" state 187 disabled BOOLEAN OPTIONAL 188} 189 190AbstractProjectItem ::= SEQUENCE { 191 type VisibleString, 192 data OCTET STRING 193} 194 195 196ProjectHistoryItem ::= SEQUENCE { 197 -- ID of ProjectItem referenced 198 id INTEGER, 199 200 -- date of modification 201 date Date, 202 203 -- label for this item (terse description) 204 label VisibleString, 205 206 -- optional longer description 207 comment VisibleString OPTIONAL 208} 209 210 211FolderInfo ::= SEQUENCE { 212 title VisibleString, 213 214 -- basic descriptors 215 create-date Date, 216 217 -- optional comments 218 comment VisibleString OPTIONAL, 219 220 -- "folder open" state 221 open BOOLEAN OPTIONAL, 222 223 -- arbitrary annotations 224 annot SET OF Annotdesc OPTIONAL 225} 226 227 228ProjectDescr ::= SEQUENCE { 229 -- user-defined title for the workspace 230 title VisibleString, 231 232 -- basic (required) descriptors 233 create-date Date, 234 modified-date Date OPTIONAL, 235 236 -- optional descriptors 237 comment VisibleString OPTIONAL 238} 239 240 241ProjectAnnot ::= SEQUENCE { 242 create-date Date, 243 modified-date Date OPTIONAL, 244 annot Annotdesc 245} 246 247 248LoaderDescriptor ::= SEQUENCE { 249 -- data loader label 250 label VisibleString, 251 252 -- loader data source type 253 loader-type VisibleString, 254 255 -- data, depends on loader type 256 data User-object, 257 258 -- flag: is this data loader enabled? 259 enabled BOOLEAN DEFAULT TRUE, 260 261 -- loader priority used in object manager 262 priority INTEGER OPTIONAL 263} 264 265 266END 267 268