00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef OLDGFF_H
00011 #define OLDGFF_H
00012
00013 struct gff
00014
00015
00016 {
00017 char fileName[256];
00018 FILE *file;
00019 long fileSize;
00020 char buf[256];
00021 int bufSize;
00022 int bytesInBuf;
00023 int readIx;
00024 int lineNumber;
00025 struct lm *memPool;
00026 char *dna;
00027 long dnaSize;
00028 char dnaName[128];
00029 struct gffGene *genes;
00030 };
00031
00032
00033 struct gffSegment
00034 {
00035 struct gffSegment *next;
00036 long start, end;
00037 int frame;
00038 };
00039 typedef struct gffSegment GffIntron;
00040 typedef struct gffSegment GffExon;
00041
00042 struct gffGene
00043
00044
00045 {
00046 struct gffGene *next;
00047 long start, end;
00048 int frame;
00049 char strand;
00050 char name[64];
00051 GffExon *exons;
00052 GffIntron *introns;
00053 DNA *dna;
00054 long dnaSize;
00055 };
00056
00057
00058 boolean gffOpen(struct gff *gff, char *fileName);
00059
00060
00061 boolean gffOpenAndRead(struct gff *gff, char *fileName);
00062
00063
00064 void gffClose(struct gff *gff);
00065
00066
00067 boolean gffReadDna(struct gff *gff);
00068
00069
00070 struct gffGene *gffFindGene(struct gff *gff, char *geneName);
00071
00072
00073 struct gffGene *gffFindGeneIgnoreCase(struct gff *gff, char *geneName);
00074
00075
00076 void gffPrintInfo(struct gff *gff, FILE *out);
00077
00078
00079 boolean gffReadGenes(struct gff *gff);
00080
00081
00082 struct gffGene *gffDupeGene(struct gff *gff, struct gffGene *oldGene);
00083
00084
00085 struct gffGene *gffDupeGeneAndSurrounds(struct gff *gff, struct gffGene *oldGene,
00086 int leftExtra, int rightExtra);
00087
00088
00089
00090 struct gffGene *gffGeneWithOwnDna(struct gff *gff, char *geneName);
00091
00092
00093 void gffFreeGene(struct gffGene **pGene);
00094
00095
00096
00097
00098
00099 struct dnaSeq *gffReadDnaSeq(char *fileName);
00100
00101
00102 #endif
00103