// // Resolution and meta-info returned by the NCBI Pubseq Gateway server (PSG) syntax = "proto3"; package ncbi.psg.retrieval; option optimize_for = LITE_RUNTIME; // // STORAGE // // Seq-id type // seqloc.asn: Seq-id (C++: CSeq_id_Base::E_Choice) enum EnumSeqIdType { SEQID_NOT_SET = 0; SEQID_LOCAL = 1; SEQID_GIBBSQ = 2; SEQID_GIBBMT = 3; SEQID_GIIM = 4; SEQID_GENBANK = 5; SEQID_EMBL = 6; SEQID_PIR = 7; SEQID_SWISSPROT = 8; SEQID_PATENT = 9; SEQID_OTHER = 10; SEQID_GENERAL = 11; SEQID_GI = 12; SEQID_DDBJ = 13; SEQID_PRF = 14; SEQID_PDB = 15; SEQID_TPG = 16; SEQID_TPE = 17; SEQID_TPD = 18; SEQID_GPIPE = 19; SEQID_NAMED_ANNOT_TRACK = 20; } enum EnumSeqState { SEQ_STATE_DEAD = 0; SEQ_STATE_SOUGHT = 1; SEQ_STATE_RESERVED = 5; SEQ_STATE_MERGED = 7; SEQ_STATE_LIVE = 10; } // Bioseq molecule type // seq.asn: Seq-inst.mol (C++: CSeq_inst_Base::EMol) enum EnumSeqMolType { MOL_NOT_SET = 0; MOL_DNA = 1; MOL_RNA = 2; MOL_AA = 3; MOL_NA = 4; MOL_OTHER = 255; } // Bioseq class // seqset.asn: Bioseq-set.class (C++: CBioseq_set::EClass) enum EnumSeqClass { CLASS_NOT_SET = 0; CLASS_NUC_PROT = 1; CLASS_SEGSET = 2; CLASS_CONSET = 3; CLASS_PARTS = 4; CLASS_GIBB = 5; CLASS_GI = 6; CLASS_GENBANK = 7; CLASS_PIR = 8; CLASS_PUB_SET = 9; CLASS_EQUIV = 10; CLASS_SWISSPROT = 11; CLASS_PDB_ENTRY = 12; CLASS_MUT_SET = 13; CLASS_POP_SET = 14; CLASS_PHY_SET = 15; CLASS_ECO_SET = 16; CLASS_GEN_PROD_SET = 17; CLASS_WGS_SET = 18; CLASS_NAMED_ANNOT = 19; CLASS_NAMED_ANNOT_PROD = 20; CLASS_READ_SET = 21; CLASS_PAIRED_END_READS = 22; CLASS_SMALL_GENOME_SET = 23; CLASS_OTHER = 255; } message BlobPropKey { int32 sat = 1; int32 sat_key = 2; } message BioseqInfoValue { BlobPropKey blob_key = 1; EnumSeqState state = 2; EnumSeqMolType mol = 3; int32 hash = 4; int64 length = 5; int64 date_changed = 6; // timestamp in ms since Jan 1 1970, 0:00+0000 uint32 tax_id = 7; message SecondaryId { EnumSeqIdType sec_seq_id_type = 1; string sec_seq_id = 2; } repeated SecondaryId seq_ids = 8; string name = 9; EnumSeqState seq_state = 10; } message BioseqInfoKey { string accession = 1; int32 version = 2; EnumSeqIdType seq_id_type = 3; int64 gi = 4; } message BlobPropValue { EnumSeqClass class = 1; int64 date_asn1 = 2; // timestamp in ms since Jan 1 1970, 0:00+0000 string div = 3; uint64 flags = 4; int64 hup_date = 5; // timestamp in ms since Jan 1 1970, 0:00+0000 string id2_info = 6; int32 n_chunks = 7; int32 owner = 8; int64 size = 9; int64 size_unpacked = 10; string username = 11; } // // COMMUNICATION (Reply) // enum EnumReplyStatus { STATUS_NOT_SET = 0; STATUS_SUCCESS = 1; STATUS_NOT_FOUND = 2; STATUS_INVALID_REQUEST = 3; STATUS_SERVER_TIMEOUT = 4; STATUS_SERVER_ERROR = 5; } message ReplyStatus { EnumReplyStatus status_code = 1; repeated string message = 2; } message BioseqInfoReply { ReplyStatus status = 1; BioseqInfoKey key = 2; BioseqInfoValue value = 3; } message BlobPropReply { ReplyStatus status = 1; BlobPropKey key = 2; BlobPropValue value = 3; }