Coder Social home page Coder Social logo

cytomine / cytomine-core Goto Github PK

View Code? Open in Web Editor NEW
70.0 17.0 28.0 251.27 MB

Cytomine-Core is the main web server implementing the Cytomine API

Home Page: http://doc.cytomine.org

License: Apache License 2.0

Groovy 96.77% Shell 0.17% Makefile 0.01% C 0.20% Perl 0.03% Java 2.51% Dockerfile 0.09% Batchfile 0.13% JavaScript 0.08% HTML 0.01%
cytomine digital-pathology machine-learning whole-slide-imaging computational-pathology

cytomine-core's Introduction

Cytomine Core

Cytomine is, to the best of our knowledge, the first open-source rich internet application to enable highly collaborative and multidisciplinary analysis of multi-gigapixel imaging data.

Overview

Build at University of Liège, Cytomine supports both remote visualization, collaborative semantic annotation, and semi-automated analysis through the web, making it an ideal tool for collaborative research, teaching and diagnosis in every large-image related topics.

Its design was driven by life science and bioimage informatics research needs: software versatility, interoperability, modularity and extensibility, image recognition tailored via learning from ground-truth data and proofreading tools, reproducible research, and data accessibility and reusability.

It is being used for years by our collaborators working with large sets of bioimages in numerous domains including cancer research, development, and toxicology, and is now adapted for pedagogical purposes.

Overall, we believe Cytomine is an important new tool of broad interest to foster active communication and distributed collaboration between life, computer and citizen scientists, but also physicians, teachers and students, in an unprecedented way using machine learning and web communication mechanisms.

Documentation

Full documentation can be found online.

Install

See our Cytomine-bootstrap project to install it with Docker

Develop

Check how to install a development environment for Cytomine.

References

When using our software, we kindly ask you to cite our website url and related publications in all your work (publications, studies, oral presentations,...). In particular, we recommend to cite (Marée et al., Bioinformatics 2016) paper, and to use our logo when appropriate. See our license files for additional details.

  • URL: http://www.cytomine.org/
  • Logo: Available here
  • Scientific paper: Raphaël Marée, Loïc Rollus, Benjamin Stévens, Renaud Hoyoux, Gilles Louppe, Rémy Vandaele, Jean-Michel Begon, Philipp Kainz, Pierre Geurts and Louis Wehenkel. Collaborative analysis of multi-gigapixel imaging data using Cytomine, Bioinformatics, DOI: 10.1093/bioinformatics/btw013, 2016.

License

Apache 2.0

Code of Conduct

We subscribe to the Contributor Convenant Code of Conduct for a respectful community.

cytomine-core's People

Contributors

0asa avatar charybdebe avatar clafouti avatar g-michiels avatar geektortoise avatar gvincke avatar loic911 avatar rmaree avatar stevben avatar urubens avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cytomine-core's Issues

[CYTO-1079] Envoi d'une image vers un autre projet

[reporter="lrollus", created="mer., 27 nov. 2013 12:50:36 +0100", resolved="mar., 3 déc. 2013 11:01:44 +0100"]

Envoi d'une image vers un autre projet.
Avec possibilité de copier les méta données.

[CYTO-1117] imageserver: mrxs histogenex

[reporter="rmaree", created="mer., 15 janv. 2014 20:17:10 +0100"]

Essai d'upload archive d'un mrxs non concluant:

16266300007_CD31.zip
Taille: 1.8Go
Contenu:
16266300007_CD31.mrxs dans la racine.
16266300007_CD31/ sous répertoire

Log webserver .31:
15-01-2014 17:33:56,632 INFO RequestFilters - restUploadedFile.add: user:14
[id:null, projects:[94152784], path:/tmp/imageserver_buffer, filename:14/1389803581778/16266300007_CD31.zip, originalFilename:16266300007_CD31.zip, contentType:application/octet-stream, storages:[1776354\
1], user:14, ext:zip, size:1913960483]
15-01-2014 17:33:57,484 INFO RequestFilters - restUploadedFile.add Request took 853ms

