928
931
Uint1 seqdesctype; /* seqdesc subtype */
929
932
} SMDescItem, PNTR SMDescItemPtr;
934
typedef struct smfiditem {
936
CharPtr fid; /* string with numeric or alpha local feature ID */
937
} SMFidItem, PNTR SMFidItemPtr;
931
939
typedef struct bioseqextra {
933
941
ObjMgrDataPtr omdp;
934
SeqFeatPtr protFeat; /* protein feature on whole protein bioseq gives name */
935
SeqFeatPtr cdsOrRnaFeat; /* cds or rna whose product points to this bioseq */
936
ValNodePtr prodlisthead; /* all features whose product points to this bioseq */
938
SMFeatBlockPtr featlisthead; /* linked list of SMFeatItem chunks, arrays point to elements */
939
SMFeatBlockPtr featlisttail; /* current block in linked list of SMFeatItem chunks */
941
ValNodePtr desclisthead; /* linked list of ValNodes pointing to SMDescItem structures */
943
SMDescItemPtr PNTR descrsByID; /* array of all descriptors on bioseq in original itemID order */
944
SMDescItemPtr PNTR descrsBySdp; /* array of all features on bioseq sorted by SeqDescrPtr */
945
SMDescItemPtr PNTR descrsByIndex; /* array of all features on bioseq sorted by order of presentation */
947
AnnotDescPtr PNTR annotDescByID; /* array of all AnnotDesc (on entity) in original itemID order */
949
SeqAlignPtr PNTR alignsByID; /* array of all alignments (on entity) in original itemID order */
951
SMFeatItemPtr PNTR featsByID; /* array of all features on bioseq in original itemID order */
952
SMFeatItemPtr PNTR featsBySfp; /* array of all features on bioseq sorted by SeqFeatPtr */
953
SMFeatItemPtr PNTR featsByPos; /* array of all features on bioseq sorted by location */
954
SMFeatItemPtr PNTR featsByRev; /* array of all features on bioseq sorted by reverse location */
955
SMFeatItemPtr PNTR featsByLabel; /* array of all features on bioseq sorted by label */
957
SMFeatItemPtr PNTR genesByPos; /* subset of featsByPos array containing only gene features */
958
SMFeatItemPtr PNTR mRNAsByPos; /* subset of featsByPos array containing only mRNA features */
959
SMFeatItemPtr PNTR CDSsByPos; /* subset of featsByPos array containing only CDS features */
960
SMFeatItemPtr PNTR pubsByPos; /* subset of featsByPos array containing only publication features */
961
SMFeatItemPtr PNTR orgsByPos; /* subset of featsByPos array containing only biosource features */
962
SMFeatItemPtr PNTR operonsByPos; /* subset of featsByPos array containing only operon features */
964
SMFeatItemPtr PNTR genesByLocusTag; /* array of gene features sorted by locus_tag */
966
BioseqPtr parentBioseq; /* segmented parent of this raw part all packaged together */
967
SMSeqIdxPtr segparthead; /* linked list to speed mapping from parts to segmented bioseq */
969
SMSeqIdxPtr PNTR partsByLoc; /* array of parts on segmented bioseq sorted by location */
970
SMSeqIdxPtr PNTR partsBySeqId; /* array of parts on segmented bioseq sorted by reverse uppercase seqID */
972
Int4 numdescs; /* number of elements in descrsByID, descrsBySdp, and descrsByIndex arrays */
973
Int4 numannotdesc; /* number of elements in annotDescByID array */
974
Int4 numaligns; /* number of elements in alignsByID array */
975
Int4 numfeats; /* number of elements in featsByID, featsBySfp and featsByPos arrays */
976
Int4 numgenes; /* number of elements in genesByPos array */
977
Int4 nummRNAs; /* number of elements in mRNAsByPos array */
978
Int4 numCDSs; /* number of elements in CDSsByPos array */
979
Int4 numpubs; /* number of elements in pubsByPos array */
980
Int4 numorgs; /* number of elements in orgsByPos array */
981
Int4 numoperons; /* number of elements in operonsByPos array */
983
Int4 numsegs; /* number of segments in partslist array */
985
Int4 min; /* used for finding best protein feature */
986
Uint4 bspItemID; /* for bioseq explore functions */
987
Uint4 bspIndex; /* for bioseq explore functions */
988
Int2 blocksize; /* size of SMFeatBlock.data array to avoid wasting space */
989
/* additional fields to map between genome record and parts,
990
genomic DNA and mRNA, and mRNA and protein */
942
SeqFeatPtr protFeat; /* protein feature on whole protein bioseq gives name */
943
SeqFeatPtr cdsOrRnaFeat; /* cds or rna whose product points to this bioseq */
944
ValNodePtr prodlisthead; /* all features whose product points to this bioseq */
946
SMFeatBlockPtr featlisthead; /* linked list of SMFeatItem chunks, arrays point to elements */
947
SMFeatBlockPtr featlisttail; /* current block in linked list of SMFeatItem chunks */
949
ValNodePtr desclisthead; /* linked list of ValNodes pointing to SMDescItem structures */
951
SMDescItemPtr PNTR descrsByID; /* array of all descriptors on bioseq in original itemID order */
952
SMDescItemPtr PNTR descrsBySdp; /* array of all features on bioseq sorted by SeqDescrPtr */
953
SMDescItemPtr PNTR descrsByIndex; /* array of all features on bioseq sorted by order of presentation */
955
AnnotDescPtr PNTR annotDescByID; /* array of all AnnotDesc (on entity) in original itemID order */
957
SeqAlignPtr PNTR alignsByID; /* array of all alignments (on entity) in original itemID order */
959
SMFeatItemPtr PNTR featsByID; /* array of all features on bioseq in original itemID order */
960
SMFeatItemPtr PNTR featsBySfp; /* array of all features on bioseq sorted by SeqFeatPtr */
961
SMFeatItemPtr PNTR featsByPos; /* array of all features on bioseq sorted by location */
962
SMFeatItemPtr PNTR featsByRev; /* array of all features on bioseq sorted by reverse location */
963
SMFeatItemPtr PNTR featsByLabel; /* array of all features on bioseq sorted by label */
965
SMFeatItemPtr PNTR genesByPos; /* subset of featsByPos array containing only gene features */
966
SMFeatItemPtr PNTR mRNAsByPos; /* subset of featsByPos array containing only mRNA features */
967
SMFeatItemPtr PNTR CDSsByPos; /* subset of featsByPos array containing only CDS features */
968
SMFeatItemPtr PNTR pubsByPos; /* subset of featsByPos array containing only publication features */
969
SMFeatItemPtr PNTR orgsByPos; /* subset of featsByPos array containing only biosource features */
970
SMFeatItemPtr PNTR operonsByPos; /* subset of featsByPos array containing only operon features */
971
SMFeatItemPtr PNTR genesByLocusTag; /* array of gene features sorted by locus_tag */
973
SMFidItemPtr PNTR featsByFeatID; /* array of features sorted by feature ID string */
975
BioseqPtr parentBioseq; /* segmented parent of this raw part all packaged together */
976
SMSeqIdxPtr segparthead; /* linked list to speed mapping from parts to segmented bioseq */
978
SMSeqIdxPtr PNTR partsByLoc; /* array of parts on segmented bioseq sorted by location */
979
SMSeqIdxPtr PNTR partsBySeqId; /* array of parts on segmented bioseq sorted by reverse uppercase seqID */
981
Int4 numdescs; /* number of elements in descrsByID, descrsBySdp, and descrsByIndex arrays */
982
Int4 numannotdesc; /* number of elements in annotDescByID array */
983
Int4 numaligns; /* number of elements in alignsByID array */
984
Int4 numfeats; /* number of elements in featsByID, featsBySfp and featsByPos arrays */
985
Int4 numgenes; /* number of elements in genesByPos array */
986
Int4 nummRNAs; /* number of elements in mRNAsByPos array */
987
Int4 numCDSs; /* number of elements in CDSsByPos array */
988
Int4 numpubs; /* number of elements in pubsByPos array */
989
Int4 numorgs; /* number of elements in orgsByPos array */
990
Int4 numoperons; /* number of elements in operonsByPos array */
991
Int4 numfids; /* number of elements in featsByFeatID array */
993
Int4 numsegs; /* number of segments in partslist array */
995
Int4 min; /* used for finding best protein feature */
996
Uint4 bspItemID; /* for bioseq explore functions */
997
Uint4 bspIndex; /* for bioseq explore functions */
998
Int2 blocksize; /* size of SMFeatBlock.data array to avoid wasting space */
999
/* additional fields to map between genome record and parts,
1000
genomic DNA and mRNA, and mRNA and protein */
991
1001
} BioseqExtra, PNTR BioseqExtraPtr;
993
1003
/* the following functions are not frequently called by applications */