mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-10-07 01:28:11 +08:00
metadata in parallel
This commit is contained in:
@@ -147,14 +147,11 @@ const drawParallelCoordinates = (data) => {
|
|||||||
|
|
||||||
/*****************************************
|
/*****************************************
|
||||||
******************************************
|
******************************************
|
||||||
Setup SVG & Canvas elements
|
process and visualize data
|
||||||
******************************************
|
******************************************
|
||||||
******************************************/
|
******************************************/
|
||||||
|
|
||||||
d3.csv("https://gist.githubusercontent.com/syntagmatic/05a5b0897a48890133beb59c815bd953/raw/310a68d713eb4d351f809b6cfbcffe3d9d96a205/nutrient.csv", (error, data) => {
|
// shuffle the data! - or not, this is a visual effect
|
||||||
if (error) throw error;
|
|
||||||
|
|
||||||
// shuffle the data!
|
|
||||||
data = d3.shuffle(data);
|
data = d3.shuffle(data);
|
||||||
|
|
||||||
data.forEach(function(d) {
|
data.forEach(function(d) {
|
||||||
@@ -182,7 +179,24 @@ const drawParallelCoordinates = (data) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const draw = (d) => {
|
const draw = (d) => {
|
||||||
ctx.strokeStyle = "rgba(0,0,0,.4)" /* color(d.food_group); */
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
line color options 8/23/2017:
|
||||||
|
|
||||||
|
Cluster_2d_color
|
||||||
|
Cluster_CNV_color
|
||||||
|
Location.color
|
||||||
|
Sample.name.color
|
||||||
|
Sample.type.color
|
||||||
|
Selection.color
|
||||||
|
housekeeping_cluster_color
|
||||||
|
recluster_myeloid
|
||||||
|
recluster_myeloid_color
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
ctx.strokeStyle = d["Cluster_2d_color"]; //"rgba(0,0,0,.4)" /* color(d.food_group); */
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
var coords = project(d);
|
var coords = project(d);
|
||||||
coords.forEach((p,i) => {
|
coords.forEach((p,i) => {
|
||||||
@@ -225,6 +239,8 @@ const drawParallelCoordinates = (data) => {
|
|||||||
const brush = () => {
|
const brush = () => {
|
||||||
render.invalidate();
|
render.invalidate();
|
||||||
|
|
||||||
|
console.log('brush', svg.selectAll(".axis .brush"))
|
||||||
|
|
||||||
var actives = [];
|
var actives = [];
|
||||||
svg.selectAll(".axis .brush")
|
svg.selectAll(".axis .brush")
|
||||||
.filter((d) => {
|
.filter((d) => {
|
||||||
@@ -252,13 +268,20 @@ const drawParallelCoordinates = (data) => {
|
|||||||
render(selected);
|
render(selected);
|
||||||
|
|
||||||
output.text(d3.tsvFormat(selected.slice(0,24)));
|
output.text(d3.tsvFormat(selected.slice(0,24)));
|
||||||
console.log('fires brush', actives)
|
// console.log('fires brush', actives)
|
||||||
}
|
}
|
||||||
|
|
||||||
function brushstart() {
|
function brushstart() {
|
||||||
d3.event.sourceEvent.stopPropagation();
|
d3.event.sourceEvent.stopPropagation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************
|
||||||
|
******************************************
|
||||||
|
Render
|
||||||
|
******************************************
|
||||||
|
******************************************/
|
||||||
|
|
||||||
var render = renderQueue(draw).rate(50);
|
var render = renderQueue(draw).rate(50);
|
||||||
|
|
||||||
ctx.clearRect(0,0,width,height);
|
ctx.clearRect(0,0,width,height);
|
||||||
@@ -307,8 +330,6 @@ const drawParallelCoordinates = (data) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default drawParallelCoordinates;
|
export default drawParallelCoordinates;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export const types = {
|
|||||||
coerce: function(d) { return +d; },
|
coerce: function(d) { return +d; },
|
||||||
extent: d3.extent,
|
extent: d3.extent,
|
||||||
within: function(d, extent, dim) { return extent[0] <= dim.scale(d) && dim.scale(d) <= extent[1]; },
|
within: function(d, extent, dim) { return extent[0] <= dim.scale(d) && dim.scale(d) <= extent[1]; },
|
||||||
defaultScale: d3.scaleLinear().range([innerHeight, 0])
|
defaultScale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
"String": {
|
"String": {
|
||||||
key: "String",
|
key: "String",
|
||||||
@@ -34,122 +34,87 @@ export const types = {
|
|||||||
|
|
||||||
export const dimensions = [
|
export const dimensions = [
|
||||||
{
|
{
|
||||||
key: "Total lipid (fat) (g)",
|
key: "Total_reads",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Sugars, total (g)",
|
key: "Unique_reads",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Calcium, Ca (mg)",
|
key: "Unique_reads_percent",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Sodium, Na (mg)",
|
key: "Genes_detected",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Phosphorus, P (mg)",
|
key: "ERCC_reads",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Potassium, K (mg)",
|
key: "Non_ERCC_reads",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Thiamin (mg)",
|
key: "ERCC_to_non_ERCC",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Riboflavin (mg)",
|
key: "Multimapping_reads_percent",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Niacin (mg)",
|
key: "Splice_sites_AT.AC",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Iron, Fe (mg)",
|
key: "Splice_sites_Annotated",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Magnesium, Mg (mg)",
|
key: "Splice_sites_GC.AG",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Protein (g)",
|
key: "Splice_sites_GT.AG",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Zinc, Zn (mg)",
|
key: "Splice_sites_non_canonical",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Vitamin B-6 (mg)",
|
key: "Splice_sites_total",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Vitamin B-12 (mcg)",
|
key: "Unmapped_mismatch",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Folic acid (mcg)",
|
key: "Unmapped_other",
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "Selenium, Se (mcg)",
|
key: "Unmapped_short",
|
||||||
type: types["Number"],
|
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "Vitamin A, IU (IU)",
|
|
||||||
type: types["Number"],
|
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "Vitamin K (phylloquinone) (mcg)",
|
|
||||||
type: types["Number"],
|
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "Vitamin C, total ascorbic acid (mg)",
|
|
||||||
type: types["Number"],
|
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "Vitamin D (IU)",
|
|
||||||
type: types["Number"],
|
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "Cholesterol (mg)",
|
|
||||||
type: types["Number"],
|
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "Fiber, total dietary (g)",
|
|
||||||
type: types["Number"],
|
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "Carbohydrate, by difference (g)",
|
|
||||||
type: types["Number"],
|
type: types["Number"],
|
||||||
scale: d3.scaleSqrt().range([innerHeight, 0])
|
scale: d3.scaleSqrt().range([innerHeight, 0])
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -1,20 +1,20 @@
|
|||||||
/* these will be either (preferably) specified or inferred */
|
/* these will be either (preferably) specified or inferred */
|
||||||
export const categories = ["Sample.type", "Selection", "Location", "Sample.name", "Class", "Neoplastic"];
|
export const categories = ["Sample.type", "Selection", "Location", "Sample.name", "Class", "Neoplastic"];
|
||||||
export const continuous = [
|
export const continuous = [
|
||||||
|
"Total_reads",
|
||||||
|
"Unique_reads",
|
||||||
|
"Unique_reads_percent",
|
||||||
"ERCC_reads",
|
"ERCC_reads",
|
||||||
|
"Non_ERCC_reads",
|
||||||
"ERCC_to_non_ERCC",
|
"ERCC_to_non_ERCC",
|
||||||
"Genes_detected",
|
"Genes_detected",
|
||||||
"Multimapping_reads_percent",
|
"Multimapping_reads_percent",
|
||||||
"Non_ERCC_reads",
|
|
||||||
"Splice_sites_AT.AC",
|
"Splice_sites_AT.AC",
|
||||||
"Splice_sites_Annotated",
|
"Splice_sites_Annotated",
|
||||||
"Splice_sites_GC.AG",
|
"Splice_sites_GC.AG",
|
||||||
"Splice_sites_GT.AG",
|
"Splice_sites_GT.AG",
|
||||||
"Splice_sites_non_canonical",
|
"Splice_sites_non_canonical",
|
||||||
"Splice_sites_total",
|
"Splice_sites_total",
|
||||||
"Total_reads",
|
|
||||||
"Unique_reads",
|
|
||||||
"Unique_reads_percent",
|
|
||||||
"Unmapped_mismatch",
|
"Unmapped_mismatch",
|
||||||
"Unmapped_other",
|
"Unmapped_other",
|
||||||
"Unmapped_short"
|
"Unmapped_short"
|
||||||
|
|||||||
Reference in New Issue
Block a user