int fileSource::getSamples( int milliSleep ) { #ifdef fixit if ( infile.fail() ) { throw sExc( "no more file data" ); } short raw[4]; uint64_t maxi, rawi = rawSampSeq; maxi = (SamplesPerCycle*AvgNSamples*60*milliSleep)/1000 + rawi; for ( ; rawi < maxi; rawi++ ) { infile.read( (char*)raw, 8 ); if ( infile.eof() ) { break; } amins.s( raw[0], rawi ); amaxs.s( raw[1], rawi ); bmins.s( raw[2], rawi ); bmaxs.s( raw[3], rawi ); } int n = (int)(rawi - rawSampSeq); if ( n == 0 ) { throw sExc( "no more file data" ); } n = avgSamples( rawSampSeq, rawi ); rawSampSeq = rawi; return n; #else return 0; #endif }
void avgTranscriptomeExps() { struct sample *s = NULL; struct sample *s1,*s2,*s3; struct sample *sList1, *sList2, *sList3 = NULL; struct sample **sArray1, **sArray2, **sArray3 = NULL; int i,j,k; FILE *out = NULL; for(i=1; i<12; i++) { for(j='a'; j<'d'; j++) { char buff[2048]; int count; struct sample *avgList = NULL, *avg; if((i != 6 || j != 'a') || doAll) { snprintf(buff, sizeof(buff), "%d.%c.1.%s", i,j,suffix); printf("Averaging %s\n", buff); sList1 = sampleLoadAll(buff); snprintf(buff, sizeof(buff), "%d.%c.2.%s", i,j,suffix); sList2 = sampleLoadAll(buff); snprintf(buff, sizeof(buff), "%d.%c.3.%s", i,j,suffix); sList3 = sampleLoadAll(buff); count = slCount(sList1); AllocArray(sArray1,count); AllocArray(sArray2,count); AllocArray(sArray3,count); for(k=0, s1=sList1, s2=sList2, s3=sList3; k<count; s1=s1->next,s2=s2->next,s3=s3->next, k++) { sArray1[k] = s1; sArray2[k] = s2; sArray3[k] = s3; } for(k=0;k<count; k++) { avg = avgSamples(sArray1[k], sArray2[k], sArray3[k], i, k); slAddHead(&avgList, avg); } slReverse(&avgList); snprintf(buff, sizeof(buff), "%d.%c.1.%s.avg", i,j,suffix); out = mustOpen(buff, "w"); for(s = avgList; s != NULL; s = s->next) sampleTabOut(s, out); carefulClose(&out); freez(&sArray1); freez(&sArray2); freez(&sArray3); sampleFreeList(&avgList); sampleFreeList(&sList1); sampleFreeList(&sList2); sampleFreeList(&sList3); } } } }