Esempio n. 1
0
WiggleIterator * BamReader(char * filename, bool holdFire) {
	BamReaderData * data = (BamReaderData *) calloc(1, sizeof(BamReaderData));
	setSamtoolsDefaultConf(data);
	OpenBamFile(data, filename);
	if (!holdFire)
		launchBufferedReader(&downloadBamFile, data, &(data->bufferedReaderData));
	return newWiggleIterator(data, &BamReaderPop, &BamReaderSeek, 0);
}
Esempio n. 2
0
void openBigBed(BigBedReaderData * data, char * filename, bool holdFire) {
	if(!bbIsBigBed(filename, NULL)) {
		printf("File %s is not in BigBed format", filename);
		exit(1);
	}
	data->fp = bbOpen(filename, NULL);
	if (!holdFire)
		launchBufferedReader(&readBigBed, data, &(data->bufferedReaderData));
}
Esempio n. 3
0
void BcfReaderSeek(WiggleIterator * wi, const char * chrom, int start, int finish) {
	BCFReaderData * data = (BCFReaderData *) wi->data;

	killBufferedReader(data->bufferedReaderData);
	data->tabix_iterator = ti_query(data->tabix_file, chrom, start, finish);
	launchBufferedReader(&downloadTabixFile, data, &(data->bufferedReaderData));
	wi->done = false;
	BCFReaderPop(wi);

	while (!wi->done && (strcmp(wi->chrom, chrom) < 0 || (strcmp(chrom, wi->chrom) == 0 && wi->finish <= start))) 
		BCFReaderPop(wi);

	data->chrom = chrom;
	data->stop = finish;
}
Esempio n. 4
0
void BigBedReaderSeek(WiggleIterator * wi, const char * chrom, int start, int finish) {
	BigBedReaderData * data = (BigBedReaderData *) wi->data; 

	if (data->bufferedReaderData) {
		killBufferedReader(data->bufferedReaderData);
		free(data->bufferedReaderData);
		data->bufferedReaderData = NULL;
	}
	data->chrom = chrom;
	data->start = start;
	data->stop = finish;
	launchBufferedReader(&readBigBed, data, &(data->bufferedReaderData));
	wi->done = false;
	BigBedReaderPop(wi);

	while (!wi->done && (strcmp(wi->chrom, chrom) < 0 || (strcmp(chrom, wi->chrom) == 0 && wi->finish <= start))) 
		BigBedReaderPop(wi);

	if (!wi->done && strcmp(chrom, wi->chrom) == 0 && wi->start < start)
		wi->start = start;
}
Esempio n. 5
0
void BamReaderSeek(WiggleIterator * wi, const char * chrom, int start, int finish) {
	BamReaderData * data = (BamReaderData *) wi->data;
	char region[1000];

	if (data->bufferedReaderData) {
		killBufferedReader(data->bufferedReaderData);
		free(data->bufferedReaderData);
		data->bufferedReaderData = NULL;
	}
	data->chrom = chrom;
	data->stop = finish;

	sprintf(region, "%s:%i-%i", chrom, start, finish);
	data->conf->reg = region;
	seekRegion(data);
	launchBufferedReader(&downloadBamFile, data, &(data->bufferedReaderData));
	wi->done = false;
	BamReaderPop(wi);

	while (!wi->done && (strcmp(wi->chrom, chrom) < 0 || (strcmp(wi->chrom, chrom) == 0 && wi->finish <= start)))
		BamReaderPop(wi);

}
Esempio n. 6
0
WiggleIterator * BcfReader(char * filename) {
	BCFReaderData * data = (BCFReaderData *) calloc(1, sizeof(BCFReaderData));
	OpenTabixFile(data, filename);
	launchBufferedReader(&downloadTabixFile, data, &(data->bufferedReaderData));
	return newWiggleIterator(data, &BCFReaderPop, &BcfReaderSeek);
}