diff --git a/db-scripts/pom.xml b/db-scripts/pom.xml
index dfa2a8a32b7..07c06084e39 100644
--- a/db-scripts/pom.xml
+++ b/db-scripts/pom.xml
@@ -5,7 +5,7 @@
master
org.mskcc.cbio
- 1.6.0
+ 1.6.1
4.0.0
diff --git a/docs/File-Formats.md b/docs/File-Formats.md
index 8ad7cff9be6..04bcbccf68c 100644
--- a/docs/File-Formats.md
+++ b/docs/File-Formats.md
@@ -336,7 +336,6 @@ The segmented metadata file should contain the following fields:
4. **reference_genome_id**: Reference genome version. Supported values: "hg19"
5. **description**: A description of the segmented data, e.g., "Segment data for the XYZ cancer study.".
6. **data_filename**: your datafile
-7. **gene_panel**: optional gene panel stable id
#### Example:
An example metadata file, e.g. meta_cna_seg.txt, would be:
@@ -1009,6 +1008,8 @@ description: Targeted (410 cancer genes) sequencing of various tumor types via M
gene_list: ABL1 ACVR1 AKT1 AKT3 ...
```
+For information on importing gene panels please visit: [Importing-gene-panels](Importing-gene-panels.md).
+
#### Sample-Profile Matrix
The second component to gene panel data is associating samples and profile to the panel which applies. The following column is required :
@@ -1034,7 +1035,9 @@ SAMPLE_ID_2
NANA ...
The sample-profile matrix requires a meta file should contain the following fields:
1. **cancer_study_identifier**: same value as specified in [study meta file](#cancer-study)
-2. **data_filename**: your datafile
+2. **genetic_alteration_type**: GENE_PANEL_MATRIX
+3. **datatype**: GENE_PANEL_MATRIX
+4. **data_filename**: your datafile
If all samples in a genetic profile will have the same gene panel associated with them, an optional field can be specified in the meta data file of that datatype called **gene_panel**. If this is present, the sample-profile matrix will automatically be generated and the gene panel applied if it exists in the database already.
diff --git a/docs/Importing-gene-panels.md b/docs/Importing-gene-panels.md
new file mode 100644
index 00000000000..478bb273313
--- /dev/null
+++ b/docs/Importing-gene-panels.md
@@ -0,0 +1,22 @@
+# Importing Gene Panels
+
+This page describes how to import a gene panel into the cBioPortal database. It assumes the following requirements have been satisfied:
+
+1. The cBioPortal software has been correctly [built from source](Build-from-Source.md).
+2. The gene panel to import is in the proper file format. See [File Format](File-Formats.md#gene-panel-data) for more information.
+3. A `JAVA_HOME` environment variable has been properly defined which points to a local installation of Java.
+4. The `PORTAL_HOME` environment variable has been properly defined. See [Pre-Build-Steps](Pre-Build-Steps.md#set-the-portal-home-variable) for more information.
+
+The following command is used to import a gene panel into the cBioPortal database:
+```
+$JAVA_HOME/bin/java -Dspring.profiles.active=dbcp -cp $PORTAL_HOME/scripts/target/scripts-*.jar org.mskcc.cbio.portal.scripts.ImportGenePanel --data core/src/test/scripts/test_data/study_es_0/gene_panel_example.txt
+```
+In this example, we are loading the example gene panel which resides in the sample dataset study_es_0.
+
+If a gene panel exists in the database with the same name as the one being imported, and there exists cancer study data that refers to this gene panel, this command will abort. In order to import the gene panel in this situation, either remove the cancer study from the database that refers to this gene panel or explicitly remove the gene panel from the data and then rerun the ImportGenePanel command. To remove the gene panel from the database, run the following commands fromthe MySQL console:
+
+```
+delete from gene_panel_list where internal_id = (select internal_id from gene_panel where stable_id = "example_gene_panel_stable_id");
+delete from gene_panel where stable_id = "example_gene_panel_stable_id";
+```
+In this example we are removing the gene panel with the stable_id `example_gene_panel_stable_id`, the example gene_panel from the study_es_0 sample dataset.
diff --git a/model/pom.xml b/model/pom.xml
index 0b18ddaed79..e9e38bbba02 100644
--- a/model/pom.xml
+++ b/model/pom.xml
@@ -5,7 +5,7 @@
master
org.mskcc.cbio
- 1.6.0
+ 1.6.1
4.0.0
diff --git a/persistence/persistence-api/pom.xml b/persistence/persistence-api/pom.xml
index 30716c69e18..29f022ce459 100644
--- a/persistence/persistence-api/pom.xml
+++ b/persistence/persistence-api/pom.xml
@@ -5,7 +5,7 @@
persistence
org.mskcc.cbio
- 1.6.0
+ 1.6.1
4.0.0
diff --git a/persistence/persistence-mybatis/pom.xml b/persistence/persistence-mybatis/pom.xml
index db98c2294d7..c1d5eb868b7 100644
--- a/persistence/persistence-mybatis/pom.xml
+++ b/persistence/persistence-mybatis/pom.xml
@@ -5,7 +5,7 @@
persistence
org.mskcc.cbio
- 1.6.0
+ 1.6.1
4.0.0
diff --git a/persistence/pom.xml b/persistence/pom.xml
index 7dbc00ead7c..01eb74bfb4c 100644
--- a/persistence/pom.xml
+++ b/persistence/pom.xml
@@ -5,7 +5,7 @@
master
org.mskcc.cbio
- 1.6.0
+ 1.6.1
4.0.0
diff --git a/pom.xml b/pom.xml
index 9252dc2d0ca..4b38936508e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
master
pom
Portal Master
- 1.6.0
+ 1.6.1
master maven module
diff --git a/portal/pom.xml b/portal/pom.xml
index e9e17e240e4..3db2b8b3b94 100644
--- a/portal/pom.xml
+++ b/portal/pom.xml
@@ -4,7 +4,7 @@
master
org.mskcc.cbio
- 1.6.0
+ 1.6.1
4.0.0
cbioportal
@@ -119,7 +119,7 @@
com.github.cbioportal
cbioportal-frontend
- cbff44ea7dd11a48d970bd26f21f0303c280864e
+ 547e71ac71fcb2a9cd7ebce9bfc7ec8c73cdd1ca
jar
.
*index*
diff --git a/portal/src/main/webapp/WEB-INF/jsp/patient_view/patient_view.jsp b/portal/src/main/webapp/WEB-INF/jsp/patient_view/patient_view.jsp
index 9d16387a35e..339494b499a 100644
--- a/portal/src/main/webapp/WEB-INF/jsp/patient_view/patient_view.jsp
+++ b/portal/src/main/webapp/WEB-INF/jsp/patient_view/patient_view.jsp
@@ -72,6 +72,8 @@
window.appVersion = '<%=GlobalProperties.getAppVersion()%>';
+ window.oncoKBApiUrl = '<%=GlobalProperties.getOncoKBPublicApiUrl()%>';
+
window.loadReactApp({ defaultRoute: 'patient' });
diff --git a/portal/src/main/webapp/js/src/cross-cancer-plotly-plots.js b/portal/src/main/webapp/js/src/cross-cancer-plotly-plots.js
index a0e874b059f..045aed54b29 100644
--- a/portal/src/main/webapp/js/src/cross-cancer-plotly-plots.js
+++ b/portal/src/main/webapp/js/src/cross-cancer-plotly-plots.js
@@ -46,184 +46,251 @@ var ccPlots = (function (Plotly, _, $) {
threshold_up = 1.2676506e+30,
jitter_value = 0.4;
- var fetch_profile_data = function(_queried_study_ids) {
-
- var _param_mrna_profile_arr = _.map(_queried_study_ids, function(_study_id) { return _study_id + "_rna_seq_v2_mrna"; });
- var _param_mut_profile_arr = _.map(_queried_study_ids, function(_study_id) { return _study_id + "_mutations"; });
- var _get_genetic_profile_params = {
- genes: gene,
- genetic_profile_ids: _param_mrna_profile_arr.concat(_param_mut_profile_arr)
- };
-
- window.cbioportal_client.getGeneticProfileDataBySample(_get_genetic_profile_params).then(
- function(_result) {
-
- profile_data = _result;
+
+ var getGeneticProfiles_ = function(_sids) {
+ var def_ = new $.Deferred();
+ var fetchPromises_ = [];
+ var profiles_ = [];
+ fetchPromises_ = fetchPromises_.concat(
+ _sids.map(function(_sid) {
+ var _def = new $.Deferred();
+ window.cbioportal_client.getGeneticProfiles({study_id: [_sid]}).then(function(_ret) {
+ profiles_ = profiles_.concat(_ret);
+ _def.resolve();
+ }, function() { _def.resolve([]); });
+ return _def.promise();
+ })
+ );
+ $.when.apply($, fetchPromises_).done(function() {
+ def_.resolve(profiles_);
+ });
+ return def_.promise();
+ }
+
+ var fetch_profile_data = function(_queriedStudyIds) {
+
+ $.when(getGeneticProfiles_(_queriedStudyIds)).then(function(_profiles) {
+
+ var _param_mrna_profile_arr = _.map(_queriedStudyIds, function (_sid) {
+ return _sid + "_rna_seq_v2_mrna";
+ });
+ var _param_mut_profile_arr = _.map(_queriedStudyIds, function (_sid) {
+ return _sid + "_mutations";
+ });
- //calculate median profile value for each study
- var _study_id_median_val_objs = [];
- var _profile_data_objs = _.filter(_result, function(_obj) { return !(_obj.hasOwnProperty("mutation_status")); })
- var _study_groups = _.groupBy(_profile_data_objs, "study_id");
- _.each(_study_groups, function(_study_group) {
- var _vals = _.filter(_.pluck(_study_group, "profile_data"), function(_val) { return _val !== "NaN"; });
- _vals = _.map(_vals, function(_val) { return parseFloat(_val); });
- var _median_val = findMedian(_vals);
- _study_id_median_val_objs.push({study_id: _study_group[0].study_id, median_val: _median_val});
- });
- function findMedian(_input_data) {
- var m = _input_data.map(function(v) {
- return v;
- }).sort(function(a, b) {
- return a - b;
+ var _get_genetic_profile_params = {
+ genes: gene,
+ genetic_profile_ids: _.intersection(_param_mrna_profile_arr.concat(_param_mut_profile_arr), _.pluck(_profiles, "id"))
+ };
+ window.cbioportal_client.getGeneticProfileDataBySample(_get_genetic_profile_params).then(
+ function (_result) {
+
+ profile_data = _result;
+
+ //calculate median profile value for each study
+ var _study_id_median_val_objs = [];
+ var _profile_data_objs = _.filter(_result, function (_obj) {
+ return !(_obj.hasOwnProperty("mutation_status"));
+ })
+ var _study_groups = _.groupBy(_profile_data_objs, "study_id");
+ _.each(_study_groups, function (_study_group) {
+ var _vals = _.filter(_.pluck(_study_group, "profile_data"), function (_val) {
+ return _val !== "NaN";
+ });
+ _vals = _.map(_vals, function (_val) {
+ return parseFloat(_val);
+ });
+ var _median_val = findMedian(_vals);
+ _study_id_median_val_objs.push({study_id: _study_group[0].study_id, median_val: _median_val});
});
- var middle = Math.floor((m.length - 1) / 2); // NB: operator precedence
- if (m.length % 2) {
- return m[middle];
- } else {
- return (m[middle] + m[middle + 1]) / 2.0;
- }
- }
-
- var _get_study_params = {
- study_ids : _.uniq(_.pluck(_profile_data_objs, "study_id"))
- };
- window.cbioportal_client.getStudies(_get_study_params).then(
- function(_study_meta) {
-
- study_meta = _study_meta;
-
- //map study full name to each sample
- _.each(_.filter(profile_data, function(_obj) { return !(_obj.hasOwnProperty("mutation_status")); }), function(_profile_data_obj) {
- _.each(study_meta, function(_study_meta_obj) {
- if(_study_meta_obj.id === _profile_data_obj.study_id) {
- _profile_data_obj.study_name = _study_meta_obj.name;
- _profile_data_obj.study_description = _study_meta_obj.description;
- _profile_data_obj.study_short_name = _study_meta_obj.short_name;
- }
- });
+ function findMedian(_input_data) {
+ var m = _input_data.map(function (v) {
+ return v;
+ }).sort(function (a, b) {
+ return a - b;
});
-
- //sort by study short name or median
- if (study_order === "median") {
- _study_id_median_val_objs = _.sortBy(_study_id_median_val_objs, "median_val");
- study_ids = _.pluck(_study_id_median_val_objs, "study_id");
- study_meta = _.sortBy(study_meta, function(_meta_obj){ return study_ids.indexOf(_meta_obj.id); });
+ var middle = Math.floor((m.length - 1) / 2); // NB: operator precedence
+ if (m.length % 2) {
+ return m[middle];
} else {
- study_ids = _.uniq(_.pluck(_.sortBy(profile_data, "study_short_name"), "study_id"));
- study_meta = _.sortBy(study_meta, "short_name");
+ return (m[middle] + m[middle + 1]) / 2.0;
}
-
- //map study full name to each sample
- _.each(_.filter(profile_data, function(_obj) { return !(_obj.hasOwnProperty("mutation_status")); }), function(_profile_data_obj) {
- _.each(study_meta, function(_study_meta_obj) {
- if(_study_meta_obj.id === _profile_data_obj.study_id) {
- _profile_data_obj.study_name = _study_meta_obj.name;
- _profile_data_obj.study_description = _study_meta_obj.description;
- _profile_data_obj.study_short_name = _study_meta_obj.short_name;
- }
+ }
+
+ var _get_study_params = {
+ study_ids: _.uniq(_.pluck(_profile_data_objs, "study_id"))
+ };
+ window.cbioportal_client.getStudies(_get_study_params).then(
+ function (_study_meta) {
+
+ study_meta = _study_meta;
+
+ //map study full name to each sample
+ _.each(_.filter(profile_data, function (_obj) {
+ return !(_obj.hasOwnProperty("mutation_status"));
+ }), function (_profile_data_obj) {
+ _.each(study_meta, function (_study_meta_obj) {
+ if (_study_meta_obj.id === _profile_data_obj.study_id) {
+ _profile_data_obj.study_name = _study_meta_obj.name;
+ _profile_data_obj.study_description = _study_meta_obj.description;
+ _profile_data_obj.study_short_name = _study_meta_obj.short_name;
+ }
+ });
});
- });
- //TODO: apply legit ways to extract profiles, now it's a hack, assuming every study has ONE rna seq v2 profile, and named under the SAME convention
- mrna_profiles = _.map(study_ids, function(_study_id) { return _study_id + "_rna_seq_v2_mrna"});
-
- //get sequenced sample lists
- var _sample_list_ids = _.map(study_ids, function(_study_id) { return _study_id + "_sequenced"; });
- window.cbioportal_client.getSampleLists({sample_list_ids: _sample_list_ids}).then(function(_sequenced_sample_lists) {
-
- //merge genomic profile data into mutation profile data for mutated samples
- var _mut_data = _.filter(profile_data, function(_obj) { return _obj.hasOwnProperty("mutation_status"); });
- var _tmp_profile_group = _.filter(profile_data, function(_obj) { return !(_obj.hasOwnProperty("mutation_status")); }); //profile data only
- _.each(_tmp_profile_group, function(_profile_obj) {
- var mutation_type = "non";
- var mutation_details = "";
- _.each(_mut_data, function(_mut_obj) {
- if (_profile_obj.study_id === _mut_obj.study_id &&
- _profile_obj.sample_id === _mut_obj.sample_id) {
- mutation_type = _mut_obj.mutation_type; //TODO: set a priority list for mutation type
- mutation_details += _mut_obj.amino_acid_change + ", ";
+ //sort by study short name or median
+ if (study_order === "median") {
+ _study_id_median_val_objs = _.sortBy(_study_id_median_val_objs, "median_val");
+ study_ids = _.pluck(_study_id_median_val_objs, "study_id");
+ study_meta = _.sortBy(study_meta, function (_meta_obj) {
+ return study_ids.indexOf(_meta_obj.id);
+ });
+ } else {
+ study_ids = _.uniq(_.pluck(_.sortBy(profile_data, "study_short_name"), "study_id"));
+ study_meta = _.sortBy(study_meta, "short_name");
+ }
+
+ //map study full name to each sample
+ _.each(_.filter(profile_data, function (_obj) {
+ return !(_obj.hasOwnProperty("mutation_status"));
+ }), function (_profile_data_obj) {
+ _.each(study_meta, function (_study_meta_obj) {
+ if (_study_meta_obj.id === _profile_data_obj.study_id) {
+ _profile_data_obj.study_name = _study_meta_obj.name;
+ _profile_data_obj.study_description = _study_meta_obj.description;
+ _profile_data_obj.study_short_name = _study_meta_obj.short_name;
}
});
- _profile_obj.mutation_type = mutation_type;
- _profile_obj.mutation_details = mutation_details.substring(0, mutation_details.length - 2);
});
- //separate groups
- var _non_mut_or_not_sequenced_group = _.filter(_tmp_profile_group, function(_obj) { return _obj.mutation_type === "non"; });
- var _mix_mut_group = _.filter(_tmp_profile_group, function(_obj) { return _obj.mutation_type !== "non"; });
-
- //calculate log values
- _.map(_non_mut_or_not_sequenced_group, function(_non_mut_obj){
- var _ori_val = _non_mut_obj.profile_data;
- if (_ori_val <= threshold_down) {
- _non_mut_obj.logged_profile_data = Math.log(threshold_down) / Math.log(2);
- } else if (_ori_val >= threshold_up) {
- _non_mut_obj.logged_profile_data = Math.log(threshold_up) / Math.log(2);
- } else {
- _non_mut_obj.logged_profile_data = Math.log(_ori_val) / Math.log(2);
- }
- return _non_mut_obj;
+ //TODO: apply legit ways to extract profiles, now it's a hack, assuming every study has ONE rna seq v2 profile, and named under the SAME convention
+ mrna_profiles = _.map(study_ids, function (_study_id) {
+ return _study_id + "_rna_seq_v2_mrna"
});
- _.map(_mix_mut_group, function(_mut_obj){
- var _ori_val = _mut_obj.profile_data;
- if (_ori_val <= threshold_down) {
- _mut_obj.logged_profile_data = Math.log(threshold_down) / Math.log(2);
- } else if (_ori_val >= threshold_up) {
- _mut_obj.logged_profile_data = Math.log(threshold_up) / Math.log(2);
- } else {
- _mut_obj.logged_profile_data = Math.log(_ori_val) / Math.log(2);
- }
- return _mut_obj;
+
+ //get sequenced sample lists
+ var _sample_list_ids = _.map(study_ids, function (_study_id) {
+ return _study_id + "_sequenced";
});
+ window.cbioportal_client.getSampleLists({sample_list_ids: _sample_list_ids}).then(function (_sequenced_sample_lists) {
- //mark sequenced/non-sequenced samples
- var _non_mut_study_groups = _.groupBy(_non_mut_or_not_sequenced_group, "study_id"); //only samples without mutation can be possibly not sequenced, therefore skip the mix_mut_group
- _.each(_non_mut_study_groups, function(_non_mut_study_group) {
- //for studies that non of the samples are sequenced
- if ($.inArray(_non_mut_study_group[0].study_id, _.uniq(_.pluck(_sequenced_sample_lists, "study_id"))) === -1) {
- _.each(_non_mut_study_group, function(_non_mut_obj) {
- _non_mut_obj.sequenced = false;
+ //merge genomic profile data into mutation profile data for mutated samples
+ var _mut_data = _.filter(profile_data, function (_obj) {
+ return _obj.hasOwnProperty("mutation_status");
+ });
+ var _tmp_profile_group = _.filter(profile_data, function (_obj) {
+ return !(_obj.hasOwnProperty("mutation_status"));
+ }); //profile data only
+ _.each(_tmp_profile_group, function (_profile_obj) {
+ var mutation_type = "non";
+ var mutation_details = "";
+ _.each(_mut_data, function (_mut_obj) {
+ if (_profile_obj.study_id === _mut_obj.study_id &&
+ _profile_obj.sample_id === _mut_obj.sample_id) {
+ mutation_type = _mut_obj.mutation_type; //TODO: set a priority list for mutation type
+ mutation_details += _mut_obj.amino_acid_change + ", ";
+ }
});
- }
- //for studies that part of the samples are sequenced
- _.each(_sequenced_sample_lists, function(_sequenced_sample_list) {
- if (_sequenced_sample_list.study_id === _non_mut_study_group[0].study_id) {
- var _sequenced_sample_ids = _sequenced_sample_list.sample_ids;
- _.each(_non_mut_study_group, function(_non_mut_obj) {
- if(_.contains(_sequenced_sample_ids, _non_mut_obj.sample_id)) {
- _non_mut_obj.sequenced = true;
- } else {
- _non_mut_obj.sequenced = false;
- }
+ _profile_obj.mutation_type = mutation_type;
+ _profile_obj.mutation_details = mutation_details.substring(0, mutation_details.length - 2);
+ });
+
+ //separate groups
+ var _non_mut_or_not_sequenced_group = _.filter(_tmp_profile_group, function (_obj) {
+ return _obj.mutation_type === "non";
+ });
+ var _mix_mut_group = _.filter(_tmp_profile_group, function (_obj) {
+ return _obj.mutation_type !== "non";
+ });
+
+ //calculate log values
+ _.map(_non_mut_or_not_sequenced_group, function (_non_mut_obj) {
+ var _ori_val = _non_mut_obj.profile_data;
+ if (_ori_val <= threshold_down) {
+ _non_mut_obj.logged_profile_data = Math.log(threshold_down) / Math.log(2);
+ } else if (_ori_val >= threshold_up) {
+ _non_mut_obj.logged_profile_data = Math.log(threshold_up) / Math.log(2);
+ } else {
+ _non_mut_obj.logged_profile_data = Math.log(_ori_val) / Math.log(2);
+ }
+ return _non_mut_obj;
+ });
+ _.map(_mix_mut_group, function (_mut_obj) {
+ var _ori_val = _mut_obj.profile_data;
+ if (_ori_val <= threshold_down) {
+ _mut_obj.logged_profile_data = Math.log(threshold_down) / Math.log(2);
+ } else if (_ori_val >= threshold_up) {
+ _mut_obj.logged_profile_data = Math.log(threshold_up) / Math.log(2);
+ } else {
+ _mut_obj.logged_profile_data = Math.log(_ori_val) / Math.log(2);
+ }
+ return _mut_obj;
+ });
+
+ //mark sequenced/non-sequenced samples
+ var _non_mut_study_groups = _.groupBy(_non_mut_or_not_sequenced_group, "study_id"); //only samples without mutation can be possibly not sequenced, therefore skip the mix_mut_group
+ _.each(_non_mut_study_groups, function (_non_mut_study_group) {
+ //for studies that non of the samples are sequenced
+ if ($.inArray(_non_mut_study_group[0].study_id, _.uniq(_.pluck(_sequenced_sample_lists, "study_id"))) === -1) {
+ _.each(_non_mut_study_group, function (_non_mut_obj) {
+ _non_mut_obj.sequenced = false;
});
}
+ //for studies that part of the samples are sequenced
+ _.each(_sequenced_sample_lists, function (_sequenced_sample_list) {
+ if (_sequenced_sample_list.study_id === _non_mut_study_group[0].study_id) {
+ var _sequenced_sample_ids = _sequenced_sample_list.sample_ids;
+ _.each(_non_mut_study_group, function (_non_mut_obj) {
+ if (_.contains(_sequenced_sample_ids, _non_mut_obj.sample_id)) {
+ _non_mut_obj.sequenced = true;
+ } else {
+ _non_mut_obj.sequenced = false;
+ }
+ });
+ }
+ });
+ });
+ _.each(_mix_mut_group, function (_mut_obj) {
+ _mut_obj.sequenced = true;
+ });
+ var _non_mut_group = _.filter(_non_mut_or_not_sequenced_group, function (_obj) {
+ return _obj.sequenced === true;
+ });
+ var _not_sequenced_group = _.filter(_non_mut_or_not_sequenced_group, function (_obj) {
+ return _obj.sequenced === false;
});
- });
- _.each(_mix_mut_group, function(_mut_obj) {
- _mut_obj.sequenced = true;
- });
- var _non_mut_group = _.filter(_non_mut_or_not_sequenced_group, function(_obj) { return _obj.sequenced === true; });
- var _not_sequenced_group = _.filter(_non_mut_or_not_sequenced_group, function(_obj) { return _obj.sequenced === false; });
-
- // exclude non provisional study
- _non_mut_group = _.filter(_non_mut_group, function(_obj) { return _obj.study_name.toLowerCase().indexOf("tcga") !== -1 && _obj.study_name.toLowerCase().indexOf("provisional") !== -1; });
- _not_sequenced_group = _.filter(_not_sequenced_group, function(_obj) { return _obj.study_name.toLowerCase().indexOf("tcga") !== -1 && _obj.study_name.toLowerCase().indexOf("provisional") !== -1; });
- _mix_mut_group = _.filter(_mix_mut_group, function(_obj) { return _obj.study_name.toLowerCase().indexOf("tcga") !== -1 && _obj.study_name.toLowerCase().indexOf("provisional") !== -1; });
- study_meta = _.filter(study_meta, function(_obj) { return _obj.name.toLowerCase().indexOf("tcga") !== -1 && _obj.name.toLowerCase().indexOf("provisional") !== -1; });
- study_ids = _.filter(study_ids, function(study_id) { return study_id.indexOf("tcga") !== -1 && study_id.indexOf("pub") === -1 });
- mrna_profiles = _.filter(mrna_profiles, function(mrna_profile) { return mrna_profile.indexOf("tcga") !== -1 && mrna_profile.indexOf("pub") === -1 });
-
- //join groups
- formatted_data = _non_mut_group.concat(_mix_mut_group, _not_sequenced_group);
-
- render(_non_mut_group, _not_sequenced_group, _mix_mut_group);
- });
+ // exclude non provisional study
+ _non_mut_group = _.filter(_non_mut_group, function (_obj) {
+ return _obj.study_name.toLowerCase().indexOf("tcga") !== -1 && _obj.study_name.toLowerCase().indexOf("provisional") !== -1;
+ });
+ _not_sequenced_group = _.filter(_not_sequenced_group, function (_obj) {
+ return _obj.study_name.toLowerCase().indexOf("tcga") !== -1 && _obj.study_name.toLowerCase().indexOf("provisional") !== -1;
+ });
+ _mix_mut_group = _.filter(_mix_mut_group, function (_obj) {
+ return _obj.study_name.toLowerCase().indexOf("tcga") !== -1 && _obj.study_name.toLowerCase().indexOf("provisional") !== -1;
+ });
+ study_meta = _.filter(study_meta, function (_obj) {
+ return _obj.name.toLowerCase().indexOf("tcga") !== -1 && _obj.name.toLowerCase().indexOf("provisional") !== -1;
+ });
+ study_ids = _.filter(study_ids, function (study_id) {
+ return study_id.indexOf("tcga") !== -1 && study_id.indexOf("pub") === -1
+ });
+ mrna_profiles = _.filter(mrna_profiles, function (mrna_profile) {
+ return mrna_profile.indexOf("tcga") !== -1 && mrna_profile.indexOf("pub") === -1
+ });
- }
- );
- });
+ //join groups
+ formatted_data = _non_mut_group.concat(_mix_mut_group, _not_sequenced_group);
+
+ render(_non_mut_group, _not_sequenced_group, _mix_mut_group);
+ });
+ }
+ );
+ }
+ );
+ });
}
var render = function(_non_mut_group, _not_sequenced_group, _mix_mut_group) {
diff --git a/portal/src/main/webapp/js/src/dashboard/cbio-vendor.js b/portal/src/main/webapp/js/src/dashboard/cbio-vendor.js
index 04436f8218a..422167c9feb 100644
--- a/portal/src/main/webapp/js/src/dashboard/cbio-vendor.js
+++ b/portal/src/main/webapp/js/src/dashboard/cbio-vendor.js
@@ -2943,7 +2943,7 @@ window.DataManagerForIviz = (function($, _) {
}
if (['CANCER_TYPE', 'CANCER_TYPE_DETAILED']
.indexOf(_metaObj.attr_id) !== -1) {
- if (_.intersection(['mskimpact', 'genie', 'mskimpact_heme'],
+ if (_.intersection(['mskimpact', 'genie', 'mskimpact_heme', 'mixedpact'],
Object.keys(_studyToSampleToPatientMap)).length === 0) {
_metaObj.priority = _metaObj.attr_id === 'CANCER_TYPE' ?
4.1 : 4.2;
diff --git a/portal/src/main/webapp/js/src/dashboard/iviz-vendor.js b/portal/src/main/webapp/js/src/dashboard/iviz-vendor.js
index 31879cbafd2..35affd6c36d 100644
--- a/portal/src/main/webapp/js/src/dashboard/iviz-vendor.js
+++ b/portal/src/main/webapp/js/src/dashboard/iviz-vendor.js
@@ -52968,16 +52968,18 @@ var template = Object.freeze({
}));
/*!
- * clipboard.js v1.5.15
+ * clipboard.js v1.6.1
* https://zenorocha.github.io/clipboard.js
*
* Licensed MIT © Zeno Rocha
*/
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Clipboard = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
+
+ var actions = typeof action === 'string' ? [action] : action;
+ var support = !!document.queryCommandSupported;
+
+ actions.forEach(function (action) {
+ support = support && !!document.queryCommandSupported(action);
+ });
+
+ return support;
+ }
}]);
return Clipboard;
diff --git a/portal/src/main/webapp/js/src/dashboard/iviz.js b/portal/src/main/webapp/js/src/dashboard/iviz.js
index 99867359fe9..48c99e2915e 100644
--- a/portal/src/main/webapp/js/src/dashboard/iviz.js
+++ b/portal/src/main/webapp/js/src/dashboard/iviz.js
@@ -1873,6 +1873,7 @@ var iViz = (function(_, $, cbio, QueryByGeneUtil, QueryByGeneTextArea) {
break;
case 'chartId':
domId = 'chart-new-' + attrId;
+ break;
case 'chartTableId':
domId = 'table-' + attrId;
break;
@@ -5144,7 +5145,7 @@ var iViz = (function(_, $, cbio, QueryByGeneUtil, QueryByGeneTextArea) {
fromFilter: false,
hasChartTitle: true,
showLoad: true,
- showDownloadIcon: false,
+ showDownloadIcon: true,
invisibleDimension: {},
mainDivQtip: ''
};
diff --git a/portal/src/main/webapp/js/src/dashboard/model/dataProxy.js b/portal/src/main/webapp/js/src/dashboard/model/dataProxy.js
index c95435209e0..5532436ac3f 100644
--- a/portal/src/main/webapp/js/src/dashboard/model/dataProxy.js
+++ b/portal/src/main/webapp/js/src/dashboard/model/dataProxy.js
@@ -389,7 +389,7 @@ window.DataManagerForIviz = (function($, _) {
}
if (['CANCER_TYPE', 'CANCER_TYPE_DETAILED']
.indexOf(_metaObj.attr_id) !== -1) {
- if (_.intersection(['mskimpact', 'genie', 'mskimpact_heme'],
+ if (_.intersection(['mskimpact', 'genie', 'mskimpact_heme', 'mixedpact'],
Object.keys(_studyToSampleToPatientMap)).length === 0) {
_metaObj.priority = _metaObj.attr_id === 'CANCER_TYPE' ?
4.1 : 4.2;
diff --git a/portal/src/main/webapp/js/src/dashboard/resources/attributes.json b/portal/src/main/webapp/js/src/dashboard/resources/attributes.json
index c83dea049fc..a7278f01184 100644
--- a/portal/src/main/webapp/js/src/dashboard/resources/attributes.json
+++ b/portal/src/main/webapp/js/src/dashboard/resources/attributes.json
@@ -26,6 +26,18 @@
"DFS_SURVIVAL",
"AGE"
]
+ },
+ "mixedpact": {
+ "priority":[
+ "DARWIN_PATIENT_AGE",
+ "OS_STATUS",
+ "SAMPLE_TYPE",
+ "DARWIN_VITAL_STATUS"
+ ],
+ "hidden": [
+ "OS_SURVIVAL",
+ "DFS_SURVIVAL"
+ ]
}
}
},
diff --git a/scripts/pom.xml b/scripts/pom.xml
index e25037d83bf..61dc0945e10 100644
--- a/scripts/pom.xml
+++ b/scripts/pom.xml
@@ -4,7 +4,7 @@
master
org.mskcc.cbio
- 1.6.0
+ 1.6.1
4.0.0
scripts
diff --git a/security/pom.xml b/security/pom.xml
index 4c9699d6ff9..fa8f02dcf26 100644
--- a/security/pom.xml
+++ b/security/pom.xml
@@ -5,7 +5,7 @@
master
org.mskcc.cbio
- 1.6.0
+ 1.6.1
4.0.0
diff --git a/security/security-spring/pom.xml b/security/security-spring/pom.xml
index f62fa9f4586..8e2d40dc91c 100644
--- a/security/security-spring/pom.xml
+++ b/security/security-spring/pom.xml
@@ -5,7 +5,7 @@
security
org.mskcc.cbio
- 1.6.0
+ 1.6.1
4.0.0
diff --git a/service/pom.xml b/service/pom.xml
index b019364a450..0704f3c15ec 100644
--- a/service/pom.xml
+++ b/service/pom.xml
@@ -5,7 +5,7 @@
master
org.mskcc.cbio
- 1.6.0
+ 1.6.1
4.0.0
diff --git a/test/end-to-end/screenshots/chrome/patient_view_lgg_ucsf_2014_case_id_P04.png b/test/end-to-end/screenshots/chrome/patient_view_lgg_ucsf_2014_case_id_P04.png
index 7f02ac256ba..102ec23a69a 100644
Binary files a/test/end-to-end/screenshots/chrome/patient_view_lgg_ucsf_2014_case_id_P04.png and b/test/end-to-end/screenshots/chrome/patient_view_lgg_ucsf_2014_case_id_P04.png differ
diff --git a/test/end-to-end/screenshots/firefox/patient_view_lgg_ucsf_2014_case_id_P04.png b/test/end-to-end/screenshots/firefox/patient_view_lgg_ucsf_2014_case_id_P04.png
index 8ddb131d09b..b23fc79fc66 100644
Binary files a/test/end-to-end/screenshots/firefox/patient_view_lgg_ucsf_2014_case_id_P04.png and b/test/end-to-end/screenshots/firefox/patient_view_lgg_ucsf_2014_case_id_P04.png differ
diff --git a/web/pom.xml b/web/pom.xml
index a98cfff6a0a..779246b29da 100644
--- a/web/pom.xml
+++ b/web/pom.xml
@@ -4,7 +4,7 @@
master
org.mskcc.cbio
- 1.6.0
+ 1.6.1
4.0.0
web