void doVisNumSixByProposal() { int i; for(i=0; i < proposal_list_length; i++) { if ( strcmp(proposal_list[i].propName, "WL") == 0 ) { struct filtervalue* f = getFilterValues("Filter", proposal_list[i].propID); struct filtervalue* fv = getFilterValues("Filter_Visits", proposal_list[i].propID); //printf("WL [%s] filters=%s[%d] visits=%s\n", proposal_list[i].propConf, f->value, f->size, fv->value); visNumSixWith(proposal_list[i].propID, f, fv); } else if ( strcmp(proposal_list[i].propName, "SNSS") == 0 ) { struct filtervalue* ssexposures = getFilterValues("SubSeqExposures", proposal_list[i].propID); struct filtervalue* ssfilters = getFilterValues("SubSeqFilters", proposal_list[i].propID); struct filtervalue* ssevents = getFilterValues("SubSeqEvents", proposal_list[i].propID); visNumSixWith(proposal_list[i].propID, NULL, NULL); //printf("SNSS [%s] exps=%s filters=%s[%d] events=%s\n", proposal_list[i].propConf, ssexposures->value, ssfilters->value, ssfilters->size, ssevents->value); } else if ( strcmp(proposal_list[i].propName, "NEA") == 0 ) { //printf("NEA [%s]\n", proposal_list[i].propConf); visNumSixWith(proposal_list[i].propID, NULL, NULL); } else if ( strcmp(proposal_list[i].propName, "WLTSS") == 0 ) { struct filtervalue* ssexposures = getFilterValues("SubSeqExposures", proposal_list[i].propID); struct filtervalue* ssfilters = getFilterValues("SubSeqFilters", proposal_list[i].propID); struct filtervalue* ssevents = getFilterValues("SubSeqEvents", proposal_list[i].propID); int j; for(j=0; j < ssfilters->size; j++) { sprintf(ssexposures[j].value, "%f", atof(ssexposures[j].value) * atof(ssevents[j].value)); } visNumSixWith(proposal_list[i].propID, ssfilters, ssexposures); /*printf("WLTSS [%s] exps=%s filters=%s[%d] events=%s\n", proposal_list[i].propConf, ssexposures->value, ssfilters->value, ssfilters->size, ssevents->value);*/ } } }
static void filterRecords(struct vcfFile *vcff, struct trackDb *tdb) /* If a filter is specified in the cart, remove any records that don't pass filter. */ { double minQual = VCF_DEFAULT_MIN_QUAL; struct slName *filterValues = NULL; double minFreq = VCF_DEFAULT_MIN_ALLELE_FREQ; boolean gotQualFilter = getMinQual(tdb, &minQual); boolean gotFilterFilter = getFilterValues(tdb, &filterValues); boolean gotMinFreqFilter = getMinFreq(tdb, &minFreq); if (! (gotQualFilter || gotFilterFilter || gotMinFreqFilter) ) return; struct vcfRecord *rec, *nextRec, *newList = NULL; for (rec = vcff->records; rec != NULL; rec = nextRec) { nextRec = rec->next; if (! ((gotQualFilter && minQualFail(rec, minQual)) || (gotFilterFilter && filterColumnFail(rec, filterValues)) || (gotMinFreqFilter && minFreqFail(rec, minFreq)) )) slAddHead(&newList, rec); } slReverse(&newList); vcff->records = newList; }