Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
morpheus.js
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Daria Zenkova
morpheus.js
Commits
bc8c2428
Commit
bc8c2428
authored
Jun 14, 2016
by
Joshua Gould
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chart hover mode
parent
a86107b5
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
191 additions
and
181 deletions
+191
-181
js/morpheus-latest.min.js
js/morpheus-latest.min.js
+16
-16
src/matrix/dataset_util.js
src/matrix/dataset_util.js
+164
-164
src/tools/chart_tool2.js
src/tools/chart_tool2.js
+1
-0
src/ui/heat_map.js
src/ui/heat_map.js
+10
-1
No files found.
js/morpheus-latest.min.js
View file @
bc8c2428
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/matrix/dataset_util.js
View file @
bc8c2428
morpheus
.
DatasetUtil
=
function
()
{
morpheus
.
DatasetUtil
=
function
()
{
};
};
morpheus
.
DatasetUtil
.
min
=
function
(
dataset
,
seriesIndex
)
{
morpheus
.
DatasetUtil
.
min
=
function
(
dataset
,
seriesIndex
)
{
seriesIndex
=
seriesIndex
||
0
;
seriesIndex
=
seriesIndex
||
0
;
var
min
=
Number
.
MAX_VALUE
;
var
min
=
Number
.
MAX_VALUE
;
for
(
var
i
=
0
,
rows
=
dataset
.
getRowCount
();
i
<
rows
;
i
++
)
{
for
(
var
i
=
0
,
rows
=
dataset
.
getRowCount
();
i
<
rows
;
i
++
)
{
...
@@ -14,14 +14,14 @@ morpheus.DatasetUtil.min = function(dataset, seriesIndex) {
...
@@ -14,14 +14,14 @@ morpheus.DatasetUtil.min = function(dataset, seriesIndex) {
}
}
return
min
;
return
min
;
};
};
morpheus
.
DatasetUtil
.
slicedView
=
function
(
dataset
,
rows
,
columns
)
{
morpheus
.
DatasetUtil
.
slicedView
=
function
(
dataset
,
rows
,
columns
)
{
return
new
morpheus
.
SlicedDatasetView
(
dataset
,
rows
,
columns
);
return
new
morpheus
.
SlicedDatasetView
(
dataset
,
rows
,
columns
);
};
};
morpheus
.
DatasetUtil
.
transposedView
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
transposedView
=
function
(
dataset
)
{
return
dataset
instanceof
morpheus
.
TransposedDatasetView
?
dataset
return
dataset
instanceof
morpheus
.
TransposedDatasetView
?
dataset
.
getDataset
()
:
new
morpheus
.
TransposedDatasetView
(
dataset
);
.
getDataset
()
:
new
morpheus
.
TransposedDatasetView
(
dataset
);
};
};
morpheus
.
DatasetUtil
.
max
=
function
(
dataset
,
seriesIndex
)
{
morpheus
.
DatasetUtil
.
max
=
function
(
dataset
,
seriesIndex
)
{
seriesIndex
=
seriesIndex
||
0
;
seriesIndex
=
seriesIndex
||
0
;
var
max
=
-
Number
.
MAX_VALUE
;
var
max
=
-
Number
.
MAX_VALUE
;
for
(
var
i
=
0
,
rows
=
dataset
.
getRowCount
();
i
<
rows
;
i
++
)
{
for
(
var
i
=
0
,
rows
=
dataset
.
getRowCount
();
i
<
rows
;
i
++
)
{
...
@@ -36,7 +36,7 @@ morpheus.DatasetUtil.max = function(dataset, seriesIndex) {
...
@@ -36,7 +36,7 @@ morpheus.DatasetUtil.max = function(dataset, seriesIndex) {
return
max
;
return
max
;
};
};
morpheus
.
DatasetUtil
.
getDatasetReader
=
function
(
ext
,
options
)
{
morpheus
.
DatasetUtil
.
getDatasetReader
=
function
(
ext
,
options
)
{
var
datasetReader
;
var
datasetReader
;
if
(
ext
===
'
maf
'
)
{
if
(
ext
===
'
maf
'
)
{
datasetReader
=
new
morpheus
.
MafFileReader
();
datasetReader
=
new
morpheus
.
MafFileReader
();
...
@@ -63,23 +63,23 @@ morpheus.DatasetUtil.getDatasetReader = function(ext, options) {
...
@@ -63,23 +63,23 @@ morpheus.DatasetUtil.getDatasetReader = function(ext, options) {
return
datasetReader
;
return
datasetReader
;
};
};
morpheus
.
DatasetUtil
.
readDatasetArray
=
function
(
options
)
{
morpheus
.
DatasetUtil
.
readDatasetArray
=
function
(
options
)
{
var
retDef
=
$
.
Deferred
();
var
retDef
=
$
.
Deferred
();
var
loadedDatasets
=
[];
var
loadedDatasets
=
[];
var
promises
=
[];
var
promises
=
[];
_
.
each
(
options
.
dataset
,
function
(
option
,
i
)
{
_
.
each
(
options
.
dataset
,
function
(
option
,
i
)
{
var
p
=
option
.
dataset
.
file
?
morpheus
.
DatasetUtil
.
read
(
var
p
=
option
.
dataset
.
file
?
morpheus
.
DatasetUtil
.
read
(
option
.
dataset
.
file
,
option
.
dataset
.
options
)
option
.
dataset
.
file
,
option
.
dataset
.
options
)
:
morpheus
.
DatasetUtil
.
read
(
option
.
dataset
);
:
morpheus
.
DatasetUtil
.
read
(
option
.
dataset
);
p
.
index
=
i
;
p
.
index
=
i
;
p
.
done
(
function
(
dataset
)
{
p
.
done
(
function
(
dataset
)
{
loadedDatasets
[
this
.
index
]
=
dataset
;
loadedDatasets
[
this
.
index
]
=
dataset
;
});
});
p
.
fail
(
function
(
err
)
{
p
.
fail
(
function
(
err
)
{
var
message
=
[
'
Error opening
'
var
message
=
[
'
Error opening
'
+
(
option
.
dataset
.
file
?
morpheus
.
Util
+
(
option
.
dataset
.
file
?
morpheus
.
Util
.
getFileName
(
option
.
dataset
.
file
)
:
morpheus
.
Util
.
getFileName
(
option
.
dataset
.
file
)
:
morpheus
.
Util
.
getFileName
(
option
.
dataset
))
+
'
.
'
];
.
getFileName
(
option
.
dataset
))
+
'
.
'
];
if
(
err
.
message
)
{
if
(
err
.
message
)
{
message
.
push
(
'
<br />Cause:
'
);
message
.
push
(
'
<br />Cause:
'
);
message
.
push
(
err
.
message
);
message
.
push
(
err
.
message
);
...
@@ -96,7 +96,7 @@ morpheus.DatasetUtil.readDatasetArray = function(options) {
...
@@ -96,7 +96,7 @@ morpheus.DatasetUtil.readDatasetArray = function(options) {
$
.
when
$
.
when
.
apply
(
$
,
promises
)
.
apply
(
$
,
promises
)
.
then
(
.
then
(
function
()
{
function
()
{
var
joined
;
var
joined
;
if
(
loadedDatasets
.
length
>
1
)
{
if
(
loadedDatasets
.
length
>
1
)
{
joined
=
new
morpheus
.
JoinedDataset
(
joined
=
new
morpheus
.
JoinedDataset
(
...
@@ -130,14 +130,14 @@ morpheus.DatasetUtil.readDatasetArray = function(options) {
...
@@ -130,14 +130,14 @@ morpheus.DatasetUtil.readDatasetArray = function(options) {
* @return A jQuery Deferred object that resolves to an array of functions to
* @return A jQuery Deferred object that resolves to an array of functions to
* execute with a dataset parameter.
* execute with a dataset parameter.
*/
*/
morpheus
.
DatasetUtil
.
annotate
=
function
(
options
)
{
morpheus
.
DatasetUtil
.
annotate
=
function
(
options
)
{
var
retDef
=
$
.
Deferred
();
var
retDef
=
$
.
Deferred
();
var
promises
=
[];
var
promises
=
[];
var
functions
=
[];
var
functions
=
[];
var
isColumns
=
options
.
isColumns
;
var
isColumns
=
options
.
isColumns
;
_
.
each
(
options
.
annotations
,
function
(
ann
)
{
_
.
each
(
options
.
annotations
,
function
(
ann
)
{
if
(
morpheus
.
Util
.
isArray
(
ann
.
file
))
{
// already parsed text
if
(
morpheus
.
Util
.
isArray
(
ann
.
file
))
{
// already parsed text
functions
.
push
(
function
(
dataset
)
{
functions
.
push
(
function
(
dataset
)
{
new
morpheus
.
OpenFileTool
().
annotate
(
ann
.
file
,
dataset
,
new
morpheus
.
OpenFileTool
().
annotate
(
ann
.
file
,
dataset
,
isColumns
,
null
,
ann
.
datasetField
,
ann
.
fileField
,
isColumns
,
null
,
ann
.
datasetField
,
ann
.
fileField
,
ann
.
include
);
ann
.
include
);
...
@@ -147,26 +147,26 @@ morpheus.DatasetUtil.annotate = function(options) {
...
@@ -147,26 +147,26 @@ morpheus.DatasetUtil.annotate = function(options) {
var
fileName
=
morpheus
.
Util
.
getFileName
(
ann
.
file
);
var
fileName
=
morpheus
.
Util
.
getFileName
(
ann
.
file
);
var
deferred
=
$
.
Deferred
();
var
deferred
=
$
.
Deferred
();
promises
.
push
(
deferred
);
promises
.
push
(
deferred
);
result
.
fail
(
function
(
message
)
{
result
.
fail
(
function
(
message
)
{
deferred
.
reject
(
message
);
deferred
.
reject
(
message
);
});
});
result
.
done
(
function
(
lines
)
{
result
.
done
(
function
(
lines
)
{
if
(
morpheus
.
Util
.
endsWith
(
fileName
,
'
.gmt
'
))
{
if
(
morpheus
.
Util
.
endsWith
(
fileName
,
'
.gmt
'
))
{
var
sets
=
new
morpheus
.
GmtReader
().
parseLines
(
lines
);
var
sets
=
new
morpheus
.
GmtReader
().
parseLines
(
lines
);
functions
.
push
(
function
(
dataset
)
{
functions
.
push
(
function
(
dataset
)
{
new
morpheus
.
OpenFileTool
().
annotate
(
null
,
dataset
,
new
morpheus
.
OpenFileTool
().
annotate
(
null
,
dataset
,
isColumns
,
sets
,
ann
.
datasetField
,
isColumns
,
sets
,
ann
.
datasetField
,
ann
.
fileField
);
ann
.
fileField
);
});
});
deferred
.
resolve
();
deferred
.
resolve
();
}
else
if
(
morpheus
.
Util
.
endsWith
(
fileName
,
'
.cls
'
))
{
}
else
if
(
morpheus
.
Util
.
endsWith
(
fileName
,
'
.cls
'
))
{
functions
.
push
(
function
(
dataset
)
{
functions
.
push
(
function
(
dataset
)
{
new
morpheus
.
OpenFileTool
().
annotateCls
(
null
,
dataset
,
new
morpheus
.
OpenFileTool
().
annotateCls
(
null
,
dataset
,
fileName
,
isColumns
,
lines
);
fileName
,
isColumns
,
lines
);
});
});
deferred
.
resolve
();
deferred
.
resolve
();
}
else
{
}
else
{
functions
.
push
(
function
(
dataset
)
{
functions
.
push
(
function
(
dataset
)
{
new
morpheus
.
OpenFileTool
().
annotate
(
lines
,
dataset
,
new
morpheus
.
OpenFileTool
().
annotate
(
lines
,
dataset
,
isColumns
,
null
,
ann
.
datasetField
,
isColumns
,
null
,
ann
.
datasetField
,
ann
.
fileField
,
ann
.
include
);
ann
.
fileField
,
ann
.
include
);
...
@@ -176,7 +176,7 @@ morpheus.DatasetUtil.annotate = function(options) {
...
@@ -176,7 +176,7 @@ morpheus.DatasetUtil.annotate = function(options) {
});
});
}
}
});
});
$
.
when
.
apply
(
$
,
promises
).
then
(
function
()
{
$
.
when
.
apply
(
$
,
promises
).
then
(
function
()
{
retDef
.
resolve
(
functions
);
retDef
.
resolve
(
functions
);
});
});
return
retDef
;
return
retDef
;
...
@@ -186,10 +186,10 @@ morpheus.DatasetUtil.annotate = function(options) {
...
@@ -186,10 +186,10 @@ morpheus.DatasetUtil.annotate = function(options) {
* a File or url
* a File or url
* @return A promise that resolves to Dataset
* @return A promise that resolves to Dataset
*/
*/
morpheus
.
DatasetUtil
.
read
=
function
(
fileOrUrl
,
options
)
{
morpheus
.
DatasetUtil
.
read
=
function
(
fileOrUrl
,
options
)
{
var
isFile
=
fileOrUrl
instanceof
File
;
var
isFile
=
fileOrUrl
instanceof
File
;
var
isString
=
_
.
isString
(
fileOrUrl
);
var
isString
=
_
.
isString
(
fileOrUrl
);
var
ext
=
morpheus
.
Util
.
getExtension
(
morpheus
.
Util
.
getFileName
(
fileOrUrl
));
var
ext
=
options
&&
options
.
extension
?
options
.
extension
:
morpheus
.
Util
.
getExtension
(
morpheus
.
Util
.
getFileName
(
fileOrUrl
));
var
datasetReader
=
morpheus
.
DatasetUtil
.
getDatasetReader
(
ext
,
options
);
var
datasetReader
=
morpheus
.
DatasetUtil
.
getDatasetReader
(
ext
,
options
);
if
(
isString
||
isFile
)
{
// URL or file
if
(
isString
||
isFile
)
{
// URL or file
...
@@ -198,32 +198,32 @@ morpheus.DatasetUtil.read = function(fileOrUrl, options) {
...
@@ -198,32 +198,32 @@ morpheus.DatasetUtil.read = function(fileOrUrl, options) {
if
(
options
&&
options
.
background
)
{
if
(
options
&&
options
.
background
)
{
var
path
=
morpheus
.
Util
.
getScriptPath
();
var
path
=
morpheus
.
Util
.
getScriptPath
();
var
blob
=
new
Blob
(
var
blob
=
new
Blob
(
[
'
self.onmessage = function(e) {
'
[
'
self.onmessage = function(e) {
'
+
'
importScripts(e.data.path);
'
+
'
importScripts(e.data.path);
'
+
'
var ext = morpheus.Util.getExtension(morpheus.Util
'
+
'
var ext = morpheus.Util.getExtension(morpheus.Util
'
+
'
.getFileName(e.data.fileOrUrl));
'
+
'
.getFileName(e.data.fileOrUrl));
'
+
'
var datasetReader = morpheus.DatasetUtil.getDatasetReader(ext,
'
+
'
var datasetReader = morpheus.DatasetUtil.getDatasetReader(ext,
'
+
'
e.data.options);
'
+
'
e.data.options);
'
+
'
datasetReader.read(e.data.fileOrUrl, function(err,dataset) {
'
+
'
datasetReader.read(e.data.fileOrUrl, function(err,dataset) {
'
+
'
self.postMessage(dataset);
'
+
'
});
'
+
'
}
'
]);
+
'
self.postMessage(dataset);
'
+
'
});
'
+
'
}
'
]);
// Obtain a blob URL reference to our worker 'file'.
// Obtain a blob URL reference to our worker 'file'.
var
blobURL
=
window
.
URL
.
createObjectURL
(
blob
);
var
blobURL
=
window
.
URL
.
createObjectURL
(
blob
);
var
worker
=
new
Worker
(
blobURL
);
// blobURL);
var
worker
=
new
Worker
(
blobURL
);
// blobURL);
worker
.
addEventListener
(
'
message
'
,
function
(
e
)
{
worker
.
addEventListener
(
'
message
'
,
function
(
e
)
{
// wrap in dataset object
// wrap in dataset object
deferred
.
resolve
(
morpheus
.
Dataset
.
fromJson
(
e
.
data
));
deferred
.
resolve
(
morpheus
.
Dataset
.
fromJson
(
e
.
data
));
window
.
URL
.
revokeObjectURL
(
blobURL
);
window
.
URL
.
revokeObjectURL
(
blobURL
);
},
false
);
},
false
);
// start the worker
// start the worker
worker
.
postMessage
({
worker
.
postMessage
({
path
:
path
,
path
:
path
,
fileOrUrl
:
fileOrUrl
,
fileOrUrl
:
fileOrUrl
,
options
:
options
options
:
options
});
});
}
else
{
}
else
{
datasetReader
.
read
(
fileOrUrl
,
function
(
err
,
dataset
)
{
datasetReader
.
read
(
fileOrUrl
,
function
(
err
,
dataset
)
{
if
(
err
)
{
if
(
err
)
{
deferred
.
reject
(
err
);
deferred
.
reject
(
err
);
}
else
{
}
else
{
...
@@ -234,7 +234,7 @@ morpheus.DatasetUtil.read = function(fileOrUrl, options) {
...
@@ -234,7 +234,7 @@ morpheus.DatasetUtil.read = function(fileOrUrl, options) {
}
}
var
pr
=
deferred
.
promise
();
var
pr
=
deferred
.
promise
();
pr
.
toString
=
function
()
{
pr
.
toString
=
function
()
{
return
''
+
fileOrUrl
;
return
''
+
fileOrUrl
;
};
};
return
pr
;
return
pr
;
...
@@ -261,9 +261,9 @@ morpheus.DatasetUtil.read = function(fileOrUrl, options) {
...
@@ -261,9 +261,9 @@ morpheus.DatasetUtil.read = function(fileOrUrl, options) {
* An array of row metadata fields to include from the dataset
* An array of row metadata fields to include from the dataset
*
*
*/
*/
morpheus
.
DatasetUtil
.
toObjectArray
=
function
(
dataset
,
options
)
{
morpheus
.
DatasetUtil
.
toObjectArray
=
function
(
dataset
,
options
)
{
var
columns
=
options
.
columns
||
[
0
];
var
columns
=
options
.
columns
||
[
0
];
var
columnFields
=
options
.
columnFields
||
[
'
value
'
];
var
columnFields
=
options
.
columnFields
||
[
'
value
'
];
if
(
columnFields
.
length
!==
columns
.
length
)
{
if
(
columnFields
.
length
!==
columns
.
length
)
{
throw
'
columns.length !== columnFields.length
'
;
throw
'
columns.length !== columnFields.length
'
;
}
}
...
@@ -293,19 +293,19 @@ morpheus.DatasetUtil.toObjectArray = function(dataset, options) {
...
@@ -293,19 +293,19 @@ morpheus.DatasetUtil.toObjectArray = function(dataset, options) {
}
}
return
array
;
return
array
;
};
};
morpheus
.
DatasetUtil
.
fixL1K
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
fixL1K
=
function
(
dataset
)
{
var
names
=
{
var
names
=
{
'
cell_id
'
:
'
Cell Line
'
,
'
cell_id
'
:
'
Cell Line
'
,
'
pert_idose
'
:
'
Dose (
\
u00B5M)
'
,
'
pert_idose
'
:
'
Dose (
\
u00B5M)
'
,
'
pert_iname
'
:
'
Name
'
,
'
pert_iname
'
:
'
Name
'
,
'
pert_itime
'
:
'
Time (hr)
'
,
'
pert_itime
'
:
'
Time (hr)
'
,
'
distil_ss
'
:
'
Signature Strength
'
,
'
distil_ss
'
:
'
Signature Strength
'
,
'
pert_type
'
:
'
Type
'
,
'
pert_type
'
:
'
Type
'
,
'
cell_lineage
'
:
'
Lineage
'
,
'
cell_lineage
'
:
'
Lineage
'
,
'
cell_histology
'
:
'
Histology
'
,
'
cell_histology
'
:
'
Histology
'
,
'
cell_type
'
:
'
Cell Type
'
'
cell_type
'
:
'
Cell Type
'
};
};
var
fixNames
=
function
(
metadata
)
{
var
fixNames
=
function
(
metadata
)
{
for
(
var
i
=
0
,
count
=
metadata
.
getMetadataCount
();
i
<
count
;
i
++
)
{
for
(
var
i
=
0
,
count
=
metadata
.
getMetadataCount
();
i
<
count
;
i
++
)
{
var
v
=
metadata
.
get
(
i
);
var
v
=
metadata
.
get
(
i
);
var
name
=
v
.
getName
();
var
name
=
v
.
getName
();
...
@@ -317,7 +317,7 @@ morpheus.DatasetUtil.fixL1K = function(dataset) {
...
@@ -317,7 +317,7 @@ morpheus.DatasetUtil.fixL1K = function(dataset) {
};
};
fixNames
(
dataset
.
getRowMetadata
());
fixNames
(
dataset
.
getRowMetadata
());
fixNames
(
dataset
.
getColumnMetadata
());
fixNames
(
dataset
.
getColumnMetadata
());
var
fix666
=
function
(
metadata
)
{
var
fix666
=
function
(
metadata
)
{
for
(
var
i
=
0
,
count
=
metadata
.
getMetadataCount
();
i
<
count
;
i
++
)
{
for
(
var
i
=
0
,
count
=
metadata
.
getMetadataCount
();
i
<
count
;
i
++
)
{
var
v
=
metadata
.
get
(
i
);
var
v
=
metadata
.
get
(
i
);
if
(
v
.
getName
()
==
'
Dose (
\
u00B5M)
'
)
{
// convert to number
if
(
v
.
getName
()
==
'
Dose (
\
u00B5M)
'
)
{
// convert to number
...
@@ -347,9 +347,9 @@ morpheus.DatasetUtil.fixL1K = function(dataset) {
...
@@ -347,9 +347,9 @@ morpheus.DatasetUtil.fixL1K = function(dataset) {
};
};
fix666
(
dataset
.
getRowMetadata
());
fix666
(
dataset
.
getRowMetadata
());
fix666
(
dataset
.
getColumnMetadata
());
fix666
(
dataset
.
getColumnMetadata
());
var
fixCommas
=
function
(
metadata
)
{
var
fixCommas
=
function
(
metadata
)
{
var
regex
=
/
(
,
)([^
])
/g
;
var
regex
=
/
(
,
)([^
])
/g
;
_
.
each
([
'
Lineage
'
,
'
Histology
'
],
function
(
name
)
{
_
.
each
([
'
Lineage
'
,
'
Histology
'
],
function
(
name
)
{
var
v
=
metadata
.
getByName
(
name
);
var
v
=
metadata
.
getByName
(
name
);
if
(
v
!=
null
)
{
if
(
v
!=
null
)
{
for
(
var
i
=
0
,
size
=
v
.
size
();
i
<
size
;
i
++
)
{
for
(
var
i
=
0
,
size
=
v
.
size
();
i
<
size
;
i
++
)
{
...
@@ -364,7 +364,7 @@ morpheus.DatasetUtil.fixL1K = function(dataset) {
...
@@ -364,7 +364,7 @@ morpheus.DatasetUtil.fixL1K = function(dataset) {
fixCommas
(
dataset
.
getRowMetadata
());
fixCommas
(
dataset
.
getRowMetadata
());
fixCommas
(
dataset
.
getColumnMetadata
());
fixCommas
(
dataset
.
getColumnMetadata
());
};
};
morpheus
.
DatasetUtil
.
geneSetsToDataset
=
function
(
name
,
sets
)
{
morpheus
.
DatasetUtil
.
geneSetsToDataset
=
function
(
name
,
sets
)
{
var
uniqueIds
=
new
morpheus
.
Map
();
var
uniqueIds
=
new
morpheus
.
Map
();
for
(
var
i
=
0
,
length
=
sets
.
length
;
i
<
length
;
i
++
)
{
for
(
var
i
=
0
,
length
=
sets
.
length
;
i
<
length
;
i
++
)
{
var
ids
=
sets
[
i
].
ids
;
var
ids
=
sets
[
i
].
ids
;
...
@@ -374,9 +374,9 @@ morpheus.DatasetUtil.geneSetsToDataset = function(name, sets) {
...
@@ -374,9 +374,9 @@ morpheus.DatasetUtil.geneSetsToDataset = function(name, sets) {
}
}
var
uniqueIdsArray
=
uniqueIds
.
keys
();
var
uniqueIdsArray
=
uniqueIds
.
keys
();
var
dataset
=
new
morpheus
.
Dataset
({
var
dataset
=
new
morpheus
.
Dataset
({
name
:
name
,
name
:
name
,
rows
:
uniqueIdsArray
.
length
,
rows
:
uniqueIdsArray
.
length
,
columns
:
sets
.
length
columns
:
sets
.
length
});
});
var
columnIds
=
dataset
.
getColumnMetadata
().
add
(
'
id
'
);
var
columnIds
=
dataset
.
getColumnMetadata
().
add
(
'
id
'
);
for
(
var
i
=
0
,
length
=
sets
.
length
;
i
<
length
;
i
++
)
{
for
(
var
i
=
0
,
length
=
sets
.
length
;
i
<
length
;
i
++
)
{
...
@@ -411,14 +411,14 @@ morpheus.DatasetUtil.OPEN_FILE_FORMATS = '<a target="_blank" href="http://suppor
...
@@ -411,14 +411,14 @@ morpheus.DatasetUtil.OPEN_FILE_FORMATS = '<a target="_blank" href="http://suppor
+
'
<a target="_blank" href="https://wiki.nci.nih.gov/display/TCGA/Mutation+Annotation+Format+%28MAF%29+Specification">MAF</a>,
'
+
'
<a target="_blank" href="https://wiki.nci.nih.gov/display/TCGA/Mutation+Annotation+Format+%28MAF%29+Specification">MAF</a>,
'
+
'
<a target="_blank", href="http://www.broadinstitute.org/cancer/software/gsea/wiki/index.php/Data_formats#GMT:_Gene_Matrix_Transposed_file_format_.28.2A.gmt.29">GMT</a>,
'
+
'
<a target="_blank", href="http://www.broadinstitute.org/cancer/software/gsea/wiki/index.php/Data_formats#GMT:_Gene_Matrix_Transposed_file_format_.28.2A.gmt.29">GMT</a>,
'
+
'
a tab-delimited text file, or a <a href="http://en.wikipedia.org/wiki/Newick_format" target="_blank">Newick</a> file
'
;
+
'
a tab-delimited text file, or a <a href="http://en.wikipedia.org/wiki/Newick_format" target="_blank">Newick</a> file
'
;
morpheus
.
DatasetUtil
.
getRootDataset
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
getRootDataset
=
function
(
dataset
)
{
while
(
dataset
.
getDataset
)
{
while
(
dataset
.
getDataset
)
{
dataset
=
dataset
.
getDataset
();
dataset
=
dataset
.
getDataset
();
}
}
return
dataset
;
return
dataset
;
};
};
morpheus
.
DatasetUtil
.
getSeriesIndex
=
function
(
dataset
,
name
)
{
morpheus
.
DatasetUtil
.
getSeriesIndex
=
function
(
dataset
,
name
)
{
for
(
var
i
=
0
,
nseries
=
dataset
.
getSeriesCount
();
i
<
nseries
;
i
++
)
{
for
(
var
i
=
0
,
nseries
=
dataset
.
getSeriesCount
();
i
<
nseries
;
i
++
)
{
if
(
name
===
dataset
.
getName
(
i
))
{
if
(
name
===
dataset
.
getName
(
i
))
{
return
i
;
return
i
;
...
@@ -426,12 +426,12 @@ morpheus.DatasetUtil.getSeriesIndex = function(dataset, name) {
...
@@ -426,12 +426,12 @@ morpheus.DatasetUtil.getSeriesIndex = function(dataset, name) {
}
}
return
-
1
;
return
-
1
;
};
};
morpheus
.
DatasetUtil
.
getSeriesNames
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
getSeriesNames
=
function
(
dataset
)
{
var
names
=
[];
var
names
=
[];
for
(
var
i
=
0
,
nseries
=
dataset
.
getSeriesCount
();
i
<
nseries
;
i
++
)
{
for
(
var
i
=
0
,
nseries
=
dataset
.
getSeriesCount
();
i
<
nseries
;
i
++
)
{
names
.
push
(
dataset
.
getName
(
i
));
names
.
push
(
dataset
.
getName
(
i
));
}
}
names
.
sort
(
function
(
a
,
b
)
{
names
.
sort
(
function
(
a
,
b
)
{
a
=
a
.
toLowerCase
();
a
=
a
.
toLowerCase
();
b
=
b
.
toLowerCase
();
b
=
b
.
toLowerCase
();
return
(
a
<
b
?
-
1
:
(
a
===
b
?
0
:
1
));
return
(
a
<
b
?
-
1
:
(
a
===
b
?
0
:
1
));
...
@@ -442,7 +442,7 @@ morpheus.DatasetUtil.getSeriesNames = function(dataset) {
...
@@ -442,7 +442,7 @@ morpheus.DatasetUtil.getSeriesNames = function(dataset) {
/**
/**
* Search dataset values.
* Search dataset values.
*/
*/
morpheus
.
DatasetUtil
.
searchValues
=
function
(
dataset
,
text
,
cb
)
{
morpheus
.
DatasetUtil
.
searchValues
=
function
(
dataset
,
text
,
cb
)
{
if
(
text
===
''
)
{
if
(
text
===
''
)
{
return
;
return
;
}
}
...
@@ -454,7 +454,7 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
...
@@ -454,7 +454,7 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
();
i
<
nrows
;
i
++
)
{
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
();
i
<
nrows
;
i
++
)
{
for
(
var
k
=
0
,
nseries
=
dataset
.
getSeriesCount
();
k
<
nseries
;
k
++
)
{
for
(
var
k
=
0
,
nseries
=
dataset
.
getSeriesCount
();
k
<
nseries
;
k
++
)
{
if
(
dataset
.
getDataType
(
i
,
k
)
===
'
object
'
)
{
if
(
dataset
.
getDataType
(
i
,
k
)
===
'
object
'
)
{
seriesIndices
.
push
([
i
,
k
]);
seriesIndices
.
push
([
i
,
k
]);
}
}
}
}
}
}
...
@@ -474,8 +474,8 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
...
@@ -474,8 +474,8 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
}
}
var
fields
=
_val
==
null
?
[]
:
_
.
keys
(
_val
);
var
fields
=
_val
==
null
?
[]
:
_
.
keys
(
_val
);
var
predicates
=
morpheus
.
Util
.
createSearchPredicates
({
var
predicates
=
morpheus
.
Util
.
createSearchPredicates
({
tokens
:
tokens
,
tokens
:
tokens
,
fields
:
fields
fields
:
fields
});
});
var
npredicates
=
predicates
.
length
;
var
npredicates
=
predicates
.
length
;
...
@@ -500,7 +500,7 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
...
@@ -500,7 +500,7 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
break
;
break
;
}
}
}
else
{
// try all fields
}
else
{
// try all fields
for
(
var
name
in
object
)
{
for
(
var
name
in
object
)
{
var
value
=
object
[
name
];
var
value
=
object
[
name
];
if
(
value
!=
null
&&
predicate
.
accept
(
value
))
{
if
(
value
!=
null
&&
predicate
.
accept
(
value
))
{
if
(
cb
(
value
,
pair
[
0
],
j
)
===
false
)
{
if
(
cb
(
value
,
pair
[
0
],
j
)
===
false
)
{
...
@@ -522,8 +522,8 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
...
@@ -522,8 +522,8 @@ morpheus.DatasetUtil.searchValues = function(dataset, text, cb) {
/**
/**
* Search dataset values.
* Search dataset values.
*/
*/
morpheus
.
DatasetUtil
.
autocompleteValues
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
autocompleteValues
=
function
(
dataset
)
{
return
function
(
tokens
,
cb
)
{
return
function
(
tokens
,
cb
)
{
var
token
=
tokens
!=
null
&&
tokens
.
length
>
0
?
tokens
[
tokens
.
selectionStartIndex
]
var
token
=
tokens
!=
null
&&
tokens
.
length
>
0
?
tokens
[
tokens
.
selectionStartIndex
]
:
''
;
:
''
;
...
@@ -532,7 +532,7 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
...
@@ -532,7 +532,7 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
();
i
<
nrows
;
i
++
)
{
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
();
i
<
nrows
;
i
++
)
{
for
(
var
k
=
0
,
nseries
=
dataset
.
getSeriesCount
();
k
<
nseries
;
k
++
)
{
for
(
var
k
=
0
,
nseries
=
dataset
.
getSeriesCount
();
k
<
nseries
;
k
++
)
{
if
(
dataset
.
getDataType
(
i
,
k
)
===
'
object
'
)
{
if
(
dataset
.
getDataType
(
i
,
k
)
===
'
object
'
)
{
seriesIndices
.
push
([
i
,
k
]);
seriesIndices
.
push
([
i
,
k
]);
}
}
}
}
}
}
...
@@ -553,15 +553,15 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
...
@@ -553,15 +553,15 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
var
matches
=
[];
var
matches
=
[];
var
fields
=
_val
==
null
?
[]
:
_
.
keys
(
_val
);
var
fields
=
_val
==
null
?
[]
:
_
.
keys
(
_val
);
if
(
token
===
''
)
{
if
(
token
===
''
)
{
fields
.
sort
(
function
(
a
,
b
)
{
fields
.
sort
(
function
(
a
,
b
)
{
return
(
a
===
b
?
0
:
(
a
<
b
?
-
1
:
1
));
return
(
a
===
b
?
0
:
(
a
<
b
?
-
1
:
1
));
});
});
fields
.
forEach
(
function
(
field
)
{
fields
.
forEach
(
function
(
field
)
{
matches
.
push
({
matches
.
push
({
value
:
field
+
'
:
'
,
value
:
field
+
'
:
'
,
label
:
'
<span style="font-weight:300;">
'
+
field
label
:
'
<span style="font-weight:300;">
'
+
field
+
'
:</span>
'
,
+
'
:</span>
'
,
show
:
true
show
:
true
});
});
});
});
return
cb
(
matches
);
return
cb
(
matches
);
...
@@ -602,7 +602,7 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
...
@@ -602,7 +602,7 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
if
(
field
!==
null
)
{
if
(
field
!==
null
)
{
var
val
=
object
[
field
];
var
val
=
object
[
field
];
if
(
val
!=
null
)
{
if
(
val
!=
null
)
{
var
id
=
new
morpheus
.
Identifier
([
val
,
field
]);
var
id
=
new
morpheus
.
Identifier
([
val
,
field
]);
if
(
!
set
.
has
(
id
)
&&
regex
.
test
(
val
))
{
if
(
!
set
.
has
(
id
)
&&
regex
.
test
(
val
))
{
set
.
add
(
id
);
set
.
add
(
id
);
if
(
set
.
size
()
===
max
)
{
if
(
set
.
size
()
===
max
)
{
...
@@ -611,9 +611,9 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
...
@@ -611,9 +611,9 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
}
}
}
}
}
else
{
// search all fields
}
else
{
// search all fields
for
(
var
name
in
object
)
{
for
(
var
name
in
object
)
{
var
val
=
object
[
name
];
var
val
=
object
[
name
];
var
id
=
new
morpheus
.
Identifier
([
val
,
name
]);
var
id
=
new
morpheus
.
Identifier
([
val
,
name
]);
if
(
!
set
.
has
(
id
)
&&
regex
.
test
(
val
))
{
if
(
!
set
.
has
(
id
)
&&
regex
.
test
(
val
))
{
set
.
add
(
id
);
set
.
add
(
id
);
if
(
set
.
size
()
===
max
)
{
if
(
set
.
size
()
===
max
)
{
...
@@ -626,25 +626,25 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
...
@@ -626,25 +626,25 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
}
}
}
}
}
}
set
.
forEach
(
function
(
id
)
{
set
.
forEach
(
function
(
id
)
{
var
array
=
id
.
getArray
();
var
array
=
id
.
getArray
();
var
field
=
array
[
1
];
var
field
=
array
[
1
];
var
val
=
array
[
0
];
var
val
=
array
[
0
];
matches
.
push
({
matches
.
push
({
value
:
field
+
'
:
'
+
val
,
value
:
field
+
'
:
'
+
val
,
label
:
'
<span style="font-weight:300;">
'
+
field
+
'
:</span>
'
label
:
'
<span style="font-weight:300;">
'
+
field
+
'
:</span>
'
+
'
<span style="font-weight:900;">
'
+
val
+
'
</span>
'
+
'
<span style="font-weight:900;">
'
+
val
+
'
</span>
'
});
});
});
});
if
(
field
==
null
)
{
if
(
field
==
null
)
{
fields
.
forEach
(
function
(
field
)
{
fields
.
forEach
(
function
(
field
)
{
if
(
regex
.
test
(
field
))
{
if
(
regex
.
test
(
field
))
{
matches
.
push
({
matches
.
push
({
value
:
field
+
'
:
'
,
value
:
field
+
'
:
'
,
label
:
'
<span style="font-weight:300;">
'
+
field
label
:
'
<span style="font-weight:300;">
'
+
field
+
'
:</span>
'
,
+
'
:</span>
'
,
show
:
true
show
:
true
});
});
}
}
});
});
...
@@ -700,7 +700,7 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
...
@@ -700,7 +700,7 @@ morpheus.DatasetUtil.autocompleteValues = function(dataset) {
// json.push('}'); // end json object
// json.push('}'); // end json object
// return json.join('');
// return json.join('');
// };
// };
morpheus
.
DatasetUtil
.
fill
=
function
(
dataset
,
value
,
seriesIndex
)
{
morpheus
.
DatasetUtil
.
fill
=
function
(
dataset
,
value
,
seriesIndex
)
{
seriesIndex
=
seriesIndex
||
0
;
seriesIndex
=
seriesIndex
||
0
;
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
(),
ncols
=
dataset
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
(),
ncols
=
dataset
.
getColumnCount
();
i
<
nrows
;
i
++
)
{
.
getColumnCount
();
i
<
nrows
;
i
++
)
{
...
@@ -710,35 +710,35 @@ morpheus.DatasetUtil.fill = function(dataset, value, seriesIndex) {
...
@@ -710,35 +710,35 @@ morpheus.DatasetUtil.fill = function(dataset, value, seriesIndex) {
}
}
};
};
morpheus
.
DatasetUtil
.
shallowCopy
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
shallowCopy
=
function
(
dataset
)
{
// make a shallow copy of the dataset, metadata is immutable via the UI
// make a shallow copy of the dataset, metadata is immutable via the UI
var
rowMetadataModel
=
morpheus
.
MetadataUtil
.
shallowCopy
(
dataset
var
rowMetadataModel
=
morpheus
.
MetadataUtil
.
shallowCopy
(
dataset
.
getRowMetadata
());
.
getRowMetadata
());
var
columnMetadataModel
=
morpheus
.
MetadataUtil
.
shallowCopy
(
dataset
var
columnMetadataModel
=
morpheus
.
MetadataUtil
.
shallowCopy
(
dataset
.
getColumnMetadata
());
.
getColumnMetadata
());
dataset
.
getRowMetadata
=
function
()
{
dataset
.
getRowMetadata
=
function
()
{
return
rowMetadataModel
;
return
rowMetadataModel
;
};
};
dataset
.
getColumnMetadata
=
function
()
{
dataset
.
getColumnMetadata
=
function
()
{
return
columnMetadataModel
;
return
columnMetadataModel
;
};
};
return
dataset
;
return
dataset
;
};
};
morpheus
.
DatasetUtil
.
copy
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
copy
=
function
(
dataset
)
{
var
newDataset
=
new
morpheus
.
Dataset
({
var
newDataset
=
new
morpheus
.
Dataset
({
name
:
dataset
.
getName
(),
name
:
dataset
.
getName
(),
rows
:
dataset
.
getRowCount
(),
rows
:
dataset
.
getRowCount
(),
columns
:
dataset
.
getColumnCount
(),
columns
:
dataset
.
getColumnCount
(),
dataType
:
'
object
'
dataType
:
'
object
'
});
});
for
(
var
seriesIndex
=
0
,
nseries
=
dataset
.
getSeriesCount
();
seriesIndex
<
nseries
;
seriesIndex
++
)
{
for
(
var
seriesIndex
=
0
,
nseries
=
dataset
.
getSeriesCount
();
seriesIndex
<
nseries
;
seriesIndex
++
)
{
if
(
seriesIndex
>
0
)
{
if
(
seriesIndex
>
0
)
{
newDataset
.
addSeries
({
newDataset
.
addSeries
({
name
:
dataset
.
getName
(
seriesIndex
),
name
:
dataset
.
getName
(
seriesIndex
),
rows
:
dataset
.
getRowCount
(),
rows
:
dataset
.
getRowCount
(),
columns
:
dataset
.
getColumnCount
(),
columns
:
dataset
.
getColumnCount
(),
dataType
:
'
object
'
dataType
:
'
object
'
});
});
}
}
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
(),
ncols
=
dataset
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
(),
ncols
=
dataset
...
@@ -753,15 +753,15 @@ morpheus.DatasetUtil.copy = function(dataset) {
...
@@ -753,15 +753,15 @@ morpheus.DatasetUtil.copy = function(dataset) {
.
getRowMetadata
());
.
getRowMetadata
());
var
columnMetadataModel
=
morpheus
.
MetadataUtil
.
shallowCopy
(
dataset
var
columnMetadataModel
=
morpheus
.
MetadataUtil
.
shallowCopy
(
dataset
.
getColumnMetadata
());
.
getColumnMetadata
());
newDataset
.
getRowMetadata
=
function
()
{
newDataset
.
getRowMetadata
=
function
()
{
return
rowMetadataModel
;
return
rowMetadataModel
;
};
};
newDataset
.
getColumnMetadata
=
function
()
{
newDataset
.
getColumnMetadata
=
function
()
{
return
columnMetadataModel
;
return
columnMetadataModel
;
};
};
return
newDataset
;
return
newDataset
;
};
};
morpheus
.
DatasetUtil
.
toString
=
function
(
dataset
,
value
,
seriesIndex
)
{
morpheus
.
DatasetUtil
.
toString
=
function
(
dataset
,
value
,
seriesIndex
)
{
seriesIndex
=
seriesIndex
||
0
;
seriesIndex
=
seriesIndex
||
0
;
var
s
=
[];
var
s
=
[];
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
(),
ncols
=
dataset
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
(),
ncols
=
dataset
...
@@ -776,7 +776,7 @@ morpheus.DatasetUtil.toString = function(dataset, value, seriesIndex) {
...
@@ -776,7 +776,7 @@ morpheus.DatasetUtil.toString = function(dataset, value, seriesIndex) {
}
}
return
s
.
join
(
''
);
return
s
.
join
(
''
);
};
};
morpheus
.
DatasetUtil
.
getNonEmptyRows
=
function
(
dataset
)
{
morpheus
.
DatasetUtil
.
getNonEmptyRows
=
function
(
dataset
)
{
var
rowsToKeep
=
[];
var
rowsToKeep
=
[];
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
();
i
<
nrows
;
i
++
)
{
for
(
var
i
=
0
,
nrows
=
dataset
.
getRowCount
();
i
<
nrows
;
i
++
)
{
var
keep
=
false
;
var
keep
=
false
;
...
...
src/tools/chart_tool2.js
View file @
bc8c2428
...
@@ -228,6 +228,7 @@ morpheus.ChartTool2 = function (chartOptions) {
...
@@ -228,6 +228,7 @@ morpheus.ChartTool2 = function (chartOptions) {
morpheus
.
ChartTool2
.
getPlotlyDefaults
=
function
()
{
morpheus
.
ChartTool2
.
getPlotlyDefaults
=
function
()
{
var
layout
=
{
var
layout
=
{
hovermode
:
'
closest
'
,
autosize
:
false
,
autosize
:
false
,
paper_bgcolor
:
'
rgb(255,255,255)
'
,
paper_bgcolor
:
'
rgb(255,255,255)
'
,
plot_bgcolor
:
'
rgb(229,229,229)
'
,
plot_bgcolor
:
'
rgb(229,229,229)
'
,
...
...
src/ui/heat_map.js
View file @
bc8c2428
...
@@ -621,9 +621,14 @@ morpheus.HeatMap.showTool = function (tool, controller, callback) {
...
@@ -621,9 +621,14 @@ morpheus.HeatMap.showTool = function (tool, controller, callback) {
}
}
}
}
}
}
var
toolName
=
tool
.
toString
();
var
parenIndex
=
toolName
.
indexOf
(
'
(
'
);
if
(
parenIndex
!==
-
1
)
{
toolName
=
toolName
.
substring
(
0
,
parenIndex
).
trim
();
}
morpheus
.
Util
.
trackEvent
({
morpheus
.
Util
.
trackEvent
({
eventCategory
:
'
Tool
'
,
eventCategory
:
'
Tool
'
,
eventAction
:
tool
.
toString
()
eventAction
:
tool
Name
});
});
};
};
morpheus
.
HeatMap
.
getSpaces
=
function
(
groupByKeys
,
length
,
gapSize
)
{
morpheus
.
HeatMap
.
getSpaces
=
function
(
groupByKeys
,
length
,
gapSize
)
{
...
@@ -863,6 +868,10 @@ morpheus.HeatMap.prototype = {
...
@@ -863,6 +868,10 @@ morpheus.HeatMap.prototype = {
project
.
setRowSortKeys
(
sortKeys
,
true
);
project
.
setRowSortKeys
(
sortKeys
,
true
);
this
.
scrollTop
(
0
);
this
.
scrollTop
(
0
);
}
}
morpheus
.
Util
.
trackEvent
({
eventCategory
:
'
Tool
'
,
eventAction
:
isColumns
?
'
sortRowsBasedOnSelection
'
:
'
sortColumnsBasedOnSelection
'
});
},
},
getToolbarElement
:
function
()
{
getToolbarElement
:
function
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment