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);*/
		}
	}
}
Exemple #2
0
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;
}