Commit 811bc1ca authored by Bryan  BRANCOTTE's avatar Bryan BRANCOTTE
Browse files

Handle corrupted worktable, and invalid gencov

raise an error 500 when such errors are caught
Catch error 500 in frontend, and show error detail to user
parent 2d7b2cdf
......@@ -64,10 +64,14 @@
<b>Test performed:</b>Omnibus
</v-col>
<v-col >
<v-card>
<v-card style="padding:16px">
Genetic covariance derived with <a href="https://www.nature.com/articles/ng.3406">the LDScore</a>
The value on the diagonal correspond to the heritability of the trait.
<div id="divCorrelationHeat" ref="divCorrelationHeat"><!-- Plotly chart will be drawn inside this DIV --></div>
<div v-if="this.gencov && 'error' in this.gencov">
<v-icon style="margin-top: -8px;" color="error">mdi-alert-octagon</v-icon>
Computation failure: <v-card-text style="white-space: pre;">{{gencov.error}}</v-card-text>
</div>
<div v-else id="divCorrelationHeat" ref="divCorrelationHeat"><!-- Plotly chart will be drawn inside this DIV --></div>
</v-card>
</v-col>
</v-row>
......@@ -615,9 +619,11 @@ methods:{
await this.$axios.$get('/projects/'+this.project.id+"/metadata").then((function (result4) {
this.metadata = result4;
}).bind(this));
}).bind(this));
}).bind(this)).catch(error => {
console.error(error.response.data.detail);
this.gencov = {'error': error.response.data.detail}
this.isready=true;
});
}
for (const step in result.status){
if (result.status[step] !=="READY"){
......
......@@ -7,6 +7,7 @@ from pathlib import Path
from typing import List
from starlette.responses import RedirectResponse, JSONResponse
from tables import HDF5ExtError
from jass import util
from jass.config import config
......@@ -88,7 +89,12 @@ def project_detail(project_id: str):
@app.get("/api/projects/{project_id}/gencov")
def project_gencov_view(project_id: str):
return load_project(project_id=project_id).get_project_gencov()
try:
return JSONResponse(load_project(project_id=project_id).get_project_gencov())
except ValueError as e:
raise HTTPException(status_code=500, detail=str(e))
except HDF5ExtError as e:
raise HTTPException(status_code=500, detail=str(e))
@app.get("/api/projects/{project_id}/metadata")
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment