1angular 2 .module('app') 3 .controller('multiGroupResultsController', ['$scope','$state','$http','$uibModal','results','genes','modals','historyFactory','Result','IlincsR','GeneList','envService','ExperimentMetaData', 4 function($scope,$state,$http,$uibModal,results,genes,modals,historyFactory,Result,IlincsR,GeneList,envService,ExperimentMetaData) { 5 6 //internal functions 7 // function createSignatureResults(exp,prop,filters) { 8 // // $scope.createSignature = function(prop,filters) { 9 // console.log("createSignature function for dataset"+exp+" group: "+prop+'and filterchk: '+filters); 10 // 11 // }; 12 13 function getDataset() { 14 ExperimentMetaData 15 // PublicDataset 16 .findOne({ filter:{where: {experiment: $scope.experiment}}}) 17 //.find({ filter:{limit: 5}}) 18 .$promise 19 .then(function(result) { 20 // console.log(result); 21 $scope.dataset = result; 22 }); 23 } 24 25 function multiGroupAnalysis(result) { 26 27 // console.log("multiGroupAnalysisWithGenes"); 28 IlincsR.multiGroupDiffExpAnalysis({exp:result.dataset,prop:result.group,filterchk:result.filter,cluster:result.platform}, 29 function(data){ 30 // console.log(data); 31 // $scope.generatedResults=true; 32 $scope.generatedResults=data; 33 // if (data.Remark!="Done"){ 34 // $scope.generatedError=true; 35 // } 36 // console.log($scope.generatedResults.geneData); 37 genes.parseGenesForExternal($scope.generatedResults.geneData); 38 $scope.morpheusJson= results.generateMorpheusJson($scope.generatedResults.sessionID,$scope.resultRecord.group); 39 40 $scope.geneResource = { 41 "header": //response.data.header, 42 [ 43 { "ID_geneid": "Gene Id" }, 44 { "Name_GeneSymbol": "Symbol" }, 45 { "description":"Description"}//, 46 // { "synonyms": "Synonyms" } 47 // ,{ "taxid": "Organism" } 48 ], 49 // "rows": genelist 50 "rows": $scope.generatedResults.geneData 51 }; 52 $scope.geneDataReady=true; 53 $scope.activeTabs.Side=1; 54 }, 55 function(errorResponse){ 56 console.log("multiGroupDiffExpAnalysis Failed."); 57 console.log(errorResponse); 58 // $scope.errorMessage=errorResponse.statusText; 59 $scope.errorMessage=errorResponse.data.error.name; 60 $scope.errorMessageR=errorResponse.data.error.message; 61 $scope.generatedResults=true; 62 $scope.generatedError=true; 63 }); 64 } 65 66 function multiGroupReAnalysis(result,sessionId,sigcutoff,foldchange) { 67 68 // console.log("multiGroupAnalysisWithGenesReAnalisys"); 69 // console.log(result.dataset); 70 IlincsR.multiGroupDiffExpReAnalysis({exp:result.dataset,prop:result.group,filterchk:result.filter,sessionId:sessionId,pValue:sigcutoff,foldchange:foldchange}, 71 // IlincsR.multiGroupDiffExpReAnalysis({sessionId:sessionId,pValue:sigcutoff,foldchange:foldchange}, 72 function(data){ 73 // console.log(data); 74 // $scope.generatedResults=true; 75 $scope.generatedResults=data; 76 if (data.Remark!="Done"){ 77 // $scope.generatedError=true; 78 $scope.showRemark=true; 79 } 80 // console.log($scope.generatedResults.geneData); 81 genes.parseGenesForExternal($scope.generatedResults.geneData); 82 $scope.morpheusJson= results.generateMorpheusJson($scope.generatedResults.sessionID,$scope.resultRecord.group); 83 $scope.geneResource = { 84 "header": //response.data.header, 85 [ 86 { "ID_geneid": "Gene Id" }, 87 { "Name_GeneSymbol": "Symbol" }, 88 { "description":"Description"}//, 89 // { "synonyms": "Synonyms" } 90 // ,{ "taxid": "Organism" } 91 ], 92 // "rows": genelist 93 "rows": $scope.generatedResults.geneData 94 }; 95 $scope.geneDataReady=true; 96 $scope.activeTabs.Side=1; 97 }, 98 function(errorResponse){ 99 console.log("multiGroupDiffExpReAnalysis Failed."); 100 console.log(errorResponse); 101 $scope.errorMessage=errorResponse.statusText; 102 $scope.generatedResults=true; 103 $scope.generatedError=true; 104 }); 105 } 106 107 function getResultRecord(resultId){ 108 // console.log(resultId); 109 110 Result.findById({id:resultId}, 111 function(data){ 112 // console.log(data); 113 $scope.resultRecord=data; 114 // console.log($state.params.sessionId); 115 if ($state.params.sessionId) { 116 multiGroupReAnalysis($scope.resultRecord,$state.params.sessionId,$state.params.sigcutoff,$state.params.foldchange); 117 } else { 118 multiGroupAnalysis($scope.resultRecord); 119 } 120 121 }, 122 function(errorResponse){ 123 console.log("Getting Results from database Failed."),console.log(errorResponse) 124 }); 125 } 126 //scope functions
127 $scope.analyzeWithGenes = function(genes) { 128 // console.log(genes); 129 GeneList.create({ content: genes }).$promise 130 .then(function(data) { 131 132 $scope.GeneListNum = data.id; 133 historyFactory.saveResultInSessionHistory('geneListHistory',data.id); 134 135 $state.go('analyzeWithGenes.signatures',{geneListNum:$scope.GeneListNum}); 136 }); 137 138 } 139 140 $scope.postToClusterGrammer = function(session) { 141 console.log("post to Clustergrammer"); 142 $scope.creatingClusterGrammer=true; 143 var filePath="/tmp/" 144 145 var esetName = "filteredeset_" + session; 146 IlincsR.saveCgMatrixFromEset({eset:esetName}, 147 function(data){ 148 // console.log(data); 149 $http.get(filePath+data.file).then(function onSuccess(response) { 150 $scope.clustergrammer=response.data; 151 var file = new File([response.data],data.file ); 152 $scope.clusterFile=file; 153 154 var fd = new FormData(); 155 // fd.append('distance-type', 'euclidean'); 156 // fd.append('linkage-type', 'average'); 157 fd.append('distance-type', 'correlation'); 158 fd.append('linkage-type', 'complete'); 159 fd.append('file', file); 160 $http.post("https://amp.pharm.mssm.edu/clustergrammer/matrix_upload/", fd, { 161 headers: {'Content-Type': undefined} 162 }) 163 .then(function onSuccess(resp) { 164 // console.log(resp.data); 165 $scope.creatingClusterGrammer=false; 166 var clustergrammerWindow = window.open('#', '_blank'); 167 clustergrammerWindow.location.href = resp.data; 168 }, function onError(resp) { 169 console.log(resp.status,resp.statusText); 170 $scope.creatingClusterGrammer=false; 171 } 172 ); 173 },function onError(response) { 174 console.log(response.status,response.statusText); 175 } 176 ); 177 }, 178 function(errorResponse){ 179 console.log("converting eset to Matrix Failed."); 180 console.log(errorResponse); 181 $scope.errorMessage=errorResponse.statusText; 182 $scope.generatedResults=true; 183 $scope.generatedError=true; 184 }); 185 } 186 187 $scope.openModalBoxPlotly = function (geneId,geneName,prop,sessionID,data) { 188 // console.log("openModalBoxPlotly"); 189 var modalInstance = $uibModal.open({ 190 animation: $scope.animationsEnabled, 191 // templateUrl: 'myModalContent.html', 192 templateUrl: 'views/templates/modals/geneBoxPlotly.html', 193 controller: 'geneBoxPlotlyModalCtrl', 194 size: 'xxl', 195 windowClass: 'app-modal-window', 196 resolve: { 197 geneId: function () { 198 return geneId; 199 }, 200 geneName: function () { 201 return geneName; 202 }, 203 prop: function () { 204 return prop; 205 }, 206 dataset: function () { 207 return $scope.experiment; 208 }, 209 sessionID: function () { 210 return sessionID; 211 } 212 } 213 }); 214 } 215 //end of functions 216 217 // var result; 218 //init function 219 init = function() { 220 221 if (envService.is('production')) { 222 $scope.environment="production"; 223 } 224 else { 225 $scope.environment="development"; 226 } 227 $scope.activeTabs={}; 228 $scope.genesF=genes; 229 $scope.modalsF=modals; 230 $scope.filterByGene={}; 231 // console.log('multiGroupResultsController'); 232 // console.log($state.params); 233 $scope.experiment=$state.params.experiment; 234 $scope.foldchange=$state.params.foldchange; 235 $scope.sigcutoff=$state.params.sigcutoff; 236 $scope.resultId=$state.params.resultId; 237 var tab=parseInt($state.params.mainTab); 238 if (tab>1||tab<0) tab=0 239 $scope.activeTabs.Main = tab||0; 240 getResultRecord($state.params.resultId); 241 getDataset(); 242 243 // // $scope.ResultsReady = false;
244 // // console.log($state.params.exp); 245 // // console.log($state.params.pickedGroup); 246 // // console.log($state.params.filterchk); 247 // // createSignatureResults($state.params.exp,$state.params.pickedGroup,$state.params.filterchk); 248 // // results.createSignatureResults($state.params.exp,$state.params.pickedGroup,$state.params.filterchk); 249 // // results.createSignatureResults($state.params.exp,$state.params.pickedGroup,$state.params.filterchk,$scope); 250 // // $scope.resultFromService=results.result; 251 // 252 // 253 // $scope.resultFromService=results.result; 254 255 } 256 //begining of initializing datasetController 257 init(); 258 259 260 }]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.