reshape_tox21_datasets_for_all_compounds = function(array_of_datasets) {
var j;
var hitcall;
var ic50;
const unique_compound_datasets = Array.from(new Set(array_of_datasets.map(item => item["Summary data"])));
var results = [];
for (j = 0; j < unique_compound_datasets.length; j++) {
const dataset_id = unique_compound_datasets[j];
const datasets = array_of_datasets.filter(item => item["Summary data"] == dataset_id);
const hitcalls = datasets.map(item => item["Hit call"]);
const unique_hitcalls = Array.from(new Set(hitcalls));
const ic50_values = datasets.map(item => item["IC50"]);
if (unique_hitcalls.length > 1) {
hitcall = "ambiguous";
} else {
hitcall = unique_hitcalls[0];
};
if (hitcall == "active") {
const arrSum = ic50_values => ic50_values.reduce((a,b) => a + b, 0);
ic50 = arrSum / ic50_values.length;
} else {
ic50 = null;
}
const dataset_object = datasets[0];
results.push({
"Hit call": hitcall,
"Organism": dataset_object["Organism"],
"Cell type": dataset_object["Cell type"],
"Design type": dataset_object["Design type"],
"Target type": dataset_object["Target type"],
"Target family": dataset_object["Target family"],
"Biological process": dataset_object["Biological process"],
"Sample": dataset_object["Sample"],
"IC50": ic50,
});
};
return results;
}