summaryrefslogtreecommitdiffstats
Side-by-side diff
-rw-r--r--src/aggregator.c34
-rw-r--r--src/assign/assign_protein_type.c141
-rw-r--r--src/load/load_influenza_aa_dat.c53
-rw-r--r--src/load/load_influenza_aa_dat.h2
-rw-r--r--src/load/load_influenza_faa.c53
-rw-r--r--src/load/load_influenza_faa.h2
-rw-r--r--src/updator.c2
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__);

Valid XHTML 1.0 Strict

Copyright © 2009 Don Pellegrino All Rights Reserved.