Exemplo n.º 1
0
Arquivo: vid.c Projeto: CoREse/gqt
//{{{void load_vid_data(struct vid_file *v)
void load_vid_data(struct vid_file *v)
{
    if (v->vids != NULL)
        errx(EX_SOFTWARE, 
             "VID data has already been loaded for file '%s'.", v->file_name);

    v->vids = (uint32_t *) malloc(v->gqt_header->num_variants*sizeof(uint32_t));
    if (!v->vids)
        err(EX_OSERR, "malloc error");

    if (v->type == VID_LOCAL) {
        if (fseek(v->file.local, sizeof(struct gqt_file_header), SEEK_SET))
            err(EX_IOERR,
                "Error seeking to data in VID file '%s'.",
                v->file_name);

        size_t fr = fread(v->vids,
                          sizeof(uint32_t),
                          v->gqt_header->num_variants,
                          v->file.local);
        check_file_read(v->file_name,
                        v->file.local,
                        v->gqt_header->num_variants,
                        fr);
    } else {
        if (knet_seek(v->file.remote,
                      sizeof(struct gqt_file_header),
                      SEEK_SET) == -1)
            err(EX_IOERR,
                "Error seeking to data in remote VID file '%s'.",
                v->file_name);
        size_t fr = knet_read(v->file.remote,
                              v->vids,
                              v->gqt_header->num_variants*sizeof(uint32_t));
        check_remote_file_read(v->file_name,
                               v->gqt_header->num_variants*sizeof(uint32_t),
                               fr);
    }
}
Exemplo n.º 2
0
int main(void)
{
	char *buf;
	knetFile *fp;
	int type = 4, l;
#ifdef _WIN32
	knet_win32_init();
#endif
	buf = calloc(0x100000, 1);
	if (type == 0) {
		fp = knet_open("knetfile.c", "r");
		knet_seek(fp, 1000, SEEK_SET);
	} else if (type == 1) { // NCBI FTP, large file
		fp = knet_open("ftp://ftp.ncbi.nih.gov/1000genomes/ftp/data/NA12878/alignment/NA12878.chrom6.SLX.SRP000032.2009_06.bam", "r");
		knet_seek(fp, 2500000000ll, SEEK_SET);
		l = knet_read(fp, buf, 255);
	} else if (type == 2) {
		fp = knet_open("ftp://ftp.sanger.ac.uk/pub4/treefam/tmp/index.shtml", "r");
		knet_seek(fp, 1000, SEEK_SET);
	} else if (type == 3) {
		fp = knet_open("http://www.sanger.ac.uk/Users/lh3/index.shtml", "r");
		knet_seek(fp, 1000, SEEK_SET);
	} else if (type == 4) {
		fp = knet_open("http://www.sanger.ac.uk/Users/lh3/ex1.bam", "r");
		knet_read(fp, buf, 10000);
		knet_seek(fp, 20000, SEEK_SET);
		knet_seek(fp, 10000, SEEK_SET);
		l = knet_read(fp, buf+10000, 10000000) + 10000;
	}
	if (type != 4 && type != 1) {
		knet_read(fp, buf, 255);
		buf[255] = 0;
		printf("%s\n", buf);
	} else write(fileno(stdout), buf, l);
	knet_close(fp);
	free(buf);
	return 0;
}
Exemplo n.º 3
0
static off_t net_seek(hFILE *fpv, off_t offset, int whence)
{
    hFILE_net *fp = (hFILE_net *) fpv;
    return knet_seek(fp->netfp, offset, whence);
}