Compare commits
4 Commits
v3.0.0-bet
...
v3.0.0-bet
Author | SHA1 | Date | |
---|---|---|---|
8d0b17d87d | |||
343999a627 | |||
e9a40630e9 | |||
8dbcd3025a |
@ -1,5 +1,5 @@
|
||||
major = 3
|
||||
minor = 0
|
||||
serial= '0-beta13'
|
||||
serial= '0-beta14'
|
||||
|
||||
version ="%d.%02d.%s" % (major,minor,serial)
|
||||
|
@ -2376,9 +2376,10 @@ int read_merged_dmp(const char* taxdump, OBIDMS_taxonomy_p tax, int32_t* delnode
|
||||
// and the deleted taxids with no current reference. An element of the list is composed of the taxid, and the index
|
||||
// of the taxon in the taxa structure, or -1 for deleted taxids.
|
||||
// Creating the merged list requires to merge the 3 ordered lists into one.
|
||||
while (((nT < (tax->taxa)->count) && ((tax->taxa)->taxon[nT].taxid < old_taxid)) || ((nD >= 0) && (delnodes[nD] < old_taxid)))
|
||||
while (((nT < (tax->taxa)->count) && ((tax->taxa)->taxon[nT].taxid < old_taxid)) ||
|
||||
((nD >= 0) && (delnodes[nD] < old_taxid)))
|
||||
{
|
||||
if ((tax->taxa)->taxon[nT].taxid < delnodes[nD])
|
||||
if ((nT < (tax->taxa)->count) && (tax->taxa)->taxon[nT].taxid < delnodes[nD])
|
||||
{ // Add element from taxa list
|
||||
// Enlarge structure if needed
|
||||
if (n == buffer_size)
|
||||
@ -2401,7 +2402,7 @@ int read_merged_dmp(const char* taxdump, OBIDMS_taxonomy_p tax, int32_t* delnode
|
||||
nT++;
|
||||
n++;
|
||||
}
|
||||
else if (delnodes[nD] < (tax->taxa)->taxon[nT].taxid)
|
||||
else
|
||||
{ // Add element from deleted taxids list
|
||||
// Enlarge structure if needed
|
||||
if (n == buffer_size)
|
||||
@ -3036,12 +3037,12 @@ OBIDMS_taxonomy_p obi_read_taxonomy(OBIDMS_p dms, const char* taxonomy_name, boo
|
||||
|
||||
strcpy(tax->tax_name, taxonomy_name);
|
||||
|
||||
buffer_size = 2048;
|
||||
|
||||
taxonomy_path = get_taxonomy_path(dms, taxonomy_name);
|
||||
if (taxonomy_path == NULL)
|
||||
return NULL;
|
||||
|
||||
buffer_size = strlen(taxonomy_path) + strlen(taxonomy_name) + 6;
|
||||
|
||||
// Read ranks
|
||||
ranks_file_name = (char*) malloc(buffer_size*sizeof(char));
|
||||
if (ranks_file_name == NULL)
|
||||
|
@ -1973,7 +1973,7 @@ int obi_enlarge_column(OBIDMS_column_p column)
|
||||
|
||||
// Calculate the new file size
|
||||
old_line_count = (column->header)->line_count;
|
||||
new_line_count = old_line_count * COLUMN_GROWTH_FACTOR;
|
||||
new_line_count = ceil((double) old_line_count * (double) COLUMN_GROWTH_FACTOR);
|
||||
|
||||
if (new_line_count > MAXIMUM_LINE_COUNT)
|
||||
{
|
||||
@ -2381,6 +2381,54 @@ char* obi_get_elements_names(OBIDMS_column_p column)
|
||||
}
|
||||
|
||||
|
||||
char* obi_get_formatted_elements_names(OBIDMS_column_p column)
|
||||
{
|
||||
char* elements_names;
|
||||
int i, j;
|
||||
int elt_idx;
|
||||
int len;
|
||||
|
||||
elements_names = (char*) malloc(((column->header)->elements_names_length + (column->header)->nb_elements_per_line) * sizeof(char));
|
||||
if (elements_names == NULL)
|
||||
{
|
||||
obi_set_errno(OBI_MALLOC_ERROR);
|
||||
obidebug(1, "\nError allocating memory for elements names");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
j = 0;
|
||||
for (i=0; i < (column->header)->nb_elements_per_line; i++)
|
||||
{
|
||||
elt_idx = ((column->header)->elements_names_idx)[i];
|
||||
len = strlen(((column->header)->elements_names)+elt_idx);
|
||||
memcpy(elements_names+j, ((column->header)->elements_names)+elt_idx, len*sizeof(char));
|
||||
j = j + len;
|
||||
elements_names[j] = ';';
|
||||
j++;
|
||||
elements_names[j] = ' ';
|
||||
j++;
|
||||
}
|
||||
|
||||
elements_names[j - 1] = '\0';
|
||||
|
||||
return elements_names;
|
||||
}
|
||||
|
||||
|
||||
char* obi_column_formatted_infos(OBIDMS_column_p column)
|
||||
{
|
||||
char* column_infos;
|
||||
char* elt_names;
|
||||
|
||||
column_infos = malloc(1024 * sizeof(char));
|
||||
|
||||
elt_names = obi_get_formatted_elements_names(column);
|
||||
|
||||
|
||||
free(elt_names);
|
||||
return column_infos;
|
||||
}
|
||||
|
||||
|
||||
int obi_column_prepare_to_set_value(OBIDMS_column_p column, index_t line_nb, index_t elt_idx)
|
||||
{
|
||||
|
@ -34,7 +34,7 @@
|
||||
#define NB_ELTS_MAX_IF_DEFAULT_NAME (1000000) /**< The maximum number of elements per line if the default element names
|
||||
* are used ("0\01\02\0...\0n"), considering ELEMENTS_NAMES_MAX. // TODO not up to date
|
||||
*/
|
||||
#define COLUMN_GROWTH_FACTOR (2) /**< The growth factor when a column is enlarged.
|
||||
#define COLUMN_GROWTH_FACTOR (1.3) /**< The growth factor when a column is enlarged.
|
||||
*/
|
||||
#define MAXIMUM_LINE_COUNT (1000000000) /**< The maximum line count for the data of a column (1E9). //TODO
|
||||
*/
|
||||
@ -505,6 +505,14 @@ index_t obi_column_get_element_index_from_name(OBIDMS_column_p column, const cha
|
||||
char* obi_get_elements_names(OBIDMS_column_p column);
|
||||
|
||||
|
||||
// TODO
|
||||
//char* obi_get_formatted_elements_names(OBIDMS_column_p column);
|
||||
|
||||
|
||||
// TODO
|
||||
//char* obi_column_formatted_infos(OBIDMS_column_p column);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Prepares a column to set a value.
|
||||
*
|
||||
|
Reference in New Issue
Block a user