-rw-r--r-- | src/assign_protein_type.c | 29 | ||||
-rw-r--r-- | src/load_influenza_aa_dat.c | 2 | ||||
-rw-r--r-- | src/load_influenza_faa.c | 42 |
3 files changed, 59 insertions, 14 deletions
diff --git a/src/load_influenza_faa.c b/src/load_influenza_faa.c index 61bb99d..749b7ad 100644 --- a/src/load_influenza_faa.c +++ b/src/load_influenza_faa.c @@ -5,6 +5,8 @@ #include <string.h> #include <stdlib.h> +#define SEQUENCE_DATA_FIELD_NUM 4 + void load_influenza_faa (hid_t file_id) { @@ -13,24 +15,27 @@ load_influenza_faa (hid_t file_id) int gi; char gb[9]; char description[196]; + char protein_type[7]; } sequence_data; - + size_t dst_size = sizeof (sequence_data); - size_t dst_offset[3] = + size_t dst_offset[SEQUENCE_DATA_FIELD_NUM] = { HOFFSET (sequence_data, gi), HOFFSET (sequence_data, gb), - HOFFSET (sequence_data, description) + HOFFSET (sequence_data, description), + HOFFSET (sequence_data, protein_type) }; sequence_data dst_buf[1]; - size_t dst_sizes[3] = { + size_t dst_sizes[SEQUENCE_DATA_FIELD_NUM] = { sizeof (dst_buf[0].gi), sizeof (dst_buf[0].gb), - sizeof (dst_buf[0].description) + sizeof (dst_buf[0].description), + sizeof (dst_buf[0].protein_type) }; - hid_t field_type[3]; + hid_t field_type[SEQUENCE_DATA_FIELD_NUM]; field_type[0] = H5T_NATIVE_INT; @@ -42,9 +47,15 @@ load_influenza_faa (hid_t file_id) H5Tset_size (description_type, 196); field_type[2] = description_type; - const char *field_names[3] = { "GI", - "GB", - "Description" }; + hid_t protein_type_type = H5Tcopy (H5T_C_S1); + H5Tset_size (protein_type_type, 7); + field_type[3] = protein_type_type; + + const char *field_names[SEQUENCE_DATA_FIELD_NUM] = + { "GI", + "GB", + "Description", + "Protein Type" }; hsize_t chunk_size = 10; int *fill_data = NULL; @@ -86,13 +97,17 @@ load_influenza_faa (hid_t file_id) strncpy (p_data.description, strsep (&running, "|"), sizeof (p_data.description)); + strncpy (p_data.protein_type, "", sizeof (p_data.protein_type)); + if (current_line == 1) { herr_t status = H5TBmake_table ("influenza.faa", file_id, - "influenza.faa", 3, 1, dst_size, - field_names, dst_offset, - field_type, chunk_size, - fill_data, compress, &p_data); + "influenza.faa", + SEQUENCE_DATA_FIELD_NUM, 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__); } @@ -119,6 +134,7 @@ load_influenza_faa (hid_t file_id) H5Tclose (gb_type); H5Tclose (description_type); + H5Tclose (protein_type_type); return; } |