c4b0bffb34ea956be81bd62bc1d8cd61e530e5d0 ceisenhart Wed Jun 4 16:20:59 2014 -0700 stylistic changes diff --git src/lib/fq.c src/lib/fq.c index 994dab7..6eb30a5 100644 --- src/lib/fq.c +++ src/lib/fq.c @@ -1,57 +1,65 @@ /* fq - stuff for doing i/o on fastq files. */ /* Copyright (C) 2014 The Regents of the University of California * See README in this or parent directory for licensing information. */ #include "common.h" #include "linefile.h" #include "fq.h" struct fq *fqReadNext(struct lineFile *lf) /* Read next record, return it as fq. */ { struct fq *fq; AllocVar(fq); char *line; /* Deal with initial line starting with '@' */ if (!lineFileNextReal(lf, &line)) return FALSE; if (line[0] != '@') { errAbort("Expecting line starting with '@' got %s line %d of %s", line, lf->lineIx, lf->fileName); } fq->header = cloneString(line); /* Deal with line containing sequence. */ if (!lineFileNext(lf, &line, NULL)) errAbort("%s truncated in middle of record", lf->fileName); fq->dna = cloneString(line); /* Check for + line */ if (!lineFileNext(lf, &line, NULL)) errAbort("%s truncated in middle of record", lf->fileName); if (line[0] != '+') errAbort("Expecting + line %d of %s", lf->lineIx, lf->fileName); /* Get quality line */ if (!lineFileNext(lf, &line, NULL)) errAbort("%s truncated in middle of record", lf->fileName); fq->quality = cloneString(line); return fq; } void fqFree(struct fq **pFq) /* Free up *pFq and set it to NULL */ { struct fq *fq = *pFq; if (fq != NULL) { freeMem(fq->header); freeMem(fq->dna); freeMem(fq->quality); freez(pFq); } } +void fqWriteNext(struct fq *input, FILE *f) +/* Writes a single fastq structure to the file provided. */ +{ +fprintf(f,"%s\n",input->header); +fprintf(f,"%s\n",input->dna); +fprintf(f,"%s\n","+"); +fprintf(f,"%s\n",input->quality); +}