#pragma once // ----------------------------------------------------------------------- // Phylogenetics typedef struct bio·Node { string name; string comment; double dist; double support; int nchild; int ndescendent; struct bio·Node *parent; struct bio·Node *child[2]; struct bio·Node *sibling; } bio·Node; error phylo·addchild(bio·Node *parent, bio·Node* child); bool phylo·isleaf(bio·Node *node); typedef struct bio·Tree { bio·Node *root; } bio·Tree; /* newick i/o */ bio·Tree bio·readnewick(io·Peeker stream, mem·Allocator heap); error bio·writenewick(bio·Tree tree, io·Putter out); // ----------------------------------------------------------------------- // Sequences #if 0 typedef struct bio·FastaReader bio·FastaReader; /* fasta/q i/o */ bio·Seq *bio·newfastareader(Stream *file, mem·Allocator heap); bio·Seq *bio·readfasta(bio·FastaParser *p); error bio·writefasta(bio·Seq *seq, Stream *out); #endif