00001
00002
00003
00004
00005
00006
00007 #ifndef WORMDNA_H
00008 #define WORMDNA_H
00009
00010 #ifndef DNAUTIL_H
00011 #include "dnautil.h"
00012 #endif
00013
00014 #ifndef DNASEQ_H
00015 #include "dnaseq.h"
00016 #endif
00017
00018 #ifndef NT4_H
00019 #include "nt4.h"
00020 #endif
00021
00022 #ifndef GDF_H
00023 #include "gdf.h"
00024 #endif
00025
00026
00027 struct wormCdnaInfo
00028
00029 {
00030 char *motherString;
00031 char *name;
00032 char *gene;
00033 char orientation;
00034 char *product;
00035 int cdsStart, cdsEnd;
00036 boolean knowStart, knowEnd;
00037 boolean isEmbryonic;
00038 boolean isAdult;
00039 boolean isMale;
00040 boolean isHermaphrodite;
00041 char *description;
00042 };
00043
00044 boolean wormCdnaInfo(char *name, struct wormCdnaInfo *retInfo);
00045
00046
00047 void wormFaCommentIntoInfo(char *faComment, struct wormCdnaInfo *retInfo);
00048
00049
00050
00051 void wormFreeCdnaInfo(struct wormCdnaInfo *ci);
00052
00053
00054
00055 boolean wormInfoForGene(char *orfName, struct wormCdnaInfo *retInfo);
00056
00057
00058
00059
00060 boolean wormCdnaSeq(char *name, struct dnaSeq **retDna, struct wormCdnaInfo *retInfo);
00061
00062
00063
00064 void wormCdnaUncache();
00065
00066
00067
00068
00069
00070
00071 struct wormCdnaIterator
00072 {
00073 FILE *faFile;
00074 };
00075
00076 boolean wormSearchAllCdna(struct wormCdnaIterator **retSi);
00077
00078
00079 void freeWormCdnaIterator(struct wormCdnaIterator **pIt);
00080
00081
00082 struct dnaSeq *nextWormCdna(struct wormCdnaIterator *it);
00083
00084
00085 boolean nextWormCdnaAndInfo(struct wormCdnaIterator *it, struct dnaSeq **retSeq, struct wormCdnaInfo *retInfo);
00086
00087
00088 char *wormFeaturesDir();
00089
00090
00091 char *wormChromDir();
00092
00093
00094 char *wormCdnaDir();
00095
00096
00097 char *wormSangerDir();
00098
00099
00100 char *wormGenieDir();
00101
00102
00103 char *wormXenoDir();
00104
00105
00106 boolean wormIsGeneName(char *name);
00107
00108
00109
00110
00111 boolean wormIsOrfName(char *in);
00112
00113
00114
00115 struct slName *wormGeneToOrfNames(char *name);
00116
00117
00118 char *wormGeneFirstOrfName(char *geneName);
00119
00120
00121 boolean wormGeneForOrf(char *orfName, char *geneNameBuf, int bufSize);
00122
00123
00124 boolean getWormGeneExonDna(char *name, DNA **retDna);
00125
00126
00127 boolean getWormGeneDna(char *name, DNA **retDna, boolean upcExons);
00128
00129
00130 void wormLoadNt4Genome(struct nt4Seq ***retNt4Seq, int *retNt4Count);
00131
00132
00133 void wormFreeNt4Genome(struct nt4Seq ***pNt4Seq);
00134
00135
00136 int wormChromSize(char *chrom);
00137
00138
00139 DNA *wormChromPart(char *chromId, int start, int size);
00140
00141
00142 DNA *wormChromPartExonsUpper(char *chromId, int start, int size);
00143
00144
00145 void wormChromNames(char ***retNames, int *retNameCount);
00146
00147
00148 int wormChromIx(char *name);
00149
00150
00151 char *wormChromForIx(int ix);
00152
00153
00154 char *wormOfficialChromName(char *name);
00155
00156
00157
00158
00159 boolean wormGeneRange(char *name, char **retChromId, char *retStrand, int *retStart, int *retEnd);
00160
00161
00162
00163 boolean wormParseChromRange(char *in, char **retChromId, int *retStart, int *retEnd);
00164
00165
00166
00167 boolean wormIsChromRange(char *in);
00168
00169
00170
00171 void wormClipRangeToChrom(char *chrom, int *pStart, int *pEnd);
00172
00173
00174 boolean wormIsNamelessCluster(char *name);
00175
00176
00177 DNA *wormGetNamelessClusterDna(char *name);
00178
00179
00180 struct wormFeature
00181
00182 {
00183 struct wormFeature *next;
00184 char *chrom;
00185 int start, end;
00186 char typeByte;
00187 char name[1];
00188 };
00189
00190 struct wormFeature *newWormFeature(char *name, char *chrom, int start, int end, char typeByte);
00191
00192
00193 struct wormFeature *wormCdnasInRange(char *chromId, int start, int end);
00194
00195
00196 struct wormFeature *wormGenesInRange(char *chromId, int start, int end);
00197
00198
00199 struct wormFeature *wormSomeGenesInRange(char *chromId, int start, int end, char *gdfDir);
00200
00201
00202 struct wormFeature *wormCosmidsInRange(char *chromId, int start, int end);
00203
00204
00205 struct cdaAli *wormCdaAlisInRange(char *chromId, int start, int end);
00206
00207
00208 FILE *wormOpenGoodAli();
00209
00210
00211
00212 struct wormGdfCache
00213
00214 {
00215 char **pDir;
00216 struct snof *snof;
00217 FILE *file;
00218 };
00219 extern struct wormGdfCache wormSangerGdfCache;
00220 extern struct wormGdfCache wormGenieGdfCache;
00221
00222 struct gdfGene *wormGetGdfGene(char *name);
00223
00224
00225 struct gdfGene *wormGetSomeGdfGene(char *name, struct wormGdfCache *cache);
00226
00227
00228 struct gdfGene *wormGetGdfGeneList(char *baseName, int baseNameSize);
00229
00230
00231 struct gdfGene *wormGetSomeGdfGeneList(char *baseName, int baseNameSize, struct wormGdfCache *cache);
00232
00233
00234 struct gdfGene *wormGdfGenesInRange(char *chrom, int start, int end,
00235 struct wormGdfCache *geneFinder);
00236
00237
00238 void wormUncacheGdf();
00239
00240
00241 void wormUncacheSomeGdf(struct wormGdfCache *cache);
00242
00243
00244 #endif
00245