src/objects/gbproj/gbproj.asn
Go to the SVN repository for this file
Go to list of all specification files
--- -------------------------------------------------------------------------
--- Definitions for GB project
--- GUI projects are the basic units of data used in Genome Workbench
---
--- -------------------------------------------------------------------------
NCBI-GBProject DEFINITIONS ::=
BEGIN
IMPORTS Annotdesc, Seq-annot FROM NCBI-Sequence
Seq-submit FROM NCBI-Submit
Seq-entry FROM NCBI-Seqset
Seq-id, Seq-loc FROM NCBI-Seqloc
Seq-align, Seq-align-set FROM NCBI-Seqalign
Date, User-object FROM NCBI-General;
EXPORTS ProjectFolder, ProjectItem, ProjectHistoryItem, ProjectDescr, ProjectAnnot,
FolderInfo, AbstractProjectItem, LoaderDescriptor, ViewDescriptor;
-- A dummy type used for replacing 'removed' or deprecated optional fields that
-- have not been used and won't be used any more.
DummyObsoleteType ::= CHOICE {
null NULL
}
--
-- Version 2 project
-- With version two we start a new paradigm
-- The first item in the project *MUST* be a non-optional version stamp,
-- composed as an integer. This allows us to use a binary ASN.1 fingerprint to
-- determine the version prior to reading a file.
--
GBProject-ver2 ::= SEQUENCE {
-- the version for this project
-- for this particular instance, this should always be 2
-- this data element *MUST* be first
project-version VisibleString,
-- next counter for project items
counter INTEGER DEFAULT 0,
-- standard descriptors
descr ProjectDescr,
-- a set of extra analyses perfromed by the user
-- each of these may have descriptors
data ProjectFolder,
-- a copy of the original plugin message used to generate this project
-- This is deprecated. DO NOT USE THIS FIELD.
-- The original spec is: orig-message PluginMessage OPTIONAL.
-- It is intended to be removed, but a complete
-- removal will cause order shift for the rest of
-- fields in this choice, and cause deserialization
-- failure for existing ASN file since this filed is
-- in the middle of the spec.
obsolete-orig-message DummyObsoleteType OPTIONAL,
-- history of things done to this object
history SET OF ProjectHistoryItem OPTIONAL,
--name of the plugin that can handle External Data for the project
data-plugin VisibleString OPTIONAL,
--optional parameter for the data-plugin
plugin-param VisibleString OPTIONAL,
-- arbitrary annotations
annot SET OF ProjectAnnot OPTIONAL,
-- a set of data sources including data loader and data
loaders SET OF LoaderDescriptor OPTIONAL,
--- set of views, associated with project
views SET OF ViewDescriptor OPTIONAL,
-- set of view-specific settings
view-settings SET OF User-object OPTIONAL
}
ViewDataLink ::= SEQUENCE {
--- if both are absent - link goes to project
--- if both present - fingerprinted object inside project item
--- if only project-item-id present - link goes to project item
--- project item id
project-item-id INTEGER OPTIONAL,
--- fingerprint of object to show in view
fingerprint CHOICE {
crc32 INTEGER,
md5 OCTET STRING
} OPTIONAL,
type VisibleString
}
ViewDescriptor ::= SEQUENCE {
--- data for view opening
data CHOICE {
--- link to retrieve data
link ViewDataLink,
--- virtual project item, if link cannot be created
item ProjectItem
},
--- plugin name of saved view
view-plugin VisibleString,
--- view id
view-id INTEGER,
--- optional settings, requered to open view
view-memento ViewMemento OPTIONAL
}
ViewMemento ::= SEQUENCE {
options-id INTEGER
}
ProjectFolder ::= SEQUENCE {
info FolderInfo,
folders SET OF ProjectFolder OPTIONAL,
items SET OF ProjectItem OPTIONAL
}
ProjectItem ::= SEQUENCE {
-- serial number - must be unique in a project (GBProject)
id INTEGER,
-- user-defined label
label VisibleString OPTIONAL,
-- user-defined descriptors
descr SET OF Annotdesc OPTIONAL,
-- the item we represent
item CHOICE {
-- for projects that simply import a far-pointer
id Seq-id,
-- for projects that contain something else
entry Seq-entry,
-- annotation only
annot Seq-annot,
-- for submission
submit Seq-submit,
-- seq-align and seq-align-set as registered items
seq-align Seq-align,
seq-align-set Seq-align-set,
-- plugin message
-- This is deprecated. DO NOT USE THIS FIELD.
-- The original spec is: plugin PluginMessage.
-- It is intended to be removed, but a complete
-- removal will cause order shift for the rest of
-- fields in this choice, and cause deserialization
-- failure for existing ASN files since this filed is
-- in the middle of the spec.
obsolete-plugin DummyObsoleteType,
-- arbitrary object (use with care!)
other AbstractProjectItem,
-- PubMed ID
pmid SET OF INTEGER,
-- Taxonomy ID
taxid SET OF INTEGER
},
--name of the plugin that can handle External Data for the project
data-plugin VisibleString OPTIONAL,
-- "folder open" state
disabled BOOLEAN OPTIONAL
}
AbstractProjectItem ::= SEQUENCE {
type VisibleString,
data OCTET STRING
}
ProjectHistoryItem ::= SEQUENCE {
-- ID of ProjectItem referenced
id INTEGER,
-- date of modification
date Date,
-- label for this item (terse description)
label VisibleString,
-- optional longer description
comment VisibleString OPTIONAL
}
FolderInfo ::= SEQUENCE {
title VisibleString,
-- basic descriptors
create-date Date,
-- optional comments
comment VisibleString OPTIONAL,
-- "folder open" state
open BOOLEAN OPTIONAL,
-- arbitrary annotations
annot SET OF Annotdesc OPTIONAL
}
ProjectDescr ::= SEQUENCE {
-- user-defined title for the workspace
title VisibleString,
-- basic (required) descriptors
create-date Date,
modified-date Date OPTIONAL,
-- optional descriptors
comment VisibleString OPTIONAL
}
ProjectAnnot ::= SEQUENCE {
create-date Date,
modified-date Date OPTIONAL,
annot Annotdesc
}
LoaderDescriptor ::= SEQUENCE {
-- data loader label
label VisibleString,
-- loader data source type
loader-type VisibleString,
-- data, depends on loader type
data User-object,
-- flag: is this data loader enabled?
enabled BOOLEAN DEFAULT TRUE,
-- loader priority used in object manager
priority INTEGER OPTIONAL
}
END