-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_aa_dat.c b/src/load/load_influenza_aa_dat.c index 8bf47aa..3826349 100644 --- a/src/load/load_influenza_aa_dat.c +++ b/src/load/load_influenza_aa_dat.c @@ -13,10 +13,9 @@ #include <stdlib.h> #define NFIELDS (hsize_t) 11 -#define TABLE_NAME "influenza_aa.dat" void -load_influenza_aa_dat (hid_t file_id) +load_influenza_aa_dat (hid_t file_id, const char* file_name) { /* * Model the data using native types. @@ -145,8 +144,7 @@ load_influenza_aa_dat (hid_t file_id) * Insert the records. */ supplementary_data p_data; - FILE *dat = fopen ("/home/don/exp004/genomes/INFLUENZA/influenza_aa.dat", - "r"); + FILE *dat = fopen (file_name, "r"); if (dat == NULL) check_error (__FILE__, __LINE__); char *line = NULL; @@ -214,18 +212,49 @@ load_influenza_aa_dat (hid_t file_id) if (current_line == 1) { - herr_t status = H5TBmake_table ("influenza_aa.dat", file_id, - TABLE_NAME, NFIELDS, 1, dst_size, - 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_aa.dat") == 1) + { + hsize_t nfields = 0; + hsize_t nrecords = 0; + herr_t status = H5TBget_table_info (file_id, "influenza_aa.dat", + &nfields, &nrecords); + if (status < 0) + check_h5_error (status, __FILE__, __LINE__); + + status = H5TBdelete_record (file_id, "influenza_aa.dat", 0, nrecords); + if (status < 0) + check_h5_error (status, __FILE__, __LINE__); + + status = + H5TBappend_records (file_id, "influenza_aa.dat", 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_aa.dat", file_id, + "influenza_aa.dat", NFIELDS, 1, dst_size, + 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 = - H5TBappend_records (file_id, TABLE_NAME, 1, dst_size, + H5TBappend_records (file_id, "influenza_aa.dat", 1, dst_size, dst_offset, dst_sizes, &p_data); if (status < 0) check_h5_error (status, __FILE__, __LINE__); |