Public
Edited
Nov 8, 2021
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
keys = ["Control compound", "Control timepoint", "Treatment compound", "Treatment timepoint", "Control concentration", "Treatment concentration"]
Insert cell
heatmap_data = {
var arr = []
for (let i = 0; i < logfc_arrays.length; i++) {
var dataset = filtered_datasets[i]
var logfc_array = logfc_arrays[i]
for (let j = 0; j < logfc_array.length; j++) {
var logfc_item = logfc_array[j]
for (var key of keys) {
logfc_item[key] = dataset[key]
}

arr.push(logfc_item)
}
}
return arr
}
Insert cell
logfc_arrays = get_datasets_from_promises(
get_promised_fold_changes_datasets(
filtered_datasets.map(item => item["Dataset id"])
)
)
Insert cell
get_datasets_from_promises = function(array_of_promises) {
return Promise.all(array_of_promises).then(item => item.map(dataset => dataset.results.map(row => row.data)))
}
Insert cell
get_promised_fold_changes_datasets = function(array_of_datasets) {
return array_of_datasets.map(dataset => {
return fetch(base_url_edelweiss + dataset + "/versions/latest/data", query_options_for_fold_changes).then(response_dataset => {
if (!response_dataset.ok) throw new Error(response_dataset.status);
return response_dataset.json();
})
})
}
Insert cell
x = fetch_dataset_to_array(base_url_edelweiss + filtered_datasets[0]["Dataset id"] + "/versions/latest/data", query_options_for_fold_changes)
Insert cell
query_options_for_fold_changes = {
return {
method: 'POST',
body: JSON.stringify({
condition: {
or: [
{lt: [{column: ["logFC"]}, -logfc_threshold]},
{gt: [{column: ["logFC"]}, logfc_threshold]},
]
},
})
}
}
Insert cell
filtered_datasets = fetch_dataset_to_array(overview_url, query_options_filter_compound_and_timepoint)
Insert cell
query_options_filter_compound_and_timepoint = {
return {
method: 'POST',
body: JSON.stringify({
condition: {
and: [
{exactSearch: [{ column: ["Treatment compound"] }, selected_compounds]},
{containedIn: [{ column: ["Treatment timepoint"] }, selected_timepoints]},
{containedIn: [{ column: ["Control compound"] }, selected_controls]},
{containedIn: [{ column: ["Study"] }, selected_studies]},
]
}
})
}
}
Insert cell
control_compounds = get_unique_elements(overview, "Control compound")
Insert cell
concentrations = get_unique_elements(overview, "Treatment concentration")
Insert cell
timepoints = get_unique_elements(overview, "Treatment timepoint")
Insert cell
compounds = get_unique_elements(overview, "Treatment compound")
Insert cell
studies = get_unique_elements(overview, "Study")
Insert cell
get_unique_elements = function(array, parameter) {
return Array.from(new Set(array.map(item => item[parameter])))
}
Insert cell
overview = fetch_dataset_to_array(overview_url, {})
Insert cell
function fetch_dataset_to_array(dataset_url, query_options) {
return fetch(dataset_url, query_options).then(response_dataset => {
if (!response_dataset.ok) throw new Error(response_dataset.status);
return response_dataset.json();}).then(json => json.results.map(x => x.data));
}
Insert cell
overview_url = base_url_edelweiss + overview_id + "/versions/latest/data"
Insert cell
overview_id = "334e22ee-d496-4e45-b9fc-a529a221b1c0"
Insert cell
base_url_edelweiss = 'https://api.develop.edelweiss.douglasconnect.com/datasets/'
Insert cell
import {select, slider} from "@jashkenas/inputs"
Insert cell
import {Select, Range, Toggle} from "@observablehq/inputs"
Insert cell
import {vl} from "@vega/vega-lite-api"
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more