int main(int argc, char **argv) { options_t *options = options_construct(); stHash *sequenceHash = NULL; // keyed on fasta headers, valued with mtfseq_t pointers stHash *alignmentHash = stHash_construct3(stHash_stringKey, stHash_stringEqualKey, free, destroyRow); // keyed on species names, valued with row_t pointers stList *rowOrder = stList_construct3(0, free); // when adding keys to alignmentHash, append to this list parseOptions(argc, argv, options); // read fastas, populate sequenceHash de_verbose("Creating sequence hash.\n"); sequenceHash = createSequenceHash(options->seqs); mafFileApi_t *mfapi = maf_newMfa(options->maf, "r"); de_verbose("Creating alignment hash.\n"); buildAlignmentHash(mfapi, alignmentHash, sequenceHash, rowOrder, options); if (options->outMfa != NULL) { // fasta output de_verbose("Writing fasta output.\n"); writeFastaOut(alignmentHash, rowOrder, options); } if (options->outMaf != NULL) { // maf output de_verbose("Writing maf output.\n"); writeMafOut(alignmentHash, rowOrder, options); } // cleanup maf_destroyMfa(mfapi); stHash_destruct(alignmentHash); stHash_destruct(sequenceHash); stList_destruct(rowOrder); destroyOptions(options); return(EXIT_SUCCESS); }
int main(int argc, char **argv) { char filename[kMaxStringLength]; parseOptions(argc, argv, filename); mafFileApi_t *mfa = maf_newMfa(filename, "r"); processBody(mfa); maf_destroyMfa(mfa); return EXIT_SUCCESS; }
int main(int argc, char **argv) { char filename[kMaxStringLength]; char targetName[kMaxStringLength]; uint64_t targetPos; parseOptions(argc, argv, filename, targetName, &targetPos); mafFileApi_t *mfa = maf_newMfa(filename, "r"); searchInput(mfa, targetName, targetPos); maf_destroyMfa(mfa); return EXIT_SUCCESS; }
int main(int argc, char **argv) { extern const int kMaxStringLength; char seq[kMaxSeqName]; char filename[kMaxStringLength]; uint32_t start, stop; parseOptions(argc, argv, filename, seq, &start, &stop); mafFileApi_t *mfa = maf_newMfa(filename, "r"); processBody(mfa, seq, start, stop); maf_destroyMfa(mfa); return EXIT_SUCCESS; }