pycrate/pycrate_asn1dir/NCBI_201702/seqtable.asn

227 lines
6.9 KiB
Groff

--$Revision: 386776 $
-- ----------------------------------------------------------------------------
--
-- PUBLIC DOMAIN NOTICE
-- National Center for Biotechnology Information
--
-- This software/database is a "United States Government Work" under the terms
-- of the United States Copyright Act. It was written as part of the author's
-- official duties as a United States Government employee and thus cannot be
-- copyrighted. This software/database is freely available to the public for
-- use. The National Library of Medicine and the U.S. Government have not
-- placed any restriction on its use or reproduction.
--
-- Although all reasonable efforts have been taken to ensure the accuracy and
-- reliability of the software and data, the NLM and the U.S. Government do not
-- and cannot warrant the performance or results that may be obtained by using
-- this software or data. The NLM and the U.S. Government disclaim all
-- warranties, express or implied, including warranties of performance,
-- merchantability or fitness for any particular purpose.
--
-- Please cite the authors in any work or product based on this material.
--
-- ----------------------------------------------------------------------------
--
-- Authors: Mike DiCuccio, Eugene Vasilchenko
--
-- ASN.1 interface to table readers
--
-- ----------------------------------------------------------------------------
NCBI-SeqTable DEFINITIONS ::=
BEGIN
EXPORTS
SeqTable-column-info, SeqTable-column, Seq-table;
IMPORTS
Seq-id, Seq-loc, Seq-interval FROM NCBI-Seqloc;
SeqTable-column-info ::= SEQUENCE {
-- user friendly column name, can be skipped
title VisibleString OPTIONAL,
-- identification of the column data in the objects described by the table
field-id INTEGER { -- known column data types
-- position types
location (0), -- location as Seq-loc
location-id (1), -- location Seq-id
location-gi (2), -- gi
location-from (3), -- interval from
location-to (4), -- interval to
location-strand (5), -- location strand
location-fuzz-from-lim (6),
location-fuzz-to-lim (7),
product (10), -- product as Seq-loc
product-id (11), -- product Seq-id
product-gi (12), -- product gi
product-from (13), -- product interval from
product-to (14), -- product interval to
product-strand (15), -- product strand
product-fuzz-from-lim (16),
product-fuzz-to-lim (17),
-- main feature fields
id-local (20), -- id.local.id
xref-id-local (21), -- xref.id.local.id
partial (22),
comment (23),
title (24),
ext (25), -- field-name must be "E.xxx", see below
qual (26), -- field-name must be "Q.xxx", see below
dbxref (27), -- field-name must be "D.xxx", see below
-- various data fields
data-imp-key (30),
data-region (31),
data-cdregion-frame (32),
-- extra fields, see also special values for str below
ext-type (40),
qual-qual (41),
qual-val (42),
dbxref-db (43),
dbxref-tag (44)
} OPTIONAL,
-- any column can be identified by ASN.1 text locator string
-- with omitted object type.
-- examples:
-- "data.gene.locus" for Seq-feat.data.gene.locus
-- "data.imp.key" for Seq-feat.data.imp.key
-- "qual.qual"
-- - Seq-feat.qual is SEQUENCE so several columns are allowed
-- see also "Q.xxx" special value for shorter qual representation
-- "ext.type.str"
-- "ext.data.label.str"
-- "ext.data.data.int"
-- see also "E.xxx" special value for shorter ext representation
-- special values start with capital letter:
-- "E.xxx" - ext.data.label.str = xxx, ext.data.data = data
-- - Seq-feat.ext.data is SEQUENCE so several columns are allowed
-- "Q.xxx" - qual.qual = xxx, qual.val = data
-- - Seq-feat.qual is SEQUENCE so several columns are allowed
-- "D.xxx" - dbxref.id = xxx, dbxref.tag = data
-- - Seq-feat.dbxref is SET so several columns are allowed
field-name VisibleString OPTIONAL
}
CommonString-table ::= SEQUENCE {
-- set of possible values
strings SEQUENCE OF UTF8String,
-- indexes of values
indexes SEQUENCE OF INTEGER
}
CommonBytes-table ::= SEQUENCE {
-- set of possible values
bytes SEQUENCE OF OCTET STRING,
-- indexes of values
indexes SEQUENCE OF INTEGER
}
SeqTable-multi-data ::= CHOICE {
-- a set of integers, one per row
int SEQUENCE OF INTEGER,
-- a set of reals, one per row
real SEQUENCE OF REAL,
-- a set of strings, one per row
string SEQUENCE OF UTF8String,
-- a set of byte arrays, one per row
bytes SEQUENCE OF OCTET STRING,
-- a set of string with small set of possible values
common-string CommonString-table,
-- a set of byte arrays with small set of possible values
common-bytes CommonBytes-table,
-- a set of bits, one per row
-- this uses bm::bvector<> as its storage mechanism
bit OCTET STRING,
-- a set of locations, one per row
loc SEQUENCE OF Seq-loc,
id SEQUENCE OF Seq-id,
interval SEQUENCE OF Seq-interval
}
SeqTable-single-data ::= CHOICE {
-- integer
int INTEGER,
-- real
real REAL,
-- string
string UTF8String,
-- byte array
bytes OCTET STRING,
-- bit
bit BOOLEAN,
-- location
loc Seq-loc,
id Seq-id,
interval Seq-interval
}
SeqTable-sparse-index ::= CHOICE {
-- indexes of rows with values
indexes SEQUENCE OF INTEGER,
-- bitset of rows with values
bit-set OCTET STRING
}
SeqTable-column ::= SEQUENCE {
-- column description or reference to previously defined info
header SeqTable-column-info, -- information about data
-- row data
data SeqTable-multi-data OPTIONAL,
-- in case not all rows contain data this field will contain sparse info
sparse SeqTable-sparse-index OPTIONAL,
-- default value for sparse table, or if row data is too short
default SeqTable-single-data OPTIONAL,
-- single value for indexes not listed in sparse table
sparse-other SeqTable-single-data OPTIONAL
}
Seq-table ::= SEQUENCE {
-- type of features in this table, equal to Seq-feat.data variant index
feat-type INTEGER,
-- subtype of features in this table, defined in header SeqFeatData.hpp
feat-subtype INTEGER OPTIONAL,
-- number of rows
num-rows INTEGER,
-- data in columns
columns SEQUENCE OF SeqTable-column
}
END