Commit 504d7d6a authored by jgould's avatar jgould

convert to string arrays

parent 4e78af68
......@@ -183,14 +183,9 @@ morpheus.GctReader.prototype = {
throw new Error('Missing data rows');
}
for (var i = 1, count = dataset.getRowMetadata().getMetadataCount(); i < count; i++) {
morpheus.VectorUtil.maybeConvertStringToNumber(dataset
.getRowMetadata().get(i));
}
for (var i = 1, count = dataset.getColumnMetadata().getMetadataCount(); i < count; i++) {
morpheus.VectorUtil.maybeConvertStringToNumber(dataset
.getColumnMetadata().get(i));
}
morpheus.MetadataUtil.maybeConvertStrings(dataset.getRowMetadata(), 1);
morpheus.MetadataUtil.maybeConvertStrings(dataset.getColumnMetadata(),
1);
return dataset;
}
};
......@@ -317,6 +317,8 @@ morpheus.MetadataUtil.indexOf = function(metadataModel, name) {
return -1;
};
morpheus.MetadataUtil.DEFAULT_STRING_ARRAY_FIELDS = [ 'target', 'moa' ];
morpheus.MetadataUtil.DEFAULT_HIDDEN_FIELDS = new morpheus.Set();
[ 'pr_analyte_id', 'pr_gene_title', 'pr_gene_id', 'pr_analyte_num',
'pr_bset_id', 'pr_lua_id', 'pr_pool_id', 'pr_is_bing', 'pr_is_inf',
......@@ -329,24 +331,19 @@ morpheus.MetadataUtil.DEFAULT_HIDDEN_FIELDS = new morpheus.Set();
'count_cv', 'provenance_code' ].forEach(function(name) {
morpheus.MetadataUtil.DEFAULT_HIDDEN_FIELDS.add(name);
});
morpheus.MetadataUtil.DEFAULT_FIELDS_TO_SHOW = {
'cell_id' : true,
'pert_idose' : true,
'pert_itime' : true,
'Id' : true,
'Name' : true,
'ID' : true,
'pr_id' : true,
'id' : true,
'pr_gene_symbol' : true,
'pr_is_lm' : true,
'is_lm' : true,
'pert_id' : true,
'pert_iname' : true,
'pert_desc' : true,
'Description' : true,
'gene_space' : true,
'pert_type' : true
morpheus.MetadataUtil.maybeConvertStrings = function(metadata,
metadataStartIndex) {
for (var i = metadataStartIndex, count = metadata.getMetadataCount(); i < count; i++) {
morpheus.VectorUtil.maybeConvertStringToNumber(metadata.get(i));
}
morpheus.MetadataUtil.DEFAULT_STRING_ARRAY_FIELDS.forEach(function(field) {
if (metadata.getByName(field)) {
morpheus.VectorUtil.maybeConvertToStringArray(metadata
.getByName(field), ',');
}
});
};
morpheus.MetadataUtil.copy = function(src, dest) {
if (src.getItemCount() != dest.getItemCount()) {
......
......@@ -39,6 +39,30 @@ morpheus.VectorUtil.createValueToCountMap = function(vector) {
}
return map;
};
morpheus.VectorUtil.maybeConvertToStringArray = function(vector, delim) {
var newValues = [];
var regex = new RegExp(delim);
var found = false;
for (var i = 0, nrows = vector.size(); i < nrows; i++) {
var s = vector.getValue(i);
if (s != null) {
var tokens = s.split(regex);
newValues.push(tokens);
if (!found && tokens.length > 1) {
found = true;
}
}
}
if (found) {
for (var i = 0, nrows = newValues.length; i < nrows; i++) {
vector.setValue(i, newValues[i]);
}
}
vector.getProperties().set(morpheus.VectorKeys.DATA_TYPE, '[string]');
return found;
};
morpheus.VectorUtil.maybeConvertStringToNumber = function(vector) {
var newValues = [];
......@@ -54,6 +78,7 @@ morpheus.VectorUtil.maybeConvertStringToNumber = function(vector) {
for (var i = 0, nrows = newValues.length; i < nrows; i++) {
vector.setValue(i, newValues[i]);
}
vector.getProperties().set(morpheus.VectorKeys.DATA_TYPE, 'number');
return true;
};
morpheus.VectorUtil.createValuesToIndicesMap = function(vectors) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment