src/objects/seqsplit/seqsplit.asn

Go to the SVN repository for this file
Go to list of all specification files

--$Revision: 67040 $
--********************************************************************
--
--  Network Id server network access
--  Vasilchenko 2003
--
--
--*********************************************************************
--
--  seqsplit.asn
--
--     representation of split sequences
--
--*********************************************************************

NCBI-Seq-split DEFINITIONS ::=
BEGIN

EXPORTS ID2S-Chunk-Id, ID2S-Seq-annot-Info;

IMPORTS Seq-id                                      FROM NCBI-Seqloc
        Seq-entry                                   FROM NCBI-Seqset
        Bioseq, Seq-annot, Seq-descr, Seq-literal   FROM NCBI-Sequence
        Seq-align                                   FROM NCBI-Seqalign;

----------------------------------------------------------------------------
-- Blob split info types
----------------------------------------------------------------------------

----------------------------------------------------------------------------
-- Chunks split description


ID2S-Split-Info ::= SEQUENCE {
        bioseqs-info    SET OF ID2S-Bioseqs-Info OPTIONAL,
        chunks          SET OF ID2S-Chunk-Info,
        skeleton        Seq-entry OPTIONAL
}


ID2S-Bioseqs-Info ::= SEQUENCE {
        info            ID2S-Bioseq-Info,
        bioseqs         ID2S-Bioseq-Ids
}


ID2S-Bioseq-Info ::= SEQUENCE {
        gap-count       INTEGER OPTIONAL,
        seq-map-has-ref BOOLEAN OPTIONAL
}


ID2S-Chunk-Info ::= SEQUENCE {
        id              ID2S-Chunk-Id,
        content         SET OF ID2S-Chunk-Content
}


-- Description of information in this chunk
-- Place means id of Bioseq or Bioseq-set
ID2S-Chunk-Content ::= CHOICE {
        -- place of Seq-descrs
        seq-descr       ID2S-Seq-descr-Info,

        -- locations and types of annotations
        seq-annot       ID2S-Seq-annot-Info,

        -- place of assembly history
        seq-assembly    ID2S-Seq-assembly-Info,

        -- place of sequence map
        seq-map         ID2S-Seq-map-Info,
        
        -- place of sequence data
        seq-data        ID2S-Seq-data-Info,

        -- place of Seq-annots
        seq-annot-place ID2S-Seq-annot-place-Info,

        -- place of Bioseqs
        bioseq-place    SET OF ID2S-Bioseq-place-Info,

        -- ids of features
        feat-ids        SET OF ID2S-Seq-feat-Ids-Info
}


ID2S-Seq-descr-Info ::= SEQUENCE {
        type-mask       INTEGER, -- mask of Seq-descr types,
        bioseqs         ID2S-Bioseq-Ids OPTIONAL,
        bioseq-sets     ID2S-Bioseq-set-Ids OPTIONAL
}


ID2S-Seq-annot-Info ::= SEQUENCE {
        -- name is set if this is named annot
        -- name may be empty which differ from unnamed annot
        name            VisibleString OPTIONAL,
        align           NULL OPTIONAL,
        graph           NULL OPTIONAL,
        feat            SET OF ID2S-Feat-type-Info OPTIONAL,
        seq-loc         ID2S-Seq-loc OPTIONAL
}


ID2S-Seq-annot-place-Info ::= SEQUENCE {
        name            VisibleString OPTIONAL,
        bioseqs         ID2S-Bioseq-Ids OPTIONAL,
        bioseq-sets     ID2S-Bioseq-set-Ids OPTIONAL
}


ID2S-Seq-feat-Ids-Info ::= SEQUENCE {
        feat-types      SET OF ID2S-Feat-type-Info OPTIONAL,
        xref-types      SET OF ID2S-Feat-type-Info OPTIONAL,
        local-ids       SET OF INTEGER OPTIONAL,
        local-str-ids   SET OF VisibleString OPTIONAL
}


ID2S-Feat-type-Info ::=  SEQUENCE {
        type            INTEGER,
        subtypes        SET OF INTEGER OPTIONAL
}


