Skip to content
Snippets Groups Projects
Commit 4ab149d7 authored by Hanna  JULIENNE's avatar Hanna JULIENNE
Browse files

Merge branch 'staging' into 'master'

Update requirement, change default behaviour

See merge request !28
parents 483323f5 9dc76727
No related branches found
Tags 2.1
No related merge requests found
......@@ -32,32 +32,32 @@ def absolute_path_of_the_file(fileName, output_file = False):
if (Directory_path_exist == False):
# Test the path using the Jass data directory
absoluteFilePath = os.path.normpath(os.path.join(config["DATA_DIR"], fileName))
Directory_path_exist = os.path.exists(os.path.dirname(absoluteFilePath))
if (Directory_path_exist == False):
Message = "The directory of the file {} does not exist".format(fileName)
raise NameError(Message)
else:
# Test if the file path exist
File_path_exist = os.path.exists(absoluteFilePath)
if (File_path_exist == False):
# Test the path using the Jass data directory
absoluteFilePath = os.path.normpath(os.path.join(config["DATA_DIR"], fileName))
File_path_exist = os.path.exists(absoluteFilePath)
if (File_path_exist == False):
Message = "The file {} does not exist".format(fileName)
raise NameError(Message)
# Test if it is realy a file
Is_a_file = os.path.isfile(absoluteFilePath)
if (not Is_a_file) :
Message = "{} is not a file".format(fileName)
raise NameError(Message)
return absoluteFilePath
......@@ -72,17 +72,17 @@ def w_list_phenotypes(args):
def compute_worktable(args):
csv_file_path = args.csv_file_path
if (csv_file_path is not None):
csv_file_path = absolute_path_of_the_file(csv_file_path, True)
init_table_path = absolute_path_of_the_file(args.init_table_path)
worktable_path = absolute_path_of_the_file(args.worktable_path, True)
selected_phenotypes = args.phenotypes
remove_nan = not (args.keep_nans)
remove_nan = (args.remove_nans)
significance_treshold = float(args.significance_treshold)
post_filtering = bool(args.post_filtering)
custom_loadings = args.custom_loadings
custom_loadings = args.custom_loadings
chromosome = args.chromosome_number
pos_Start = args.start_position
pos_End = args.end_position
......@@ -99,10 +99,10 @@ def compute_worktable(args):
strategy = args.strategy
create_worktable_file(
phenotype_ids = selected_phenotypes,
init_file_path = init_table_path,
phenotype_ids = selected_phenotypes,
init_file_path = init_table_path,
project_hdf_path = worktable_path,
remove_nan = remove_nan,
remove_nan = remove_nan,
stat = strategy,
optim_na = True,
csv_file = csv_file_path,
......@@ -125,8 +125,8 @@ def w_create_project_data(args):
manhattan_plot_path = absolute_path_of_the_file(args.manhattan_plot_path, True)
quadrant_plot_path = absolute_path_of_the_file(args.quadrant_plot_path, True)
create_global_plot(worktable_path, manhattan_plot_path)
create_quadrant_plot(worktable_path,
quadrant_plot_path,
create_quadrant_plot(worktable_path,
quadrant_plot_path,
significance_treshold = float(args.significance_treshold))
......@@ -136,7 +136,7 @@ def w_create_inittable(args):
regions_map_path = absolute_path_of_the_file(args.regions_map_path)
description_file_path = absolute_path_of_the_file(args.description_file_path)
init_table_path = absolute_path_of_the_file(args.init_table_path, True)
create_inittable_file(
input_data_path,
regions_map_path,
......@@ -155,8 +155,8 @@ def w_plot_quadrant(args):
worktable_path = absolute_path_of_the_file(args.worktable_path)
plot_path = absolute_path_of_the_file(args.plot_path)
significance_treshold = float(args.significance_treshold)
create_quadrant_plot(worktable_path,
plot_path,
create_quadrant_plot(worktable_path,
plot_path,
significance_treshold=significance_treshold)
......@@ -197,7 +197,7 @@ def get_parser():
parser_create_pd.add_argument(
"--worktable-path", required=True, help="path to the worktable file to generate"
)
parser_create_pd.add_argument("--keep-nans", action="store_true", default=False)
parser_create_pd.add_argument("--remove-nans", action="store_true", default=False)
parser_create_pd.add_argument(
"--manhattan-plot-path",
required=True,
......@@ -237,7 +237,7 @@ def get_parser():
required=False,
help="path to the results file in csv format"
)
parser_create_pd.add_argument(
"--chromosome-number",
required=False,
......@@ -255,7 +255,7 @@ def get_parser():
required=False,
help="option used only for local analysis: end position of the region studied"
)
strategies = parser_create_pd.add_mutually_exclusive_group()
strategies.add_argument("--omnibus", action="store_true", default=True)
strategies.add_argument("--sumz", action="store_true", default=False)
......@@ -336,15 +336,15 @@ def get_parser():
required=False,
help="path to the results file in csv format"
)
parser_create_wt.add_argument(
"--chunk-size",
required=False,
default=50,
help="Number of region to load in memory at once",
)
parser_create_wt.add_argument("--keep-nans", action="store_true", default=False)
parser_create_wt.add_argument("--remove-nans", action="store_true", default=False)
parser_create_wt.add_argument(
"--chromosome-number",
......@@ -363,14 +363,14 @@ def get_parser():
required=False,
help="option used only for local analysis: end position of the region studied"
)
strategies = parser_create_wt.add_mutually_exclusive_group()
strategies.add_argument("--omnibus", action="store_true", default=True)
strategies.add_argument("--sumz", action="store_true", default=False)
strategies.add_argument("--fisher_test", action="store_true", default=False)
strategies.add_argument("--meta_analysis", action="store_true", default=False)
strategies.add_argument("--strategy")
parser_create_wt.set_defaults(func=w_create_worktable)
# ------- plot-manhattan -------
......@@ -385,8 +385,8 @@ def get_parser():
help="path to the worktable file containing the data",
)
parser_create_mp.add_argument(
"--plot-path",
required=True,
"--plot-path",
required=True,
help="path to the manhattan plot file to generate"
)
parser_create_mp.set_defaults(func=w_plot_manhattan)
......@@ -402,8 +402,8 @@ def get_parser():
help="path to the worktable file containing the data",
)
parser_create_mp.add_argument(
"--plot-path",
required=True,
"--plot-path",
required=True,
help="path to the quadrant plot file to generate"
)
parser_create_mp.add_argument(
......@@ -412,7 +412,7 @@ def get_parser():
help="threshold at which a p-value is considered significant"
)
parser_create_mp.set_defaults(func=w_plot_quadrant)
return parser
......
......@@ -28,12 +28,9 @@
<!-- Plotly.js -->
<script src="js/plotly-latest.min.js"></script> <!--https://cdn.plot.ly/plotly-latest.min.js-->
<!--<script src="js/jquery.min.js"></script> http://ajax.googleapis.com/ajax/libs/
jquery/1.8.1/jquery.min.js-->
<script src="js/plotly-latest.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="js/jquery-ui.js"></script> <!--https://code.jquery.com/ui/1.12.1/jquery-ui.js-->
<script src="js/jquery-ui.js"></script>
<script src="js/snap.svg-min.js"></script>
<script src="js/Chromosome.js"></script>
......@@ -49,7 +46,6 @@
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" ></script>
<!--<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" ></script>-->
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/select/1.3.0/js/dataTables.select.min.js"></script>
......@@ -63,10 +59,6 @@
<script src="https://cdn.datatables.net/buttons/1.3.1/js/dataTables.buttons.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.3.1/css/buttons.dataTables.min.css">
<script src="https://cdn.datatables.net/buttons/1.3.1/js/buttons.flash.min.js"></script>
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML" type="text/javascript"></script>
<!--<script defer language="javascript" src="js/create_genome_full_csv.js" type="text/javascript"> </script>-->
<style>
......
<html>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="http://malsup.github.io/jquery.blockUI.js"></script>
<script>
function directLink() {
//var phe = ["z_DIAGRAM_T2D", "z_GLG_HDL", "z_GLG_LDL", "z_GLG_TC", "z_GLG_TG"];
//http://jass.pasteur.fr/directLink.html?z_DIAGRAM_T2D,%20z_GLG_HDL,%20z_GLG_LDL,%20z_GLG_TC,%20z_GLG_TG
var phes = extractUrlParam();
//phes ="z_PGC_BIP,z_GIANT_BMI";
//phes ="z_DIAGRAM_T2D,z_GLG_HDL,z_GLG_LDL,z_GLG_TC,z_GLG_TG";
//console.log("!!!!!!!"+phes);
//console.log(phes[0])
var phe = {};
phe['phenotypeID'] =phes;
//var phes = extractUrlParams();
//phes +="";
//var phenotypes = phes.split(',');
//var phenotypes = ["z_C4D_CHD","z_CARDIOGRAM_CHD","z_ICBP_DBP"];
//var monobjet_json = JSON.stringify(phenotypes);
//console.log(monobjet_json);
//sessionStorage.setItem("phenotypes",monobjet_json);
//location.href = 'http://hub17.hosting.pasteur.fr/getVar.html';
//var test =extractUrlParams();
//console.log(test);
//console.log(extractUrlParams());
//location.href = 'chromo_heatmap_manhattan.html';
$.blockUI({ css: {
border: 'none',
padding: '15px',
backgroundColor: '#000',
'-webkit-border-radius': '10px',
'-moz-border-radius': '10px',
opacity: .5,
color: '#fff'} });
var status="-1";
var getProjectStatus = function(){
//$.post( "/api/projects",{'phenotypeID':"z_DIAGRAM_T2D,z_GLG_HDL,z_GLG_LDL,z_GLG_TC,z_GLG_TG"}).done(function( data ) {
$.post( "/api/projects",phe).done(function( data ) {
status = data.status.worktable;
console.log("!! status "+status);
if(status =="READY"){
$.unblockUI();
console.log( data );
sessionStorage.setItem("id",data.id);
console.log(data.phenotypes);
//var monobjet_json = JSON.stringify(data.phenotypes[0]);
var monobjet_json = JSON.stringify(data.phenotypes);
sessionStorage.setItem("phenotypes",monobjet_json);
console.log(data.phenotypes[0]["cohort"]);
//location.href = 'http://hub17.hosting.pasteur.fr/getVar.html';
location.href = 'chromo_heatmap_manhattan.html';
}
else if(status =="CREATING"){
console.log("CREATING");
setTimeout(getProjectStatus, 10000);
}
});
};
getProjectStatus();
}
function extractUrlParam(){
var t = location.search.substring(1).split('=');
return t[1];
}
function extractUrlParams(){
console.log(location.search);
var t = location.search.substring(1).split('&');
var f = [];
for (var i=0; i<t.length; i++){
var x = t[ i ].split('=');
f[x[0]]=x[1];
}
return f;
}
</script>
<body onload="directLink()">
</body>
</html>
<html>
<style>
div.blockMe { padding: 30px; margin: 30px; border: 10px solid #ccc; background-color: #ffd }
#question { background-color: #ffc; padding: 10px; }
#question input { width: 4em ; }
</style>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://malsup.github.io/jquery.blockUI.js"></script>
<script>
function avancement() {
var ava = document.getElementById("avancement");
var prc = document.getElementById("pourcentage");
prc.innerHTML = ava.value + "%";
}
function modif(val) {
var ava = document.getElementById("avancement");
if((ava.value+val)<=ava.max && (ava.value+val)>0) {
ava.value += val;
}
avancement();
}
function directLink() {
var toApply = 1;
var phe = {};
var url = new URL(window.location.toString());
var search_params = new URLSearchParams(url.search);
if (search_params.has("phenotypes")) {
var phes = search_params.get("phenotypes");
phe['phenotypeID'] = phes;
if (phes == '') {
selectedNumber = 0;
}
else {
selectedNumber = (phes.split(",")).length;
}
console.log("phes='"+phes+"'");
console.log("selectedNumber="+selectedNumber);
if (selectedNumber == 0){
// WARNING: No phenotype is selected !
var User_Message = "𝐖𝐀𝐑𝐍𝐈𝐍𝐆: 𝐏𝐥𝐞𝐚𝐬𝐞 𝐜𝐡𝐨𝐨𝐬𝐞 𝐚𝐧 𝐚𝐫𝐫𝐚𝐲 𝐨𝐟 𝐏𝐡𝐞𝐧𝐨𝐭𝐲𝐩𝐞𝐬..."
alert(User_Message);
toApply = 0;
}
else if (selectedNumber == 1){
// A confirmation window is displayed
var User_Message = "𝐖𝐀𝐑𝐍𝐈𝐍𝐆: 𝐲𝐨𝐮 𝐡𝐚𝐯𝐞 𝐬𝐞𝐥𝐞𝐜𝐭𝐞𝐝 𝐨𝐧𝐥𝐲 𝐨𝐧𝐞 𝐩𝐡𝐞𝐧𝐨𝐭𝐲𝐩𝐞!" +
"\nIt isn't the way JASS normally works.\nDo you want to continue?";
var r = confirm(User_Message);
if (r == true) { // Button OK is selected
toApply = 1;
} else { // Button CANCEL is selected
toApply = 0;
}
}
else if ((selectedNumber > 20) && (selectedNumber <= 64)){
// A confirmation window is displayed
var User_Message = "𝐖𝐀𝐑𝐍𝐈𝐍𝐆: 𝐲𝐨𝐮 𝐡𝐚𝐯𝐞 𝐬𝐞𝐥𝐞𝐜𝐭𝐞𝐝 " +
selectedNumber +
" 𝐩𝐡𝐞𝐧𝐨𝐭𝐲𝐩𝐞𝐬!\nThe computation will be very long. \nDo you want to continue?";
var g = confirm(User_Message);
if (g == true) { // Button OK is selected
toApply = 1;
} else { // Button CANCEL is selected
toApply = 0;
}
}
else if (selectedNumber > 64) {
// ERROR: More than 64 Phenotypes have been selected !
var User_Message = "𝐄𝐑𝐑𝐎𝐑: 𝐲𝐨𝐮 𝐡𝐚𝐯𝐞 𝐬𝐞𝐥𝐞𝐜𝐭𝐞𝐝 " +
selectedNumber +
" 𝐩𝐡𝐞𝐧𝐨𝐭𝐲𝐩𝐞𝐬!\nThe current implementation of JASS cannot analyze more than 64 phenotypes.";
alert(User_Message);
toApply = 0;
}
}
else {
// WARNING: No phenotype is selected !
var User_Message = "𝐖𝐀𝐑𝐍𝐈𝐍𝐆: 𝐏𝐥𝐞𝐚𝐬𝐞 𝐜𝐡𝐨𝐨𝐬𝐞 𝐚𝐧 𝐚𝐫𝐫𝐚𝐲 𝐨𝐟 𝐏𝐡𝐞𝐧𝐨𝐭𝐲𝐩𝐞𝐬..."
alert(User_Message);
toApply = 0;
}
if (toApply == 1){
if (search_params.has("chromosome")) {
var chromosome = search_params.get("chromosome");
// Local analysis
var User_Message =
"Local analysis is not yet implemented in this version of JASS." +
"\nDo not specify a chromosome number and start and end positions";
alert(User_Message);
toApply = 0;
// var Page_to_display = "chromo_heatmap_manhattan_by_region.html"
}
else {
// Whole genome analysis
var Page_to_display = "chromo_heatmap_manhattan.html"
}
if(search_params.has("start")) {
var start = search_params.get("start");
}
if(search_params.has("end")) {
var end = search_params.get("end");
}
}
if (toApply == 1){
$.blockUI({ message: $('#question'), css: { width: '275px' }});
avancement(); //Initialisation
var status = "-1";
var JASS_progress = 0;
var Old_progress = 0;
var getProjectStatus = function(){
$.post( "/api/projects",phe).done(function( data ) {
status = data.status.worktable;
JASS_progress = data.progress;
var deltaProgress = JASS_progress - Old_progress;
Old_progress = JASS_progress;
modif(deltaProgress);
if(status == "READY"){
$.unblockUI();
sessionStorage.setItem("id",data.id);
var monobjet_json = JSON.stringify(data.phenotypes);
sessionStorage.setItem("phenotypes",monobjet_json);
location.href = Page_to_display;
}
else if(status == "CREATING"){
setTimeout(getProjectStatus, 10000);
}
});
};
getProjectStatus();
}
}
</script>
<body onload="directLink()">
<div id="question" style="display:none; cursor: default">
<H3>Analysis in progress ...</H3>
<progress id="avancement" value="0" max="100"></progress>
<span id="pourcentage"></span>
</div>
</body>
</html>
<html>
<head>
<script src="js/jquery.min.js"></script> <!--https://cdn.plot.ly/plotly-latest.min.js-->
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script> <!--https://cdn.plot.ly/plotly-latest.min.js-->
<!--<script src="http://tablesorter.com/addons/pager/jquery.tablesorter.pager.js"></script>-->
<!-- <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.15/css/jquery.dataTables.css"> -->
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css">
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.15/js/jquery.dataTables.js"></script>
<!-- datatables buttons pdf csv copy -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script src="js/pdfmake.min.js"></script>
<script src="js/vfs_fonts.js"></script>
<script src="https://cdn.datatables.net/buttons/1.3.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.3.1/js/buttons.print.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.3.1/js/dataTables.buttons.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.3.1/css/buttons.dataTables.min.css">
<script src="https://cdn.datatables.net/buttons/1.3.1/js/buttons.flash.min.js"></script>
<script src="http://malsup.github.io/jquery.blockUI.js"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" href="https://research.pasteur.fr/wp-content/themes/biologyx2/style.css" type="text/css" >
<style>
.header {
margin:0 0 30px 0;
padding: 5px 0 0 0 ;
height:50;
background-image: url('/static/img/bkg_part2_wthLabel.jpg');
background-color: transparent;
background-size:contain;
object-fit: contain;
background-repeat:no-repeat;
}
#image-top {height:80!important}
</style>
<script>
var selected = [];
//goToURL();
var typeExport = sessionStorage.getItem("typeExport");
var idProject = sessionStorage.getItem("id");
console.log(idProject);
var selectedRegion = sessionStorage.getItem("selectedRegion");
var selectedChr = sessionStorage.getItem("selectedChr");
console.log(selectedRegion);
console.log(selectedChr);
if(typeExport =="localStat"){
Plotly.d3.csv("/api/projects/"+idProject+"/manhattan/"+selectedChr+"/"+selectedRegion, function(data){ processExportJASSPVAL(data) } );
}
else if (typeExport =="globalStat"){
Plotly.d3.csv("/api/projects/"+idProject+"/genome",
function(data){ processExportGJASSPVAL(data)});
}
else if(typeExport =="heatmap"){
Plotly.d3.csv("/api/projects/"+idProject+"/heatmap/"+selectedChr+"/"+selectedRegion,
function(data){ processExportHeatmap(data) } );
}
function processExportGJASSPVAL(rows) {
console.log("processExportGJASSPVAL rows.length "+rows.length);
console.log(rows[0]);
var columns =["CHR","JOSTmin","MiddlePosition","PVALmin","Region","snp_ids"]
tabulate(rows,columns);
}
function processExportHeatmap(rows) {
console.log("processExportHeatmap rows.length "+rows.length);
var columns =["Region","CHR","position","snp_ids","JASS_PVAL"];
tabulate(rows,columns);
}
function processExportJASSPVAL(rows) {
console.log("processExportJASSPVAL rows.length "+rows.length);
var columns =["Region","CHR","position","snp_ids","JASS_PVAL"];
tabulate(rows,columns);
}
function tabulate(data, columns) {
console.log(data);
//var table = document.createElement("table");
var table = $('#pheTable');
//table.id="pheTable";
var thead = document.createElement("thead");
var tr = document.createElement("tr");
for (var i=0; i<columns.length; i++) {
if ((columns[i] != "ID")&&(columns[i] != "linkRef")){
var th = document.createElement("th");
th.innerHTML =columns[i];
tr.appendChild(th);
}
}
//var th = document.createElement("th");
//th.innerHTML ="Select";
//thead.appendChild(th);
thead.appendChild(tr);
table.append(thead);
//console.log(table);
//var idCounter=1;
var tbody = document.createElement("tbody");
for (var i=0; i<data.length; i++) {
//for (var j=0; j<columns.length; j++) {
//console.log(data[i]);
//console.log("id "+data[i]['ID']);
//}
var tr = document.createElement("tr");
//var val = data[i]['ID'];
//var linkRef = data[i]['linkRef'];
for (var j=0; j<columns.length; j++) {
var td = document.createElement("td");
td.innerHTML=data[i][columns[j]];
tr.append(td);
}
//var td = document.createElement("td");
//td.innerHTML='-';
//var val = data[i]['ID'];
// td.innerHTML= "<input id='chk_" + idCounter + "' name ='type' type='checkbox' value='" + val + "' />";
// idCounter ++;
//tr.append(td);
tbody.appendChild(tr);
}
table.append(tbody);
//header1.setAttribute("class", "header1" );
//return table;
var tmpArray =new Array();
for (var j=0; j<columns.length; j++) {
tmpArray.push({});
}
var table = $('#pheTable').dataTable( {
aoColumns: tmpArray,
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'pdf'
]
} );
//'copy', 'csv', 'excel', 'pdf'
/*new $.fn.dataTable.Buttons( table, {
buttons: [
{
text: 'Button 2',
action: function ( e, dt, node, conf ) {
alert( 'Button 2 clicked on' );
}
},
{
text: 'Button 3',
action: function ( e, dt, node, conf ) {
alert( 'Button 3 clicked on' );
}
}
]
} );*/
}
</script>
</head>
<body>
<div class="header" > </div>
<h2>Data Table Export</h2>
<div id='divContainer' width ="400px">
<table id ="pheTable" style="width :500px" class="display dataTable"></table>
</div>
<!-- <button id="btn1">Export</button> -->
</body>
</html>
<html>
<head>
<script src="js/jquery.min.js"></script>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css">
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.15/js/jquery.dataTables.js"></script>
<!-- datatables buttons pdf csv copy -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script src="js/pdfmake.min.js"></script>
<script src="js/vfs_fonts.js"></script>
<script src="https://cdn.datatables.net/buttons/1.3.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.3.1/js/buttons.print.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.3.1/js/dataTables.buttons.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.3.1/css/buttons.dataTables.min.css">
<script src="https://cdn.datatables.net/buttons/1.3.1/js/buttons.flash.min.js"></script>
<script src="https://malsup.github.io/jquery.blockUI.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" href="https://research.pasteur.fr/wp-content/themes/biologyx2/style.css" type="text/css" >
<style>
.header {
margin:0 0 30px 0;
padding: 5px 0 0 0 ;
height:50;
background-image: url('/static/img/bkg_part2_wthLabel.jpg');
background-color: transparent;
background-size:contain;
object-fit: contain;
background-repeat:no-repeat;
}
#image-top {height:80!important}
</style>
<script>
var selected = [];
var typeExport = sessionStorage.getItem("typeExport");
var idProject = sessionStorage.getItem("id");
console.log(idProject);
var selectedRegion = sessionStorage.getItem("selectedRegion");
var selectedChr = sessionStorage.getItem("selectedChr");
console.log(selectedRegion);
console.log(selectedChr);
if(typeExport =="localStat"){
Plotly.d3.csv("/api/projects/"+idProject+"/manhattan/"+selectedChr+"/"+selectedRegion, function(data){ processExportJASSPVAL(data) } );
}
else if (typeExport =="globalStat"){
Plotly.d3.csv("/api/projects/"+idProject+"/genome",
function(data){ processExportGJASSPVAL(data)});
}
else if(typeExport =="heatmap"){
Plotly.d3.csv("/api/projects/"+idProject+"/heatmap/"+selectedChr+"/"+selectedRegion,
function(data){ processExportHeatmap(data) } );
}
function processExportGJASSPVAL(rows) {
console.log("processExportGJASSPVAL rows.length "+rows.length);
console.log(rows[0]);
var columns =["CHR","JOSTmin","MiddlePosition","PVALmin","Region","snp_ids"]
tabulate(rows,columns);
}
function processExportHeatmap(rows) {
console.log("processExportHeatmap rows.length "+rows.length);
var columns =["Region","CHR","position","snp_ids","JASS_PVAL"];
tabulate(rows,columns);
}
function processExportJASSPVAL(rows) {
console.log("processExportJASSPVAL rows.length "+rows.length);
var columns =["Region","CHR","position","snp_ids","JASS_PVAL"];
tabulate(rows,columns);
}
function tabulate(data, columns) {
console.log(data);
var table = $('#pheTable');
var thead = document.createElement("thead");
var tr = document.createElement("tr");
for (var i=0; i<columns.length; i++) {
if ((columns[i] != "ID")&&(columns[i] != "linkRef")){
var th = document.createElement("th");
th.innerHTML =columns[i];
tr.appendChild(th);
}
}
thead.appendChild(tr);
table.append(thead);
var tbody = document.createElement("tbody");
for (var i=0; i<data.length; i++) {
var tr = document.createElement("tr");
for (var j=0; j<columns.length; j++) {
var td = document.createElement("td");
td.innerHTML=data[i][columns[j]];
tr.append(td);
}
tbody.appendChild(tr);
}
table.append(tbody);
var tmpArray =new Array();
for (var j=0; j<columns.length; j++) {
tmpArray.push({});
}
var table = $('#pheTable').dataTable( {
aoColumns: tmpArray,
dom: 'Bfrtip',
buttons: [ {
extend: 'csv',
text : 'Export to CSV',
filename: function(){
var d = new Date();
var n = d.getTime();
return 'Data_Table';
},
}]
} );
}
</script>
</head>
<body>
<div class="header" > </div>
<h2>Data Table Export</h2>
<div id='divContainer' width ="400px">
<table id ="pheTable" style="width :500px" class="display dataTable"></table>
</div>
</body>
</html>
......@@ -55,15 +55,15 @@
<div id="tabs-3">
<p><b>JASS: command line and web interface for the joint analysis of GWAS results</b><br />
Hanna Julienne, Pierre Lechat, Vincent Guillemot, Carla Lasry, Chunzi Yao, Robinson Araud, Vincent Laville, Bjarni Vilhjalmsson, Hervé Ménager, Hugues Aschard<br />
in: NAR Genomics and Bioinformatics, Volume 2, Issue 1, March 2020, lqaa003, <a href="https://doi.org/10.1093/nargab/lqaa003"> <FONT color=#0000FF>https://doi.org/10.1093/nargab/lqaa003</FONT></a></p>
in: NAR Genomics and Bioinformatics, Volume 2, Issue 1, March 2020, lqaa003, <a href="https://urldefense.com/v3/__https://doi.org/10.1093/nargab/lqaa003__;!!JFdNOqOXpB6UZW0!75infPACk5lQWcBTD-rE5FQb6Yk4WckKROxH7a5qa4ERTDyiliWfWLGe8-HIgjvh3Gk$"> <FONT color=#0000FF>https://doi.org/10.1093/nargab/lqaa003</FONT></a></p>
<p><b>Multitrait genetic-phenotype associations to connect disease variants and biological mechanisms</b><br />
Hanna Julienne, Vincent Laville, Zachary R. McCaw, Zihuai He, Vincent Guillemot, Carla Lasry, Andrey Ziyatdinov, Amaury Vaysse, Pierre Lechat, Hervé Ménager, Wilfried Le Goff, Marie-Pierre Dube, Peter Kraft, Iuliana Ionita-Laza, Bjarni J. Vilhjálmsson, Hugues Aschard<br />
preprint in: biorxiv, <a href=https://www.biorxiv.org/content/10.1101/2020.06.26.172999v1.full> <FONT color=#0000FF>https://www.biorxiv.org/content/10.1101/2020.06.26.172999v1.full</FONT></a></p>
preprint in: biorxiv, <a href="https://urldefense.com/v3/__https://www.biorxiv.org/content/10.1101/2020.06.26.172999v1.full__;!!JFdNOqOXpB6UZW0!75infPACk5lQWcBTD-rE5FQb6Yk4WckKROxH7a5qa4ERTDyiliWfWLGe8-HIV8Z7Cco$"> <FONT color=#0000FF>https://www.biorxiv.org/content/10.1101/2020.06.26.172999v1.full</FONT></a></p>
</div>
</div>
</body>
<footer id="colophon" class="site-footer" role="contentinfo">
<a href="http://www.pasteur.fr/en" target="_blank"><div id="footlogo"></div></a>
<a href="https://www.pasteur.fr/en" target="_blank"><div id="footlogo"></div></a>
</footer>
</html>
......@@ -7,7 +7,7 @@
<link rel="stylesheet" type="text/css" href="/css/jquery.dataTables.min.css">
<script type="text/javascript" charset="utf8" src="/js/jquery.dataTables.js"></script>
<script src="/js/jquery.blockUI.js"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" href="https://research.pasteur.fr/wp-content/themes/biologyx2/style.css" type="text/css" >
<style>
.header {
......@@ -180,11 +180,9 @@
console.log( data );
sessionStorage.setItem("id",data.id);
console.log(data.phenotypes);
//var monobjet_json = JSON.stringify(data.phenotypes[0]);
var monobjet_json = JSON.stringify(data.phenotypes);
var monobjet_json = JSON.stringify(data.phenotypes);
sessionStorage.setItem("phenotypes",monobjet_json);
console.log(data.phenotypes[0]["cohort"]);
//location.href = 'http://hub17.hosting.pasteur.fr/getVar.html';
location.href = 'chromo_heatmap_manhattan.html';
}
else if(status =="CREATING"){
......
git+https://github.com/hmenager/connexion.git#egg=connexion[swagger-ui]
git+https://github.com/hmenager/connexion.git@master#egg=connexion[swagger-ui]
aiohttp
python_dateutil
setuptools
......
......@@ -10,7 +10,18 @@ SETUP_DIR = os.path.dirname(__file__)
README = os.path.join(SETUP_DIR, 'README.md')
readme = open(README).read()
REQUIRES = ["connexion", "python_dateutil", "setuptools", "pandas", "tables", "scipy", "matplotlib", "celery", "h5py", "aiohttp", "numpy"]
REQUIRES = [
"connexion[swagger-ui] @ git+https://github.com/hmenager/connexion.git@master#egg=connexion[swagger-ui]",
"aiohttp",
"python_dateutil",
"setuptools",
"numpy",
"pandas",
"tables",
"scipy",
"matplotlib",
"celery",
]
setup(
name=NAME,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment