00001 /* ace - a format written by phrap, read by consed. 00002 * 00003 * This file contains routines to read such files. 00004 * Note that though the coordinates are one based and 00005 * closed on disk, they get converted to our usual half 00006 * open zero based in memory. */ 00007 00008 #ifndef ACE_H 00009 #define ACE_H 00010 00011 #ifndef LINEFILE_H 00012 #include "linefile.h" 00013 #endif 00014 00015 #ifndef DNASEQ_H 00016 #include "dnaseq.h" 00017 #endif 00018 00019 struct aceAS 00020 /* This contains an AS entry. */ 00021 { 00022 int contigs; 00023 int reads; 00024 }; 00025 00026 struct aceCO 00027 /* This contains a CO entry. */ 00028 { 00029 char *contigName; 00030 int bases; 00031 int reads; 00032 struct dnaSeq *seq; 00033 }; 00034 00035 struct aceAF 00036 /* This contains an AF entry. */ 00037 { 00038 struct aceAF *next; 00039 char *readName; 00040 int startPos; 00041 }; 00042 00043 struct aceRD 00044 /* This contains an RD entry. */ 00045 { 00046 struct aceRD *next; 00047 char *readName; 00048 int bases; 00049 struct dnaSeq *seq; 00050 }; 00051 00052 struct ace 00053 /* This contains information about one ace element. */ 00054 { 00055 struct ace *next; 00056 struct aceAS aceAS; 00057 struct aceCO aceCO; 00058 struct aceAF *afList; 00059 struct aceRD *rdList; 00060 }; 00061 00062 void aceFree(struct ace **pEl); 00063 /* Free an ace. */ 00064 00065 void aceFreeList(struct ace **pList); 00066 /* Free a list of dynamically allocated ace's */ 00067 00068 struct ace *aceRead(struct lineFile *lf); 00069 /* Read in from .ace file and return it. 00070 * Returns NULL at EOF. */ 00071 00072 boolean aceCheck(struct ace *ace, struct lineFile *lf); 00073 /* Return FALSE if there's a problem with ace. */ 00074 00075 void aceWrite(struct ace *ace, FILE *f); 00076 /* Output ace to ace file. */ 00077 00078 #endif /* ACE_H */ 00079
1.5.2