diff options
Diffstat (limited to 'kmer_utils.h')
-rw-r--r-- | kmer_utils.h | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/kmer_utils.h b/kmer_utils.h index 4bc732a..a727da8 100644 --- a/kmer_utils.h +++ b/kmer_utils.h @@ -1,22 +1,45 @@ -// Kmer functions -void convert_kmer_to_num(char *str, const unsigned long length); +// dna-util's function library. + unsigned long num_to_index(const char *str, const int kmer, const long error_pos, long long *current_position); char *index_to_kmer(unsigned long long index, long kmer); // Utility functions + + +// strip char 'c' out of char array *s of length len size_t strnstrip(char *s, int c, size_t len); + +// reverse char arry *s of length len +void reverse_string(char *s, size_t len); + +// quicky calculate 4^x unsigned long long pow_four(unsigned long long x); + +// check if pointer is null. a helper for dealing with NULL +// return values as errors. Calls strerror and quits if +// ptr is null, optionally takes *error char array as +// a error to output void check_null_ptr(void *ptr, const char *error); +void count_sequence(const char *seq, const size_t seq_length, const unsigned int kmer, unsigned long long *counts); + // Variables +// const unsigned char alpha[256]; +const unsigned char reverse_alpha[4]; +const unsigned char compliment[5]; + // file loading functions + +// open file from filename in char array *fn, and try and parse in one mer per +// line, of size kmer, and store the indicies of those mers in the *arr +// pointer; unsigned long long load_specific_mers_from_file(const char *fn, unsigned int kmer, size_t width, size_t *arr); -unsigned long long * get_kmer_counts_from_filename(const char *fn, const unsigned int kmer); -unsigned long long * get_kmer_counts_from_file(FILE *fh, const int kmer); +unsigned long long * get_kmer_counts_from_filename(const char *fn, const unsigned int kmer, const bool count_compliment); +unsigned long long * get_kmer_counts_from_file(FILE *fh, const int kmer, const bool count_compliment); -unsigned long long * get_continuous_kmer_counts_from_filename(const char *fn, const unsigned int kmer); -unsigned long long * get_continuous_kmer_counts_from_file(FILE *fh, const unsigned int kmer); +unsigned long long * get_continuous_kmer_counts_from_filename(const char *fn, const unsigned int kmer, const bool count_compliment); +unsigned long long * get_continuous_kmer_counts_from_file(FILE *fh, const unsigned int kmer, const bool count_compliment); |