📄 general.asn
字号:
---- ===========================================================================-- PRODUCTION $Log: general.asn,v $-- PRODUCTION Revision 1000.0 2003/10/29 21:15:01 gouriano-- PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R6.4-- PRODUCTION-- ===========================================================================----$Revision: 1000.0 $--**********************************************************************---- NCBI General Data elements-- by James Ostell, 1990-- Version 3.0 - June 1994----**********************************************************************NCBI-General DEFINITIONS ::=BEGINEXPORTS Date, Person-id, Object-id, Dbtag, Int-fuzz, User-object;-- StringStore is really a VisibleString. It is used to define very-- long strings which may need to be stored by the receiving program-- in special structures, such as a ByteStore, but it's just a hint.-- AsnTool stores StringStores in ByteStore structures.-- OCTET STRINGs are also stored in ByteStores by AsnTool-- -- typedef struct bsunit { /* for building multiline strings */ -- Nlm_Handle str; /* the string piece */ -- Nlm_Int2 len_avail, -- len; -- struct bsunit PNTR next; } /* the next one */-- Nlm_BSUnit, PNTR Nlm_BSUnitPtr;-- -- typedef struct bytestore { -- Nlm_Int4 seekptr, /* current position */ -- totlen, /* total stored data length in bytes */ -- chain_offset; /* offset in ByteStore of first byte in curchain */ -- Nlm_BSUnitPtr chain, /* chain of elements */ -- curchain; /* the BSUnit containing seekptr */-- } Nlm_ByteStore, PNTR Nlm_ByteStorePtr;---- AsnTool incorporates this as a primitive type, so the definition-- is here just for completeness-- -- StringStore ::= [APPLICATION 1] IMPLICIT OCTET STRING---- BigInt is really an INTEGER. It is used to warn the receiving code to expect-- a value bigger than Int4 (actually Int8). It will be stored in DataVal.bigintvalue---- Like StringStore, AsnTool incorporates it as a primitive. The definition would be:-- BigInt ::= [APPLICATION 2] IMPLICIT INTEGER---- Date is used to replace the (overly complex) UTCTtime, GeneralizedTime-- of ASN.1-- It stores only a date--Date ::= CHOICE { str VisibleString , -- for those unparsed dates std Date-std } -- use this if you canDate-std ::= SEQUENCE { -- NOTE: this is NOT a unix tm struct year INTEGER , -- full year (including 1900) month INTEGER OPTIONAL , -- month (1-12) day INTEGER OPTIONAL , -- day of month (1-31) season VisibleString OPTIONAL , -- for "spring", "may-june", etc hour INTEGER OPTIONAL , -- hour of day (0-23) minute INTEGER OPTIONAL , -- minute of hour (0-59) second INTEGER OPTIONAL } -- second of minute (0-59)-- Dbtag is generalized for tagging-- eg. { "Social Security", str "023-79-8841" }-- or { "member", id 8882224 }Dbtag ::= SEQUENCE { db VisibleString , -- name of database or system tag Object-id } -- appropriate tag-- Object-id can tag or name anything--Object-id ::= CHOICE { id INTEGER , str VisibleString }-- Person-id is to define a std element for people--Person-id ::= CHOICE { dbtag Dbtag , -- any defined database tag name Name-std , -- structured name ml VisibleString , -- MEDLINE name (semi-structured) -- eg. "Jones RM" str VisibleString, -- unstructured name consortium VisibleString } -- consortium nameName-std ::= SEQUENCE { -- Structured names last VisibleString , first VisibleString OPTIONAL , middle VisibleString OPTIONAL , full VisibleString OPTIONAL , -- full name eg. "J. John Smith, Esq" initials VisibleString OPTIONAL, -- first + middle initials suffix VisibleString OPTIONAL , -- Jr, Sr, III title VisibleString OPTIONAL } -- Dr., Sister, etc--**** Int-fuzz **********************************************--*--* uncertainties in integer valuesInt-fuzz ::= CHOICE { p-m INTEGER , -- plus or minus fixed amount range SEQUENCE { -- max to min max INTEGER , min INTEGER } , pct INTEGER , -- % plus or minus (x10) 0-1000 lim ENUMERATED { -- some limit value unk (0) , -- unknown gt (1) , -- greater than lt (2) , -- less than tr (3) , -- space to right of position tl (4) , -- space to left of position circle (5) , -- artificial break at origin of circle other (255) } , -- something else alt SET OF INTEGER } -- set of alternatives for the integer--**** User-object **********************************************--*--* a general object for a user defined structured data item--* used by Seq-feat and Seq-descrUser-object ::= SEQUENCE { class VisibleString OPTIONAL , -- endeavor which designed this object type Object-id , -- type of object within class data SEQUENCE OF User-field } -- the object itselfUser-field ::= SEQUENCE { label Object-id , -- field label num INTEGER OPTIONAL , -- required for strs, ints, reals, oss data CHOICE { -- field contents str VisibleString , int INTEGER , real REAL , bool BOOLEAN , os OCTET STRING , object User-object , -- for using other definitions strs SEQUENCE OF VisibleString , ints SEQUENCE OF INTEGER , reals SEQUENCE OF REAL , oss SEQUENCE OF OCTET STRING , fields SEQUENCE OF User-field , objects SEQUENCE OF User-object } }END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -