00001 #ifndef DEF_MRF_H
00002 #define DEF_MRF_H
00003
00004
00005
00012
00013 #define MRF_COLUMN_TYPE_BLOCKS 1
00014
00015 #define MRF_COLUMN_TYPE_SEQUENCE 2
00016 #define MRF_COLUMN_TYPE_QUALITY_SCORES 3
00017 #define MRF_COLUMN_TYPE_QUERY_ID 4
00018
00019
00020
00021 #define MRF_COLUMN_NAME_BLOCKS "AlignmentBlocks"
00022
00023 #define MRF_COLUMN_NAME_SEQUENCE "Sequence"
00024 #define MRF_COLUMN_NAME_QUALITY_SCORES "QualityScores"
00025 #define MRF_COLUMN_NAME_QUERY_ID "QueryId"
00026
00027
00028
00032 typedef struct {
00033 char *targetName;
00034 char strand;
00035 int targetStart;
00036 int targetEnd;
00037 int queryStart;
00038 int queryEnd;
00039 } MrfBlock;
00040
00041
00042
00046 typedef struct {
00047 Array blocks;
00048 char *sequence;
00049 char *qualityScores;
00050 char *queryId;
00051 } MrfRead;
00052
00053
00054
00058 typedef struct {
00059 int isPairedEnd;
00060 MrfRead read1;
00061 MrfRead read2;
00062 } MrfEntry;
00063
00064
00065
00066 extern void mrf_init (char* fileName);
00067 extern void mrf_initFromPipe (char* cmd);
00068 extern void mrf_addNewColumnType (char* columnName);
00069 extern void mrf_deInit (void);
00070 extern MrfEntry* mrf_nextEntry (void);
00071 extern Array mrf_parse (void);
00072 extern char* mrf_writeHeader (void);
00073 extern char* mrf_writeEntry (MrfEntry *currEntry);
00074 extern int getReadLength (MrfRead *currRead);
00075
00076
00077 #endif