summaryrefslogtreecommitdiff
path: root/api/jzmisc.c
diff options
context:
space:
mode:
authorAaron M. Ucko <ucko@debian.org>2005-03-23 17:39:07 +0000
committerAaron M. Ucko <ucko@debian.org>2005-03-23 17:39:07 +0000
commita7c5bff619aa4850d09825888b5f46c7cd086f11 (patch)
tree2ab2dd2ff2977a5e0bcfdd90a17ca4f1a73181fc /api/jzmisc.c
parentbfbecafe8b6142e8356e8447f0822b43e94b64b7 (diff)
Load ncbi (6.1.20010709) into ncbi-tools6/branches/upstream/current.
Diffstat (limited to 'api/jzmisc.c')
-rw-r--r--api/jzmisc.c321
1 files changed, 170 insertions, 151 deletions
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)