-rw-r--r-- | src/aggregator.c | 34 | ||||
-rw-r--r-- | src/assign/assign_protein_type.c | 141 | ||||
-rw-r--r-- | src/load/load_influenza_aa_dat.c | 53 | ||||
-rw-r--r-- | src/load/load_influenza_aa_dat.h | 2 | ||||
-rw-r--r-- | src/load/load_influenza_faa.c | 53 | ||||
-rw-r--r-- | src/load/load_influenza_faa.h | 2 | ||||
-rw-r--r-- | src/updator.c | 2 |
7 files changed, 201 insertions, 86 deletions
diff --git a/src/load/load_influenza_faa.c b/src/load/load_influenza_faa.c index a217989..04bf05b 100644 --- a/src/load/load_influenza_faa.c +++ b/src/load/load_influenza_faa.c @@ -8,7 +8,7 @@ #include <stdlib.h> void -load_influenza_faa (hid_t file_id) +load_influenza_faa (hid_t file_id, const char* file_name) { size_t dst_size; size_t dst_offset[SEQUENCE_DATA_FIELD_NUM]; @@ -22,8 +22,7 @@ load_influenza_faa (hid_t file_id) int compress = 0; sequence_data p_data; - FILE *dat = fopen ("/home/don/exp004/genomes/INFLUENZA/influenza.faa", - "r"); + FILE *dat = fopen (file_name, "r"); if (dat == NULL) check_error (__FILE__, __LINE__); char *line = NULL; @@ -62,16 +61,46 @@ load_influenza_faa (hid_t file_id) if (current_line == 1) { - herr_t status = H5TBmake_table ("influenza.faa", file_id, - "influenza.faa", - SEQUENCE_DATA_FIELD_NUM, 1, - dst_size, sequence_data_field_names, - dst_offset, field_type, - chunk_size, fill_data, compress, - &p_data); - if (status < 0) - check_h5_error (status, __FILE__, __LINE__); + /* + * Dataset already exists. Purge it. + */ + if (H5LTfind_dataset (file_id, "influenza.faa") == 1) + { + hsize_t nfields = 0; + hsize_t nrecords = 0; + herr_t status = H5TBget_table_info (file_id, "influenza.faa", &nfields, + &nrecords); + if (status < 0) + check_h5_error (status, __FILE__, __LINE__); + + status = H5TBdelete_record (file_id, "influenza.faa", 0, nrecords); + if (status < 0) + check_h5_error (status, __FILE__, __LINE__); + + status = + H5TBappend_records (file_id, "influenza.faa", 1, dst_size, + dst_offset, dst_sizes, &p_data); + if (status < 0) + check_h5_error (status, __FILE__, __LINE__); + } + + /* + * Dataset does not exist. Create it. + */ + else + { + herr_t status = H5TBmake_table ("influenza.faa", file_id, + "influenza.faa", + SEQUENCE_DATA_FIELD_NUM, 1, + dst_size, sequence_data_field_names, + dst_offset, field_type, + chunk_size, fill_data, compress, + &p_data); + if (status < 0) + check_h5_error (status, __FILE__, __LINE__); + } } + else { herr_t status = |