From a7c5bff619aa4850d09825888b5f46c7cd086f11 Mon Sep 17 00:00:00 2001 From: "Aaron M. Ucko" Date: Wed, 23 Mar 2005 17:39:07 +0000 Subject: Load ncbi (6.1.20010709) into ncbi-tools6/branches/upstream/current. --- api/jzmisc.c | 321 +++++++++++++++++++++++++++++++---------------------------- 1 file changed, 170 insertions(+), 151 deletions(-) (limited to 'api/jzmisc.c') diff --git a/api/jzmisc.c b/api/jzmisc.c index a654721b..1912f3d4 100644 --- a/api/jzmisc.c +++ b/api/jzmisc.c @@ -516,7 +516,7 @@ static Boolean get_cit_edit(CharPtr fmark, Int2 order, ValNodePtr head) vnp = head; while(vnp){ if(vnp->choice == 4){ - sprintf(fmark, "muid %ld", (Int4)(vnp->data.intvalue)); + sprintf(fmark, "muid %ld", (long)(vnp->data.intvalue)); return TRUE; } vnp = vnp->next; @@ -550,7 +550,7 @@ static Boolean get_cit_edit(CharPtr fmark, Int2 order, ValNodePtr head) if(alp->names){ tmp= alp->names; if(tmp->choice ==3){ - sprintf(fmark, "%s", tmp->data.ptrvalue); + sprintf(fmark, "%s", (CharPtr) tmp->data.ptrvalue); return TRUE; } } @@ -669,7 +669,7 @@ NLM_EXTERN Uint1 label_feature(SeqFeatPtr sfp, CharPtr fmark, Int2 order, Boolea vnp = prp->name; dbase = prp->db; if(vnp && dbase){ - sprintf(temp, "%s %s", dbase->data.ptrvalue, vnp->data.ptrvalue); + sprintf(temp, "%s %s", (CharPtr) dbase->data.ptrvalue, (CharPtr) vnp->data.ptrvalue); myStringNCpy(fmark, temp, 20); add_name_partial(fmark, trunc5, trunc3); return TRUE; @@ -725,6 +725,11 @@ NLM_EXTERN Uint1 label_feature(SeqFeatPtr sfp, CharPtr fmark, Int2 order, Boolea add_name_partial(fmark, trunc5, trunc3); return TRUE; } + if(rrp->type == 7){ + StringCpy(fmark, "snoRNA"); + add_name_partial(fmark, trunc5, trunc3); + return TRUE; + } if(rrp->type == 255){ StringCpy(fmark, "Other"); add_name_partial(fmark, trunc5, trunc3); @@ -1330,42 +1335,45 @@ NLM_EXTERN SeqAlignPtr get_sep_align(SeqEntryPtr sep) ****/ NLM_EXTERN SeqIdPtr get_align_id(SeqAlignPtr sap_p, Int2 order) { - DenseSegPtr dsp; - StdSegPtr ssp; - DenseDiagPtr ddp; - - Int2 i; - SeqIdPtr sip; - SeqLocPtr loc; - - i =0; - switch(sap_p->segtype) - { - case 1: /*Dense Diag*/ - ddp = sap_p->segs; - sip = ddp->id; - for(; sip!=NULL; sip = sip->next, ++i) - if(order == i) - return sip; - return NULL; - case 2: /*Dense Seg*/ - dsp = sap_p->segs; - sip = dsp->ids; - for(; sip!=NULL; sip = sip->next, ++i) - if(order == i) - return sip; - return NULL; - case 3: - ssp = sap_p->segs; - loc = ssp->loc; - for(; loc != NULL; loc = loc->next, ++i) - if(order == i) - return SeqLocId(loc); - return NULL; - default: - return NULL; - } - + DenseSegPtr dsp; + StdSegPtr ssp; + DenseDiagPtr ddp; + SeqAlignPtr sap; + Int2 i; + SeqIdPtr sip; + SeqLocPtr loc; + + i =0; + switch(sap_p->segtype) { + case 1: /*Dense Diag*/ + ddp = sap_p->segs; + sip = ddp->id; + for(; sip!=NULL; sip = sip->next, ++i) + if(order == i) + return sip; + return NULL; + case 2: /*Dense Seg*/ + dsp = sap_p->segs; + sip = dsp->ids; + for(; sip!=NULL; sip = sip->next, ++i) + if(order == i) + return sip; + return NULL; + case 3: + ssp = sap_p->segs; + loc = ssp->loc; + for(; loc != NULL; loc = loc->next, ++i) + if(order == i) + return SeqLocId(loc); + return NULL; + case 5: /* Discontinuous alignment */ + sap = (SeqAlignPtr) sap_p->segs; + sip = get_align_id(sap, order); + return sip; + + default: + return NULL; + } } @@ -1377,37 +1385,41 @@ NLM_EXTERN SeqIdPtr get_align_id(SeqAlignPtr sap_p, Int2 order) ***/ NLM_EXTERN Uint1 get_align_strand(SeqAlignPtr sap_p, Int2 order) { - DenseSegPtr dsp; - StdSegPtr ssp; - DenseDiagPtr ddp; - SeqLocPtr loc; - Int2 i; - - switch(sap_p->segtype) - { - case 1: /*Dense Diag*/ - ddp = sap_p->segs; - order = order%(ddp->dim); - if(ddp->strands) - return ddp->strands[order]; - return 0; - case 2: /*Dense Seg*/ - dsp = sap_p->segs; - order = order%(dsp->dim); - if(dsp->strands) - return dsp->strands[order]; - return 0; - case 3: - ssp = sap_p->segs; - loc = ssp->loc; - for(i = 0; loc != NULL; loc = loc->next, ++i) - if(order == i) - return SeqLocStrand(loc); - return 0; - default: - return 0; - } - + DenseSegPtr dsp; + StdSegPtr ssp; + DenseDiagPtr ddp; + SeqLocPtr loc; + Int2 i; + SeqAlignPtr sap; + + switch(sap_p->segtype) { + case 1: /*Dense Diag*/ + ddp = sap_p->segs; + order = order%(ddp->dim); + if(ddp->strands) + return ddp->strands[order]; + return 0; + case 2: /*Dense Seg*/ + dsp = sap_p->segs; + order = order%(dsp->dim); + if(dsp->strands) + return dsp->strands[order]; + return 0; + case 3: + ssp = sap_p->segs; + loc = ssp->loc; + for(i = 0; loc != NULL; loc = loc->next, ++i) + if(order == i) + return SeqLocStrand(loc); + return 0; + case 5: /* Discontinuous alignment */ + + sap = (SeqAlignPtr) sap_p->segs; + return get_align_strand(sap, order); + + default: + return 0; + } } /************************************************************************ @@ -1418,42 +1430,46 @@ NLM_EXTERN Uint1 get_align_strand(SeqAlignPtr sap_p, Int2 order) ****/ NLM_EXTERN Int2 m_id_match(SeqAlignPtr sap_p, SeqIdPtr match_id) { - DenseSegPtr dsp; - StdSegPtr ssp; - DenseDiagPtr ddp; - - Int2 i; - SeqIdPtr sip; - SeqLocPtr loc; - - i =0; - switch(sap_p->segtype) - { - case 1: /*Dense Diag*/ - ddp = sap_p->segs; - sip = ddp->id; - for(; sip!=NULL; sip = sip->next, ++i) - if(SeqIdForSameBioseq(sip, match_id)) - return i; - return -1; - case 2: /*Dense Seg*/ - dsp = sap_p->segs; - sip = dsp->ids; - for(; sip!=NULL; sip = sip->next, ++i) - if(SeqIdForSameBioseq(sip, match_id)) - return i; - return -1; - case 3: - ssp = sap_p->segs; - loc = ssp->loc; - for(; loc != NULL; loc = loc->next, ++i) - if(SeqIdForSameBioseq(SeqLocId(loc), match_id)) - return i; - return -1; - default: - return -1; - } - + DenseSegPtr dsp; + StdSegPtr ssp; + DenseDiagPtr ddp; + + Int2 i; + SeqIdPtr sip; + SeqLocPtr loc; + SeqAlignPtr sap; + + i =0; + switch(sap_p->segtype) { + case 1: /*Dense Diag*/ + ddp = sap_p->segs; + sip = ddp->id; + for(; sip!=NULL; sip = sip->next, ++i) + if(SeqIdForSameBioseq(sip, match_id)) + return i; + return -1; + case 2: /*Dense Seg*/ + dsp = sap_p->segs; + sip = dsp->ids; + for(; sip!=NULL; sip = sip->next, ++i) + if(SeqIdForSameBioseq(sip, match_id)) + return i; + return -1; + case 3: + ssp = sap_p->segs; + loc = ssp->loc; + for(; loc != NULL; loc = loc->next, ++i) + if(SeqIdForSameBioseq(SeqLocId(loc), match_id)) + return i; + return -1; + case 5: /* Discontinuous alignment */ + + sap = (SeqAlignPtr) sap_p->segs; + return m_id_match(sap, match_id); + + default: + return -1; + } } @@ -1717,7 +1733,7 @@ NLM_EXTERN Boolean get_gene_syn(SeqFeatPtr sfp, CharPtr name, BoolPtr has_name, { if(has_prev) { - sprintf(tmp, " %s", vnp->data.ptrvalue); + sprintf(tmp, " %s", (CharPtr) vnp->data.ptrvalue); StringCat(syn, tmp); } else @@ -2143,51 +2159,54 @@ static SeqIdPtr find_max(ValNodePtr vnp) *******************************************************************/ NLM_EXTERN SeqIdPtr make_master( SeqAlignPtr sap_p) { - ValNodePtr vnp= NULL; /*record the frequency of Seq-ids in alignment**/ - SeqIdPtr sip; - DenseSegPtr dsp; - DenseDiagPtr ddp; - StdSegPtr ssp; - SeqLocPtr slp; - + ValNodePtr vnp= NULL; /*record the frequency of Seq-ids in alignment**/ + SeqIdPtr sip; + DenseSegPtr dsp; + DenseDiagPtr ddp; + StdSegPtr ssp; + SeqLocPtr slp; + SeqAlignPtr sap; - while(sap_p !=NULL) - { - switch(sap_p->segtype) - { - case 1: - ddp = (DenseDiagPtr)(sap_p->segs); - while(ddp) - { - for(sip = ddp->id; sip!=NULL; sip = sip->next) - vnp = find_repeat(vnp, sip); - ddp = ddp->next; - } - break; - - case 2: - dsp = (DenseSegPtr)(sap_p->segs); - for(sip = dsp->ids; sip!=NULL; sip = sip->next) - vnp = find_repeat(vnp, sip); - break; - - case 3: - ssp = (StdSegPtr)(sap_p->segs); - for(slp = ssp->loc; slp != NULL; slp = slp->next) - { - sip = SeqLocId(slp); - vnp = find_repeat(vnp, sip); - } - break; - default: - break; - } - sap_p = sap_p->next; - } - - sip = find_max(vnp); - ValNodeFreeData(vnp); - return sip; + while(sap_p !=NULL) { + switch(sap_p->segtype) { + case 1: + ddp = (DenseDiagPtr)(sap_p->segs); + while(ddp) { + for(sip = ddp->id; sip!=NULL; sip = sip->next) + vnp = find_repeat(vnp, sip); + ddp = ddp->next; + } + break; + + case 2: + dsp = (DenseSegPtr)(sap_p->segs); + for(sip = dsp->ids; sip!=NULL; sip = sip->next) + vnp = find_repeat(vnp, sip); + break; + + case 3: + ssp = (StdSegPtr)(sap_p->segs); + for(slp = ssp->loc; slp != NULL; slp = slp->next) { + sip = SeqLocId(slp); + vnp = find_repeat(vnp, sip); + } + break; + case 5: + for(sap = sap_p->segs; sap != NULL; sap = sap->next) { + sip = make_master(sap); + vnp = find_repeat(vnp, sip); + } + break; + + default: + break; + } + sap_p = sap_p->next; + } + + sip = find_max(vnp); + ValNodeFreeData(vnp); + return sip; } NLM_EXTERN Boolean use_multiple_dimension(SeqAlignPtr align) -- cgit v1.2.3