From 0c8504b6db35cfc7e26f2f3f059e92e325408a71 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Wed, 27 Apr 2016 10:24:40 +0200 Subject: [PATCH 1/8] Commented #ifdef directive for detect_bucket_size function because it causes errors --- src/bloom.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bloom.c b/src/bloom.c index a6cbfe4..dad960c 100755 --- a/src/bloom.c +++ b/src/bloom.c @@ -26,9 +26,9 @@ #define MAKESTRING(n) STRING(n) #define STRING(n) #n -#ifdef __linux__ -unsigned detect_bucket_size(unsigned fallback_size); -#endif +//#ifdef __linux__ // TODO commented because triggers error on luke21 +//unsigned detect_bucket_size(unsigned fallback_size); +//#endif static int test_bit_set_bit(unsigned char * buf, unsigned int x, int set_bit) @@ -89,11 +89,11 @@ static void setup_buckets(struct bloom * bloom, unsigned int cache_size) // either compute it or use built-in default if (cache_size == 0) { -#ifdef __linux__ - cache_size = detect_bucket_size(BLOOM_BUCKET_SIZE_FALLBACK); -#else +//#ifdef __linux__ // TODO commented because triggers error on luke21 +// cache_size = detect_bucket_size(BLOOM_BUCKET_SIZE_FALLBACK); +//#else cache_size = BLOOM_BUCKET_SIZE_FALLBACK; -#endif +//#endif } bloom->buckets = (bloom->bytes / cache_size); From 419885485b376a9d3a930941b5d1eb1324676fe0 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Wed, 27 Apr 2016 10:30:16 +0200 Subject: [PATCH 2/8] Added files in _obitaxo C sources for cython --- python/obitools3/obidms/_obitaxo.cfiles | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/python/obitools3/obidms/_obitaxo.cfiles b/python/obitools3/obidms/_obitaxo.cfiles index 2730feb..9f0ab06 100644 --- a/python/obitools3/obidms/_obitaxo.cfiles +++ b/python/obitools3/obidms/_obitaxo.cfiles @@ -37,3 +37,15 @@ ../../../src/obiview.c ../../../src/utils.h ../../../src/utils.c +../../../src/obidmscolumn_bool.c +../../../src/obidmscolumn_bool.h +../../../src/obidmscolumn_char.c +../../../src/obidmscolumn_char.h +../../../src/obidmscolumn_float.c +../../../src/obidmscolumn_float.h +../../../src/obidmscolumn_int.c +../../../src/obidmscolumn_int.h +../../../src/obidmscolumn_seq.c +../../../src/obidmscolumn_seq.h +../../../src/obidmscolumn_str.c +../../../src/obidmscolumn_str.h From 6b61533650c41982b31734ff7b7c3425ac2973c8 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Wed, 27 Apr 2016 10:41:00 +0200 Subject: [PATCH 3/8] Added more C source files for _obiseq --- python/obitools3/obidms/_obiseq.cfiles | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/python/obitools3/obidms/_obiseq.cfiles b/python/obitools3/obidms/_obiseq.cfiles index 2730feb..9f0ab06 100644 --- a/python/obitools3/obidms/_obiseq.cfiles +++ b/python/obitools3/obidms/_obiseq.cfiles @@ -37,3 +37,15 @@ ../../../src/obiview.c ../../../src/utils.h ../../../src/utils.c +../../../src/obidmscolumn_bool.c +../../../src/obidmscolumn_bool.h +../../../src/obidmscolumn_char.c +../../../src/obidmscolumn_char.h +../../../src/obidmscolumn_float.c +../../../src/obidmscolumn_float.h +../../../src/obidmscolumn_int.c +../../../src/obidmscolumn_int.h +../../../src/obidmscolumn_seq.c +../../../src/obidmscolumn_seq.h +../../../src/obidmscolumn_str.c +../../../src/obidmscolumn_str.h From 4e4cf46b1676b445dc18d3ed79d7694adef9a6ca Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Wed, 27 Apr 2016 10:44:24 +0200 Subject: [PATCH 4/8] Added all C files as source files for all cython files to stop having that kind of problem with linux systems --- .../obitools3/obidms/_obidmscolumn_bool.cfiles | 14 ++++++++++++-- .../obitools3/obidms/_obidmscolumn_char.cfiles | 14 ++++++++++++-- .../obidms/_obidmscolumn_float.cfiles | 18 ++++++++++++++---- .../obitools3/obidms/_obidmscolumn_int.cfiles | 18 ++++++++++++++---- .../obitools3/obidms/_obidmscolumn_seq.cfiles | 14 ++++++++++++-- .../obitools3/obidms/_obidmscolumn_str.cfiles | 14 ++++++++++++-- 6 files changed, 76 insertions(+), 16 deletions(-) diff --git a/python/obitools3/obidms/_obidmscolumn_bool.cfiles b/python/obitools3/obidms/_obidmscolumn_bool.cfiles index 1ee8f82..9f0ab06 100644 --- a/python/obitools3/obidms/_obidmscolumn_bool.cfiles +++ b/python/obitools3/obidms/_obidmscolumn_bool.cfiles @@ -1,5 +1,3 @@ -../../../src/obidmscolumn_bool.c -../../../src/obidmscolumn_bool.h ../../../src/bloom.h ../../../src/bloom.c ../../../src/char_str_indexer.h @@ -39,3 +37,15 @@ ../../../src/obiview.c ../../../src/utils.h ../../../src/utils.c +../../../src/obidmscolumn_bool.c +../../../src/obidmscolumn_bool.h +../../../src/obidmscolumn_char.c +../../../src/obidmscolumn_char.h +../../../src/obidmscolumn_float.c +../../../src/obidmscolumn_float.h +../../../src/obidmscolumn_int.c +../../../src/obidmscolumn_int.h +../../../src/obidmscolumn_seq.c +../../../src/obidmscolumn_seq.h +../../../src/obidmscolumn_str.c +../../../src/obidmscolumn_str.h diff --git a/python/obitools3/obidms/_obidmscolumn_char.cfiles b/python/obitools3/obidms/_obidmscolumn_char.cfiles index 4f67cb3..9f0ab06 100644 --- a/python/obitools3/obidms/_obidmscolumn_char.cfiles +++ b/python/obitools3/obidms/_obidmscolumn_char.cfiles @@ -1,5 +1,3 @@ -../../../src/obidmscolumn_char.c -../../../src/obidmscolumn_char.h ../../../src/bloom.h ../../../src/bloom.c ../../../src/char_str_indexer.h @@ -39,3 +37,15 @@ ../../../src/obiview.c ../../../src/utils.h ../../../src/utils.c +../../../src/obidmscolumn_bool.c +../../../src/obidmscolumn_bool.h +../../../src/obidmscolumn_char.c +../../../src/obidmscolumn_char.h +../../../src/obidmscolumn_float.c +../../../src/obidmscolumn_float.h +../../../src/obidmscolumn_int.c +../../../src/obidmscolumn_int.h +../../../src/obidmscolumn_seq.c +../../../src/obidmscolumn_seq.h +../../../src/obidmscolumn_str.c +../../../src/obidmscolumn_str.h diff --git a/python/obitools3/obidms/_obidmscolumn_float.cfiles b/python/obitools3/obidms/_obidmscolumn_float.cfiles index 1bc1f0e..9f0ab06 100644 --- a/python/obitools3/obidms/_obidmscolumn_float.cfiles +++ b/python/obitools3/obidms/_obidmscolumn_float.cfiles @@ -1,9 +1,7 @@ -../../../src/obidmscolumn_float.c -../../../src/obidmscolumn_float.h -../../../src/char_str_indexer.h -../../../src/char_str_indexer.c ../../../src/bloom.h ../../../src/bloom.c +../../../src/char_str_indexer.h +../../../src/char_str_indexer.c ../../../src/crc64.h ../../../src/crc64.c ../../../src/dna_seq_indexer.h @@ -39,3 +37,15 @@ ../../../src/obiview.c ../../../src/utils.h ../../../src/utils.c +../../../src/obidmscolumn_bool.c +../../../src/obidmscolumn_bool.h +../../../src/obidmscolumn_char.c +../../../src/obidmscolumn_char.h +../../../src/obidmscolumn_float.c +../../../src/obidmscolumn_float.h +../../../src/obidmscolumn_int.c +../../../src/obidmscolumn_int.h +../../../src/obidmscolumn_seq.c +../../../src/obidmscolumn_seq.h +../../../src/obidmscolumn_str.c +../../../src/obidmscolumn_str.h diff --git a/python/obitools3/obidms/_obidmscolumn_int.cfiles b/python/obitools3/obidms/_obidmscolumn_int.cfiles index 2b1168e..9f0ab06 100644 --- a/python/obitools3/obidms/_obidmscolumn_int.cfiles +++ b/python/obitools3/obidms/_obidmscolumn_int.cfiles @@ -1,9 +1,7 @@ -../../../src/obidmscolumn_int.c -../../../src/obidmscolumn_int.h -../../../src/char_str_indexer.h -../../../src/char_str_indexer.c ../../../src/bloom.h ../../../src/bloom.c +../../../src/char_str_indexer.h +../../../src/char_str_indexer.c ../../../src/crc64.h ../../../src/crc64.c ../../../src/dna_seq_indexer.h @@ -39,3 +37,15 @@ ../../../src/obiview.c ../../../src/utils.h ../../../src/utils.c +../../../src/obidmscolumn_bool.c +../../../src/obidmscolumn_bool.h +../../../src/obidmscolumn_char.c +../../../src/obidmscolumn_char.h +../../../src/obidmscolumn_float.c +../../../src/obidmscolumn_float.h +../../../src/obidmscolumn_int.c +../../../src/obidmscolumn_int.h +../../../src/obidmscolumn_seq.c +../../../src/obidmscolumn_seq.h +../../../src/obidmscolumn_str.c +../../../src/obidmscolumn_str.h diff --git a/python/obitools3/obidms/_obidmscolumn_seq.cfiles b/python/obitools3/obidms/_obidmscolumn_seq.cfiles index 1dc1a64..9f0ab06 100644 --- a/python/obitools3/obidms/_obidmscolumn_seq.cfiles +++ b/python/obitools3/obidms/_obidmscolumn_seq.cfiles @@ -1,5 +1,3 @@ -../../../src/obidmscolumn_seq.c -../../../src/obidmscolumn_seq.h ../../../src/bloom.h ../../../src/bloom.c ../../../src/char_str_indexer.h @@ -39,3 +37,15 @@ ../../../src/obiview.c ../../../src/utils.h ../../../src/utils.c +../../../src/obidmscolumn_bool.c +../../../src/obidmscolumn_bool.h +../../../src/obidmscolumn_char.c +../../../src/obidmscolumn_char.h +../../../src/obidmscolumn_float.c +../../../src/obidmscolumn_float.h +../../../src/obidmscolumn_int.c +../../../src/obidmscolumn_int.h +../../../src/obidmscolumn_seq.c +../../../src/obidmscolumn_seq.h +../../../src/obidmscolumn_str.c +../../../src/obidmscolumn_str.h diff --git a/python/obitools3/obidms/_obidmscolumn_str.cfiles b/python/obitools3/obidms/_obidmscolumn_str.cfiles index c2325aa..9f0ab06 100644 --- a/python/obitools3/obidms/_obidmscolumn_str.cfiles +++ b/python/obitools3/obidms/_obidmscolumn_str.cfiles @@ -1,5 +1,3 @@ -../../../src/obidmscolumn_str.c -../../../src/obidmscolumn_str.h ../../../src/bloom.h ../../../src/bloom.c ../../../src/char_str_indexer.h @@ -39,3 +37,15 @@ ../../../src/obiview.c ../../../src/utils.h ../../../src/utils.c +../../../src/obidmscolumn_bool.c +../../../src/obidmscolumn_bool.h +../../../src/obidmscolumn_char.c +../../../src/obidmscolumn_char.h +../../../src/obidmscolumn_float.c +../../../src/obidmscolumn_float.h +../../../src/obidmscolumn_int.c +../../../src/obidmscolumn_int.h +../../../src/obidmscolumn_seq.c +../../../src/obidmscolumn_seq.h +../../../src/obidmscolumn_str.c +../../../src/obidmscolumn_str.h From d159b921ebcfd502e63cb21fd6d6bf33baa0b836 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Wed, 27 Apr 2016 13:14:19 +0200 Subject: [PATCH 5/8] Fixed obi import trying to print all lines at the end (source of segfault?) --- python/obitools3/commands/import.pyx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/python/obitools3/commands/import.pyx b/python/obitools3/commands/import.pyx index 7df883b..923a63a 100644 --- a/python/obitools3/commands/import.pyx +++ b/python/obitools3/commands/import.pyx @@ -106,7 +106,7 @@ def run(config): raise RuntimeError('No file format specified') # Temporary way to handle NA values - NA_list = ["nan"] + #NA_list = ["nan"] # Create DMS d = OBIDMS(config['obi']['defaultdms']) @@ -126,10 +126,11 @@ def run(config): view[i][tag] = seq['tags'][tag] i+=1 - print(view) - # print(view.__repr__()) + #print(view) + print(view.__repr__()) view.save_and_close() d.close() - + + print("Done.") \ No newline at end of file From f3b20b809d6fb0b4fd886e4a7658df87760342e9 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Wed, 27 Apr 2016 14:01:36 +0200 Subject: [PATCH 6/8] Fixed bug with indexer names being defined and generating seg fault if creating a column not using indexers --- src/obidmscolumn.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/obidmscolumn.c b/src/obidmscolumn.c index 3a8b689..4e205e4 100644 --- a/src/obidmscolumn.c +++ b/src/obidmscolumn.c @@ -587,16 +587,19 @@ OBIDMS_column_p obi_create_column(OBIDMS_p dms, } // Build the indexer name if needed - if (((data_type == OBI_STR) || (data_type == OBI_SEQ)) && (strcmp(indexer_name, "") == 0)) + if ((data_type == OBI_STR) || (data_type == OBI_SEQ)) { - final_indexer_name = obi_build_indexer_name(column_name, version_number); - if (final_indexer_name == NULL) - return NULL; - } - else - { - final_indexer_name = (char*) malloc((strlen(indexer_name)+1)*sizeof(char)); - strcpy(final_indexer_name, indexer_name); + if (strcmp(indexer_name, "") == 0) + { + final_indexer_name = obi_build_indexer_name(column_name, version_number); + if (final_indexer_name == NULL) + return NULL; + } + else + { + final_indexer_name = (char*) malloc((strlen(indexer_name)+1)*sizeof(char)); + strcpy(final_indexer_name, indexer_name); + } } returned_data_type = data_type; From 0de953a3ef1de156666511674148ff56c180004c Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Wed, 27 Apr 2016 14:19:55 +0200 Subject: [PATCH 7/8] pseudo obigrep for tests --- python/obitools3/obigrep.py | 51 +++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 python/obitools3/obigrep.py diff --git a/python/obitools3/obigrep.py b/python/obitools3/obigrep.py new file mode 100644 index 0000000..20577fe --- /dev/null +++ b/python/obitools3/obigrep.py @@ -0,0 +1,51 @@ +import sys +import argparse + +from obitools3.obidms._obidms import OBIDMS + +if __name__ == '__main__': + + parser = argparse.ArgumentParser(description='Pseudo obigrep.') + + parser.add_argument('-V', '--view', dest='view', type=str, + help='Name of the view that should be considered') + + parser.add_argument('-N', '--new_view', dest='new_view', type=str, + help='Name of the new view that should be created') + +# parser.add_argument('-k', '--key', dest='key', type=str, +# help='Name of the key that should be considered') +# +# parser.add_argument('-c', '--comp', dest='comparison', type=int, +# help='Comparison to be made: -1:< ; 0:== ; 1:>') +# +# parser.add_argument('-v', '--value', dest='value', type=object, +# help='Value to be compared') + + args = parser.parse_args() + + d = OBIDMS('tdms') + + #condition = 1 + line_selec = [] + + v = d.open_view(args.view) + + i = 0 + for l in v : + if l['score'] > 350 : + line_selec.append(i) + i+=1 + + new_v = d.new_view(args.new_view, view_to_clone=v, line_selection=line_selec, view_type="NUC_SEQS_VIEW", comments="obigrep "+args.view+" to "+args.new_view) #args.key+" "+str(args.comparison)+" "+str(args.value)+" "+) + + print("\n") + print(new_v.__repr__()) + + v.save_and_close() + new_v.save_and_close() + + d.close() + + print("\nDone.") + \ No newline at end of file From 0eca86107e2223ed79becffde8a2d2e7b19c1c35 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Wed, 27 Apr 2016 14:27:28 +0200 Subject: [PATCH 8/8] Pseudo obihead for tests --- python/obitools3/obihead.py | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 python/obitools3/obihead.py diff --git a/python/obitools3/obihead.py b/python/obitools3/obihead.py new file mode 100644 index 0000000..819d924 --- /dev/null +++ b/python/obitools3/obihead.py @@ -0,0 +1,43 @@ +import sys +import argparse + +from obitools3.obidms._obidms import OBIDMS + +if __name__ == '__main__': + + parser = argparse.ArgumentParser(description='Pseudo obihead.') + + parser.add_argument('-V', '--view', dest='view', type=str, + help='Name of the view that should be considered') + + parser.add_argument('-N', '--new_view', dest='new_view', type=str, + help='Name of the new view that should be created') + + parser.add_argument('-n', '--nb', dest='nb_lines', type=int, + help='Number of lines that should be taken') + + + args = parser.parse_args() + + d = OBIDMS('tdms') + + #condition = 1 + line_selec = [] + + v = d.open_view(args.view) + + for i in range(0, args.nb_lines) : + line_selec.append(i) + + new_v = d.new_view(args.new_view, view_to_clone=v, line_selection=line_selec, view_type="NUC_SEQS_VIEW", comments="obihead "+str(args.nb_lines)+", "+args.view+" to "+args.new_view) #args.key+" "+str(args.comparison)+" "+str(args.value)+" "+) + + print("\n") + print(new_v.__repr__()) + + v.save_and_close() + new_v.save_and_close() + + d.close() + + print("\nDone.") + \ No newline at end of file