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_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 =

Valid XHTML 1.0 Strict

Copyright © 2009 Don Pellegrino All Rights Reserved.