3
#define NLM_GENERATED_CODE_PROTO
7
static Boolean loaded = FALSE;
11
#ifndef NLM_EXTERN_LOADS
12
#define NLM_EXTERN_LOADS {}
15
NLM_EXTERN Boolean LIBCALL
32
/**************************************************
33
* Generated object loaders for Module NCBI-TSeq
34
* Generated using ASNCODE Revision: 6.14 at Jun 28, 2002 12:46 PM
36
**************************************************/
39
/**************************************************
43
**************************************************/
48
TSeqPtr ptr = MemNew((size_t) sizeof(TSeq));
55
/**************************************************
59
**************************************************/
68
MemFree(ptr -> accver);
70
MemFree(ptr -> local);
71
MemFree(ptr -> orgname);
72
MemFree(ptr -> defline);
73
MemFree(ptr -> sequence);
78
/**************************************************
82
**************************************************/
85
TSeqAsnRead(AsnIoPtr aip, AsnTypePtr orig)
89
Boolean isError = FALSE;
95
if (! objtseqAsnLoad()) {
104
if (orig == NULL) { /* TSeq ::= (self contained) */
105
atp = AsnReadId(aip, amp, TSEQ);
107
atp = AsnLinkType(orig, TSEQ);
109
/* link in local tree */
118
if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */
122
atp = AsnReadId(aip,amp, atp);
125
if (atp == TSEQ_seqtype) {
126
if ( AsnReadVal(aip, atp, &av) <= 0) {
129
ptr -> seqtype = av.intvalue;
130
atp = AsnReadId(aip,amp, atp);
132
if (atp == TSEQ_gi) {
133
if ( AsnReadVal(aip, atp, &av) <= 0) {
136
ptr -> gi = av.intvalue;
137
ptr -> OBbits__ |= 1<<0;
138
atp = AsnReadId(aip,amp, atp);
140
if (atp == TSEQ_accver) {
141
if ( AsnReadVal(aip, atp, &av) <= 0) {
144
ptr -> accver = av.ptrvalue;
145
atp = AsnReadId(aip,amp, atp);
147
if (atp == TSEQ_sid) {
148
if ( AsnReadVal(aip, atp, &av) <= 0) {
151
ptr -> sid = av.ptrvalue;
152
atp = AsnReadId(aip,amp, atp);
154
if (atp == TSEQ_local) {
155
if ( AsnReadVal(aip, atp, &av) <= 0) {
158
ptr -> local = av.ptrvalue;
159
atp = AsnReadId(aip,amp, atp);
161
if (atp == TSEQ_taxid) {
162
if ( AsnReadVal(aip, atp, &av) <= 0) {
165
ptr -> taxid = av.intvalue;
166
ptr -> OBbits__ |= 1<<1;
167
atp = AsnReadId(aip,amp, atp);
169
if (atp == TSEQ_orgname) {
170
if ( AsnReadVal(aip, atp, &av) <= 0) {
173
ptr -> orgname = av.ptrvalue;
174
atp = AsnReadId(aip,amp, atp);
176
if (atp == TSEQ_defline) {
177
if ( AsnReadVal(aip, atp, &av) <= 0) {
180
ptr -> defline = av.ptrvalue;
181
atp = AsnReadId(aip,amp, atp);
183
if (atp == TSEQ_length) {
184
if ( AsnReadVal(aip, atp, &av) <= 0) {
187
ptr -> length = av.intvalue;
188
atp = AsnReadId(aip,amp, atp);
190
if (atp == TSEQ_sequence) {
191
if ( AsnReadVal(aip, atp, &av) <= 0) {
194
ptr -> sequence = av.ptrvalue;
195
atp = AsnReadId(aip,amp, atp);
198
if (AsnReadVal(aip, atp, &av) <= 0) {
204
AsnUnlinkType(orig); /* unlink local tree */
208
aip -> io_failure = TRUE;
215
/**************************************************
219
**************************************************/
220
NLM_EXTERN Boolean LIBCALL
221
TSeqAsnWrite(TSeqPtr ptr, AsnIoPtr aip, AsnTypePtr orig)
225
Boolean retval = FALSE;
229
if (! objtseqAsnLoad()) {
238
atp = AsnLinkType(orig, TSEQ); /* link local tree */
243
if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; }
244
if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) {
248
av.intvalue = ptr -> seqtype;
249
retval = AsnWrite(aip, TSEQ_seqtype, &av);
250
if (ptr -> gi || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> gi;
251
retval = AsnWrite(aip, TSEQ_gi, &av);
253
if (ptr -> accver != NULL) {
254
av.ptrvalue = ptr -> accver;
255
retval = AsnWrite(aip, TSEQ_accver, &av);
257
if (ptr -> sid != NULL) {
258
av.ptrvalue = ptr -> sid;
259
retval = AsnWrite(aip, TSEQ_sid, &av);
261
if (ptr -> local != NULL) {
262
av.ptrvalue = ptr -> local;
263
retval = AsnWrite(aip, TSEQ_local, &av);
265
if (ptr -> taxid || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> taxid;
266
retval = AsnWrite(aip, TSEQ_taxid, &av);
268
if (ptr -> orgname != NULL) {
269
av.ptrvalue = ptr -> orgname;
270
retval = AsnWrite(aip, TSEQ_orgname, &av);
272
if (ptr -> defline != NULL) {
273
av.ptrvalue = ptr -> defline;
274
retval = AsnWrite(aip, TSEQ_defline, &av);
276
av.intvalue = ptr -> length;
277
retval = AsnWrite(aip, TSEQ_length, &av);
278
if (ptr -> sequence != NULL) {
279
av.ptrvalue = ptr -> sequence;
280
retval = AsnWrite(aip, TSEQ_sequence, &av);
282
if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) {
288
AsnUnlinkType(orig); /* unlink local tree */
294
/**************************************************
298
**************************************************/
301
TSeqSetFree(TSeqSetPtr ptr)
307
AsnGenericUserSeqOfFree(ptr, (AsnOptFreeFunc) TSeqFree);
312
/**************************************************
316
**************************************************/
319
TSeqSetAsnRead(AsnIoPtr aip, AsnTypePtr orig)
322
Boolean isError = FALSE;
328
if (! objtseqAsnLoad()) {
337
if (orig == NULL) { /* TSeqSet ::= (self contained) */
338
atp = AsnReadId(aip, amp, TSEQSET);
340
atp = AsnLinkType(orig, TSEQSET);
342
/* link in local tree */
349
ptr = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) TSeqAsnRead, (AsnOptFreeFunc) TSeqFree);
350
if (isError && ptr == NULL) {
357
AsnUnlinkType(orig); /* unlink local tree */
361
aip -> io_failure = TRUE;
362
ptr = TSeqSetFree(ptr);
368
/**************************************************
372
**************************************************/
373
NLM_EXTERN Boolean LIBCALL
374
TSeqSetAsnWrite(TSeqSetPtr ptr, AsnIoPtr aip, AsnTypePtr orig)
377
Boolean retval = FALSE;
381
if (! objtseqAsnLoad()) {
390
atp = AsnLinkType(orig, TSEQSET); /* link local tree */
395
if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; }
396
retval = AsnGenericUserSeqOfAsnWrite(ptr , (AsnWriteFunc) TSeqAsnWrite, aip, atp, TSEQSET_E);
400
AsnUnlinkType(orig); /* unlink local tree */
410
static void LIBCALLBACK SaveTseqSequence (
421
tmpp = (CharPtr PNTR) userdata;
425
if (sequence == NULL) return;
428
if (ch == '\n' || ch == '\r' || ch == '\t') {
434
TrimSpacesAroundString (sequence);
436
tmp = StringMove (tmp, sequence);
441
NLM_EXTERN TSeqPtr BioseqToTSeq (BioseqPtr bsp)
447
CharPtr accession = NULL, organism = NULL, title = NULL;
456
if (bsp == NULL) return NULL;
458
if (ISA_aa(bsp->mol))
459
tsp->seqtype = TSeq_seqtype_protein;
461
tsp->seqtype = TSeq_seqtype_nucleotide;
463
for (sip = bsp->id; sip != NULL; sip = sip->next)
468
tsp->gi = sip->data.intvalue;
473
case SEQID_SWISSPROT:
478
SeqIdWrite(sip, buf, PRINTID_TEXTID_ACC_VER, 250);
479
tsp->accver = StringSave(buf);
482
SeqIdWrite(sip, buf, PRINTID_FASTA_SHORT, 250);
483
tsp->sid = StringSave(buf);
488
CreateDefLine(NULL, bsp, buf, 250, 0, accession, organism);
489
tsp->defline = StringSave(buf);
491
vnp = GetNextDescriptorUnindexed (bsp, Seq_descr_source, NULL);
492
if (vnp != NULL && vnp->data.ptrvalue != NULL) {
493
biosp = (BioSourcePtr)(vnp->data.ptrvalue);
496
if (orp->taxname != NULL)
497
tsp->orgname = StringSave(orp->taxname);
498
else if (orp->common != NULL)
499
tsp->orgname = StringSave(orp->common);
501
for (vnp = orp->db; vnp != NULL; vnp = vnp->next)
503
dbp = (DbtagPtr)(vnp->data.ptrvalue);
504
if (! StringICmp("taxon", dbp->db))
507
tsp->taxid = oip->id;
514
tsp->length = bsp->length;
516
if (ISA_aa(bsp->mol))
518
seqcode = Seq_code_ncbieaa;
522
seqcode = Seq_code_iupacna;
525
seq = MemNew(bsp->length + 1);
528
SeqPortStream (bsp, STREAM_EXPAND_GAPS, (Pointer) &seq, SaveTseqSequence);
534
NLM_EXTERN Boolean AsnPrintString (CharPtr the_string, AsnIoPtr aip);
536
static void LIBCALLBACK TSeqStreamProc (CharPtr sequence, Pointer userdata)
541
aip = (AsnIoPtr) userdata;
543
AsnPrintString (sequence, aip);
546
static Boolean LIBCALL StreamTSeq (Pointer object, AsnIoPtr aip)
549
SeqPortStream ((BioseqPtr) object, STREAM_EXPAND_GAPS, (Pointer) aip, TSeqStreamProc);
553
static TSeqPtr BioseqToMiniTSeq (BioseqPtr bsp)
559
CharPtr accession = NULL, organism = NULL, title = NULL;
567
if (bsp == NULL) return NULL;
569
if (ISA_aa(bsp->mol))
570
tsp->seqtype = TSeq_seqtype_protein;
572
tsp->seqtype = TSeq_seqtype_nucleotide;
574
for (sip = bsp->id; sip != NULL; sip = sip->next)
579
tsp->gi = sip->data.intvalue;
584
case SEQID_SWISSPROT:
589
SeqIdWrite(sip, buf, PRINTID_TEXTID_ACC_VER, 250);
590
tsp->accver = StringSave(buf);
593
SeqIdWrite(sip, buf, PRINTID_FASTA_SHORT, 250);
594
tsp->sid = StringSave(buf);
599
CreateDefLine(NULL, bsp, buf, 250, 0, accession, organism);
600
tsp->defline = StringSave(buf);
602
vnp = GetNextDescriptorUnindexed (bsp, Seq_descr_source, NULL);
603
if (vnp != NULL && vnp->data.ptrvalue != NULL) {
604
biosp = (BioSourcePtr)(vnp->data.ptrvalue);
607
if (orp->taxname != NULL)
608
tsp->orgname = StringSave(orp->taxname);
609
else if (orp->common != NULL)
610
tsp->orgname = StringSave(orp->common);
612
for (vnp = orp->db; vnp != NULL; vnp = vnp->next)
614
dbp = (DbtagPtr)(vnp->data.ptrvalue);
615
if (! StringICmp("taxon", dbp->db))
618
tsp->taxid = oip->id;
625
tsp->length = bsp->length;
627
if (ISA_aa(bsp->mol))
629
seqcode = Seq_code_ncbieaa;
633
seqcode = Seq_code_iupacna;
637
seq = MemNew(bsp->length + 1);
640
SeqPortStream (bsp, STREAM_EXPAND_GAPS, (Pointer) &seq, SaveTseqSequence);
647
NLM_EXTERN Boolean BioseqAsnWriteAsTSeq (BioseqPtr bsp, AsnIoPtr aip, AsnTypePtr orig)
651
Boolean retval = FALSE;
656
if (! objtseqAsnLoad()) {
665
atp = AsnLinkType(orig, TSEQ); /* link local tree */
670
ptr = BioseqToMiniTSeq (bsp);
672
if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; }
673
if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) {
677
av.intvalue = ptr -> seqtype;
678
retval = AsnWrite(aip, TSEQ_seqtype, &av);
679
if (ptr -> gi || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> gi;
680
retval = AsnWrite(aip, TSEQ_gi, &av);
682
if (ptr -> accver != NULL) {
683
av.ptrvalue = ptr -> accver;
684
retval = AsnWrite(aip, TSEQ_accver, &av);
686
if (ptr -> sid != NULL) {
687
av.ptrvalue = ptr -> sid;
688
retval = AsnWrite(aip, TSEQ_sid, &av);
690
if (ptr -> local != NULL) {
691
av.ptrvalue = ptr -> local;
692
retval = AsnWrite(aip, TSEQ_local, &av);
694
if (ptr -> taxid || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> taxid;
695
retval = AsnWrite(aip, TSEQ_taxid, &av);
697
if (ptr -> orgname != NULL) {
698
av.ptrvalue = ptr -> orgname;
699
retval = AsnWrite(aip, TSEQ_orgname, &av);
701
if (ptr -> defline != NULL) {
702
av.ptrvalue = ptr -> defline;
703
retval = AsnWrite(aip, TSEQ_defline, &av);
705
av.intvalue = ptr -> length;
706
retval = AsnWrite(aip, TSEQ_length, &av);
708
av.ptrvalue = bsp; /* pass bsp to SeqPortStream */
709
retval = AsnWriteEx(aip, TSEQ_sequence, &av, StreamTSeq);
711
if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) {
717
AsnUnlinkType(orig); /* unlink local tree */