/*
Pollux
Copyright (C) 2014 Eric Marinier
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#include
#include "Utility.h"
#ifndef READS_H
#define READS_H
#ifdef __cplusplus
extern "C" {
#endif
extern int BATCH_SIZE; // Batch size in reads.
// Single read:
struct read {
char* seqName1;
unsigned long long int* sequence;
char* seqName2;
char* quality;
struct contig* basecontig;
unsigned long int startpos;
int length;
int number;
short forward;
short correct_pos;
char type;
};
// Collection of reads:
typedef struct
{
char* fileName;
FILE* file;
int total;
int current;
int ID;
struct read* readData;
} Reads;
Reads* createReads(char* fileName);
struct read* readsGetNext(Reads* reads);
bool readsHasNext(Reads* reads);
int readsReset(Reads* reads);
void readsDestroy(Reads* reads);
int readsGetCount(Reads* reads);
char* readsGetFileName(Reads* reads);
#ifdef __cplusplus
}
#endif
#endif /* KMERHASHTABLE_H */