Comment voir log "upload" server ???

[CYTO-1105] Créer domaine NestedImageInstance

[reporter="stevben", created="lun., 16 déc. 2013 16:40:04 +0100", resolved="mer., 18 déc. 2013 10:32:25 +0100"]

Créer un domaine qui hérite de ImageInstance.

Champs :

Integer x (nullable : false)
Integer y (nullable : false)
ImageInstance parent (nullable : false)

URLMappings :

api/imageinstance/{id}/nested.json (POST : add, GET : list)
api/imageinstance/{id}/nested/{_id}.json (GET : show, PUT : update, DELETE : delete)

[CYTO-1119] Review cyto style buggé

[reporter="rmaree", created="sam., 18 janv. 2014 13:34:24 +0100"]

Depuis nouveau style, review cyto buggé et peu utilisable:

  • 4 crops sur 1ère ligne puis 5ième crop sur 2ième ligne
  • On ne voit plus les flèches << et >>
  • Les box des terms sont rectangulaires (un par ligne)

[CYTO-1097] Bug generate_mask couche review

[reporter="rmaree", created="mar., 10 déc. 2013 12:38:18 +0100", resolved="mer., 11 déc. 2013 09:29:12 +0100"]

Le masque généré par le client python generate_mask renvoie étrangement
une image toute noire pour deux images en particulier d'un projet (alors
que les 37 autres du projet sont OK).

Il s'agit des images qui pourtant ont bien une review layer avec le bon
terme:
http://beta.cytomine.be/#tabs-image-91532730-91638957-
http://beta.cytomine.be/#tabs-image-91532730-91639832-

Le service renvoie du tout noir alors que ça ne devrait pas être le cas:
http://beta.cytomine.be/api/imageinstance/91638957/mask.png?x=5000&y=5000&w=4000&h=4000&review=true

Sans l'argument &review=true ça renvoie bien le masque des annotations
manuelles:
http://beta.cytomine.be/api/imageinstance/91638957/mask.png?x=5000&y=5000&w=4000&h=4000

Les polygones de la couche review ont-ils qqch de spécial qui provoque des erreurs non interceptées ?

[CYTO-1120] Liste tous les users visibles dans panneau ontology nouvel utilisateur ?

[reporter="rmaree", created="mar., 21 janv. 2014 21:17:51 +0100"]

Pour un nouvel utilisateur créé, quand je vais dans http://beta.cytomine.be/#ontology
Je vois apparaître la liste complète de tous les utilisateurs
Ontology :
Creator : Aceto Jessica (jaceto)Adriaens Stephanie (sadriaens)Ansen Pierre (pansen)Arafa Mohammad (marafa)Barnabé Pierre (pbarnabe)Bekaert Sandrine (sBekaert)Bendou Hocine (hbendou)Bertrand Virginie (vbertrand)Blacher Silvia (sblacher)Botta Vincent (vbotta)Bo...

Shared with : Aceto Jessica (jaceto), Adriaens Stephanie (sadriaens), Ansen Pierre (pansen), Arafa Mohammad (marafa), Barnabé Pierre (pbarnabe), Bekaert Sandrine (sBekaert), Bendou Hocine (hbendou), Bertrand Virginie (vbertrand), Blacher Silvia (sblacher), Botta Vincent (...

Pas normal si ?

[CYTO-1104] Layer image

[reporter="botta", created="sam., 14 déc. 2013 23:59:52 +0100"]

Suite à une petite discussion avec Ben vendredi, on se demande dans quelle mesure il serait possible/facile d'ajouter la possibilité d'ajouter des couches de type "image". De la même manière qu'on ajouter les annotations, je souhaiterai pouvoir afficher des images en surcouche sur l'image originale.

Cela pour permettre de créer des "Software" qui ne renvoient pas que des annotations, mais aussi des images. Images sur lesquelles on pourrait refaire des traitements en vue de produire soit d'autres images, soit des annotations.

Il faudrait donc que cette couche soit similaire à une instance d'image grossomerdo... A discuter.

[CYTO-1121] Deux espaces (coordonnées)

[reporter="botta", created="mer., 22 janv. 2014 14:38:00 +0100"]

Il existe deux espaces (de dimension) à l'heure actuelle. Celle de l'UI dont le (0,0) est dans le coin supérieur gauche. Et celle d'OpenLayers, dont le (0,0) est dans le coin inférieur droit. Certains "services" travaillent dans le premier espace et d'autres dans le second. Ca implique de devoir faire des transformations un peu cabalistique selon ce que l'on essaie de faire via les différents clients.

Cette inconsistance entraine une gymnastique cabalistique inutile. Comme la plupart des librairies existantes sont en désaccord avec OpenLayer, il faudrait, selon moi, changer l'espace d'OpenLayer et par conséquent modifier toutes les annotations déjà présentent dans la DB (grossomerdo : annotation.Y = image.height - annotation.Y).

Qu'en pensez-vous ?

[CYTO-1106] Last opened images

[reporter="stevben", created="mar., 17 déc. 2013 12:51:13 +0100", resolved="mer., 18 déc. 2013 14:48:40 +0100"]

Un user nouvellement créé voir une image qui ne lui appartient pas dans ‘last opened images’

[CYTO-1082] Comparaison statistique de couches

[reporter="rmaree", created="mer., 27 nov. 2013 18:10:59 +0100", resolved="lun., 16 déc. 2013 15:03:22 +0100"]

Pour avoir des informations plus quantitatives sur les résultats des algos par rapport aux couches reviewées, ce serait utile de pouvoir générer des statistiques qui comparent deux couches entre elles (en l'occurence la couche d'un job, et la couche finale reviewée).

On pourrait imaginer des stats suivantes:

  • Nbre d'annotations rejetées
  • Nbre d'annotations acceptées et non modifiées
  • Nbre d'annotations acceptées et modifiées
  • Nbre d'annotations ajoutées (non présentes dans la couche algo)
  • Pourcentage d'"overlap" (= surface de l'intersection des deux couches)
  • Pourcentage de "surplus" (= surface de ce qui était détecté par l'algo mais non retenu après review)
  • Pourcentage de "manquement" (= surface qui n'était pas détectée par l'algo mais ajoutée par la review)

Toutes ces opérations peuvent-elles être réalisées par le serveur de bd spatiale.

[CYTO-1103] Stats Mesures spatiales

[reporter="rmaree", created="sam., 14 déc. 2013 10:27:47 +0100"]

Ce serait utile de pouvoir générer des statistiques de mesures spatiales au travers d'une lame. Comme p.ex. dans l'article Balsat et al. 2013 qui montre que des mesures simples comme l'intensité/surface de marqueurs ne suffisent pas à comprendre des pathologies, mais que des mesures spatiales permettent de voir des différences (p.ex. la distribution des distances entre un groupe d'annotations et un autre, p.ex. de certaines cellules par rapport à une zone d'un tissu au bord d'une tumeur, ou p.ex. la distribution de distances des tumeurs par rapport au bord ou au centre d'un poumon, ou la distance la plus courte moyenne entre ilôts tumoraux,...).

Je pense que c'est aussi une façon de nous différencier par rapport à d'autres logiciels qui ont moins la possibilité de générer ce genre de stats.

Globalement ce serait intéressant Loïc que tu documentes un peu l'utilisation de requêtes spatiales et/ou de la JTS pour permettre de
faire ce genre de choses.

[CYTO-1112] Barre progression upload ?

[reporter="rmaree", created="jeu., 19 déc. 2013 15:35:37 +0100", resolved="sam., 28 déc. 2013 09:10:54 +0100"]


On ne voit plus la barre de progression quand on uploade une fichier via l'interface web ?

[CYTO-1122] Retirer/manager images d'un projet

[reporter="rmaree", created="ven., 24 janv. 2014 17:13:30 +0100"]

Des utilisatrices me demandent de pouvoir retirer des images de projet (soit l'upload a foiré, soit elles se sont trompées de projet, soit elles n'ont plus besoin de ces images, ...). Comme je suspecte que ce genre de demandes sera fréquent, ce serait bien de leur permettre de pouvoir le faire.

Soit:

  • ajouter une option "Remove image from project" dans la liste des images, au même titre que les options "Copy images", "Explore", ...
  • réhabiliter le panneau "Images" qui permettait de retirer/ajouter des images du projet au storage. Depuis le dernier update du style ce n'est plus utilisable.

[CYTO-1115] imageserver: svs JPEG2000 schema 33003

[reporter="rmaree", created="mer., 15 janv. 2014 20:12:56 +0100"]

Problème décodage certains svs:

I think you might have problems decoding JPEG2000 schema 33003
compressed images with your openjpeg library.
When I was researching for my platform tools, I also encountered this
problem.
Since it seems, that openjpeg has some issues in their package updates I
found a fix, which is working for me.
I also posted it to the openslide github issue tracker
(openslide/openslide#130) and got in touch
with the developers.
The fix works for OS X, Debian, and Ubuntu, as you can see from the
comments.
Which OS/openslide/openjpeg versions are you running the image
conversion on?

[CYTO-1084] Graphique les noms sont tronqués

[reporter="lrollus", created="ven., 29 nov. 2013 10:33:48 +0100", resolved="lun., 16 déc. 2013 15:44:50 +0100"]

Ouvrir un dashboard d'un projet.
Dans les graphiques, les titresdes axes en bas sont tronqués

[CYTO-1114] Label property plus visible dans la layers

[reporter="lrollus", created="mar., 14 janv. 2014 08:05:20 +0100", resolved="jeu., 23 janv. 2014 13:40:33 +0100"]

Si on veut afficher les value d'une key dans une layer, ca fonctionne plus.

Sur beta, c'est KO mais sur shareveiw c'est OK (même version)

[CYTO-1095] What does the 'b' (browse) shortcut do ?

[reporter="botta", created="mar., 10 déc. 2013 11:36:41 +0100", resolved="mar., 10 déc. 2013 22:34:57 +0100"]

I was expecting it to suspend the current action (like creating a polygon) and allow to move/zoom (while keypress 'b'). Once released, we go back to the current action.

[CYTO-1116] imageserver: support Roche TIF

[reporter="rmaree", created="mer., 15 janv. 2014 20:14:54 +0100"]

Support Roche TIF possible via :

vips im_vips2tiff 11GH076256_A2_CD3_100.tif:2 output_image.tif:deflate,,flat,,,,8

puis:

vips tiffsave output_image.tif output_image_compress.tif --tile --pyramid --compression jpeg --tile-width 256 --tile-height 256

Benjamin va développer lecture headers tiff pour extraire info et différencier TIF Roche d'un TIF normal.

[CYTO-1096] Faire la chasse au synchronized dans les services

[reporter="lrollus", created="mar., 10 déc. 2013 12:15:40 +0100", resolved="mer., 11 déc. 2013 09:31:20 +0100"]

synchronized (this.getClass()) {
}

Evite les deadlock et autres dirty update mais très problématique si beaucoup d'utilisateur (cas IFRES) car les requêtes se mettent en attente.
Si PING = 500ms en moyenne, qu'il est exécuté toutes les 10sec, le serveur sera vite dépassé.

C'est le cas des PING, USERPOSITION, ...
Supprimer un max de synchronized et tester avec des stress tests pour vérifier la robustesse en multithreading et le gain de perf.
+ Bypasser GORM pour les requêtes de ce type

[CYTO-1102] Outil nuage de points

[reporter="rmaree", created="jeu., 12 déc. 2013 14:55:59 +0100"]

Ce serait très utile pour ajuster des paramètres d'algo pour des applications de comptage de cellules image par image, d'avoir un outil de tracé de nuage de points (scatter plot) avec en abscisse les comptages d'un utilisateur, et en ordonnées les comptages d'un job.

Pour cela, j'imagine un onglet "Stats" qui permet de sélectionner:
1) une image ou une liste d'images
2) un id_term identifiant le term utilisé pour définir les régions d'intérêt dans lesquelles l'utilisateur humain veut comparer son comptage avec celui d'un algo
2) une propriété A (les comptages manuels étant stockés comme propriété associé aux ROI)
3) une propriété B (les comptages des algos étant stockés comme propriété associé aux ROI)

P.ex. le fait de sélectionner va générer pour une image avec 3 annotations du ROI term une liste du type:
valeurA,valeurB
35,45
20,23
28,32

Qu'on pourrait injecter dans d3js
http://mbostock.github.io/d3/talk/20111116/iris-splom.html
http://benjiec.github.io/scatter-matrix/demo/demo.html

Il n'y a pas besoin que ce soit bien léché dans un premier temps mais ce serait un grand gain de temps par rapport à exporter en Excel puis faire les graphiques image par image ou utiliser des outils de stats tiers. Dans un second temps ça permettrait aussi facilement de faire un nuage de point interactif en permettant de cliquer sur un point du scatter plot pour sauter en mode explore vers l' annotation pour voir les différences entre le comptage humain/algo.

[CYTO-1107] Last Opened Project

[reporter="stevben", created="mar., 17 déc. 2013 12:58:01 +0100", resolved="mer., 18 déc. 2013 14:40:43 +0100"]

Plantage JS si aucun projet

[CYTO-1110] Support gros fichier storage shareview

[reporter="lrollus", created="mer., 18 déc. 2013 15:21:57 +0100", resolved="jeu., 19 déc. 2013 09:04:17 +0100"]

-Ajouter properties tmpdir
-Faire pointer sur /images/tmp/
-Faire un export de cette propriété depuis l'application cytomine-processing

