void parseSeqs(string filename, SeqSet &data) { ifstream input; SeqStream input_stream(openSeqFile(filename, input)); if(!input_stream.good()) { throw("File stream is in a bad state"); } string format = guessFormat(input_stream); if(format == "fasta") { try { parseFasta(input_stream, filename, data); } catch(...) { input.close(); throw; } } else if(format == "fastq") { try { parseFastq(input_stream, filename, data); } catch(...) { input.close(); throw; } } else { input.close(); throw("Unrecognized format"); } input.close(); }
void parseAli(char *orderFileName, char *fastaFile, alignFunc afunc, columnFunc cfunc, void *closure) /* Parse a file of alignments. */ { struct hash *seqHash = newHash(5); struct slName *list = getOrderList(orderFileName); int numSpecies = fillSeqHash(list, seqHash); struct lineFile *lf = lineFileOpen(fastaFile, TRUE); parseFasta(lf, numSpecies, list, seqHash, afunc, cfunc, closure); slNameFreeList(&list); }
static struct traceInfo* readFastaFiles(int numFiles, char **fastaFiles) /* read data for all fasta files */ { int i; struct traceInfo* traceInfoList = NULL; for (i = 0; i < numFiles; i++) { parseFasta(fastaFiles[i], &traceInfoList); } return traceInfoList; }
static void parseMeta(struct gff3File *g3f, char *line) /* parse a meta line of a gff3 file */ { eraseTrailingSpaces(line); if (sameString("###", line)) ; // ignore else if (sameString("##FASTA", line)) parseFasta(g3f); else if (startsWithWord("##sequence-region", line)) parseSequenceRegion(g3f, line); else if (startsWithWord("##feature-ontology", line)) parseFeatureOntology(g3f, line); else if (startsWithWord("##attribute-ontology", line)) parseAttributeOntology(g3f, line); else if (startsWithWord("##source-ontology", line)) parseSourceOntology(g3f, line); else if (startsWithWord("##species", line)) parseSpecies(g3f, line); else if (startsWithWord("##genome-build", line)) parseGenomeBuild(g3f, line); else gff3FileErr(g3f, "invalid meta line: %s", line); }