ID2S-Seq-assembly-Info ::= SEQUENCE {
        bioseqs         ID2S-Bioseq-Ids
}


ID2S-Seq-map-Info ::= ID2S-Seq-loc


ID2S-Seq-data-Info ::= ID2S-Seq-loc


ID2S-Bioseq-place-Info ::= SEQUENCE {
        bioseq-set      INTEGER,
        seq-ids         ID2S-Bioseq-Ids
}


ID2S-Chunk ::= SEQUENCE {
        data            SET OF ID2S-Chunk-Data
}


ID2S-Chunk-Data ::= SEQUENCE {
        -- place of data to insert
        id              CHOICE {
                -- Bioseq-set id
                bioseq-set      INTEGER,
                -- Bioseq id
                gi              INTEGER,
                -- Bioseq id
                seq-id          Seq-id
        },
        -- Seq-descr, for Bioseq and Bioseq-set
        descr           Seq-descr OPTIONAL,
        -- Seq-annot, for Bioseq and Bioseq-set
        annots          SET OF Seq-annot OPTIONAL,
        -- assembly history Seq-align, for Bioseq
        assembly        SET OF Seq-align OPTIONAL,
        -- sequence map, for Bioseq
        seq-map         SEQUENCE OF ID2S-Sequence-Piece OPTIONAL,
        -- sequence data, for Bioseq
        seq-data        SEQUENCE OF ID2S-Sequence-Piece OPTIONAL,
        -- Bioseq, for Bioseq-set
        bioseqs         SET OF Bioseq OPTIONAL
}


ID2S-Sequence-Piece ::= SEQUENCE {
        start           INTEGER,  -- start position on sequence
        data            SEQUENCE OF Seq-literal
}


----------------------------------------------------------------------------
-- utility types
----------------------------------------------------------------------------


ID2S-Chunk-Id ::= INTEGER


ID2S-Bioseq-set-Ids ::= SET OF INTEGER


ID2S-Bioseq-Ids ::= SET OF CHOICE {
        gi              INTEGER,
        seq-id          Seq-id,
        gi-range        ID2S-Gi-Range
}


ID2S-Gi-Range ::= SEQUENCE {
        start           INTEGER,             -- start gi in this gi range
        count           INTEGER DEFAULT 1    -- number of sequential gis
}


-- ID2S-Seq-loc is used to represent unordered and unstranded
-- set of intervals on set of sequences.
-- It's optimized for compact encoding of several common cases:
--    Seq-ids of type gi,
--    intervals covering whole sequences,
--    whole sequences with sequential gis,
--    set of intervals on the same sequence (Seq-id sharing).
ID2S-Seq-loc ::= CHOICE {
        whole-gi        INTEGER,             -- whole sequence by gi
        whole-seq-id    Seq-id,              -- whole sequence by Seq-id
        whole-gi-range  ID2S-Gi-Range,       -- set of whole sequences by gis
        gi-interval     ID2S-Gi-Interval,    -- interval on sequence by gi
        seq-id-interval ID2S-Seq-id-Interval,-- interval on sequence by Seq-id
        gi-ints         ID2S-Gi-Ints,        -- set of intervals on the same gi
        seq-id-ints     ID2S-Seq-id-Ints,    -- set of intervals on the same id
        loc-set         SET OF ID2S-Seq-loc  -- combination of locations
}


ID2S-Gi-Interval ::= SEQUENCE {
        gi              INTEGER,
        start           INTEGER,
        length          INTEGER DEFAULT 1
}


ID2S-Seq-id-Interval ::= SEQUENCE {
        seq-id          Seq-id,
        start           INTEGER,
        length          INTEGER DEFAULT 1
}


ID2S-Interval ::= SEQUENCE {
        start           INTEGER,
        length          INTEGER DEFAULT 1
}


ID2S-Gi-Ints ::= SEQUENCE {
        gi              INTEGER,
        ints            SET OF ID2S-Interval
}


ID2S-Seq-id-Ints ::= SEQUENCE {
        seq-id          Seq-id,
        ints            SET OF ID2S-Interval
}


END