[CYTO-1094] Shortcuts do not toggle button states

[reporter="botta", created="mar., 10 déc. 2013 11:30:30 +0100", resolved="mar., 10 déc. 2013 22:29:33 +0100"]

When using the shortcuts, we don't know what is the current tool being selected/in use. It forces to clic again in the toolbar and renders the shortcuts almost useless...

[CYTO-1080] Ajouter raccourci clavier navigation

[reporter="rmaree", created="mer., 27 nov. 2013 13:05:02 +0100", resolved="mar., 3 déc. 2013 11:07:28 +0100"]

Ce serait très pratique d'avoir un raccourci clavier pour retourner en mode navigation/déplacement dans une lame en mode explore et review, sinon chaque fois qu'on fait un cut ou join ou dessin après il faut revenir cliquer sur la flèche.

Je propose "b" pour "browse" comme "n" est déjà pris.

[CYTO-1081] Layer job plus visible ?

[reporter="rmaree", created="mer., 27 nov. 2013 16:56:46 +0100", resolved="lun., 2 déc. 2013 11:25:09 +0100"]

Avant quand on cliquait sur une annotation d'un job depuis le tab annotations d'un projet: p.ex. pyxitsegmentationmodel 27 11 2013 16:45:10 http://beta.cytomine.be/#tabs-annotations-7873585

... Cela ouvrait la vue explore avec la couche du job cochée.
Maintenant (depuis que toutes les layers ne sont plus listées) la couche job n'est plus sélectionnée par défaut et pire elle n'est plus accessible (elle n'apparaît pas dans la liste déroulante).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.