Commit 044bf43e authored by Andrew Cohen's avatar Andrew Cohen

Merge branch 'master' of git-bioimage.coe.drexel.edu:bioimage/leverjs

parents 4e63e5c8 d4853e3a
......@@ -134,6 +134,7 @@ function addToQ(leverCommand)
inProcessQ[i]={leverFile:leverCommand.leverFile,childProc:null,ID:leverCommand.ID};
// this will recall this same function. this time the command will go into this slot
addToProcessQ(leverCommand);
checkToProcessQ();
}
else {
// mark our status so we don't get clobbered waiting for child to start up...
......
......@@ -335,7 +335,7 @@ function buildEditProcessTables(Q)
// this is the one...
var status=Q.inProcessQ[i].status;
var cl = document.getElementById('editStatus');
cl.innerHTML="<option>"+status+"</option>" + cl.innerHTML;
cl.innerHTML="<option>"+status+"</option>" ;
// update UI based on status
setEditUI(status);
}
......
{
"name": "leverjs",
"version": "1.0.1",
"version": "1.0.2",
"description": "live cell & organelle image analysis",
"main": "elever/main.js",
"scripts": {
......@@ -54,6 +54,12 @@
"filter": [
"*.ico"
]
},
{
"from":"c:/Program Files/nodejs",
"filter":[
"node.exe"
]
}
]
},
......
[{"name":"LOG","type":"segment","description":"Laplacian of Gaussian filter with multi-thresh","params":{"channels":"1","minimumCellRadius_um":3,"maximumBlobRadius_um":200},"function":"+Segment.FrameSegment_log.m","dimension":2,"commandHost":"matlab","sha":"a12c5a7b46b3c447f7dfd50f89d92f225eb488e9"},{"name":"Ordinary Otsu","type":"segment","description":"adaptive threshold and segmentation -- simple and fast","params":{"channels":"1","minimumCellRadius_um":2,"maximumBlobRadius_um":200},"function":"+Segment.FrameSegment.m","dimension":2,"commandHost":"matlab","sha":"bce4637a36d68fc1a6e4b6f1971b0f2c92a23bcc"},{"name":"Texture Hole Fill","type":"segment","description":"morphologicial gradient of entropy filtered image -- slow and effective","params":{"channels":"1","minimumCellRadius_um":2,"maximumBlobRadius_um":200},"function":"+Segment.FrameSegment_texture.m","dimension":2,"commandHost":"matlab","sha":"f7e5cec423f92f6b4beb1144edf9b4be5f80d4b6"},{"name":"Fucci","type":"segment","description":"phase+FUCCI","params":{"minimumCellRadius_um":10,"maximumCellRadius_um":200,"FUCCIChannel":"[2,3]","PhaseChannel":1},"function":"+Segment.FrameSegment_FUCCI.m","dimension":2,"commandHost":"matlab","sha":"052bc06ce245acf143dab404b15f0711a579b585"},{"name":"Otsu 3D","type":"segment","description":"3D basic Otsu segmentation","params":{"minimumCellRadius_um":2,"maximumCellRadius_um":20,"channels":"[1,2]","denoise":"false","alphaLevels":"[1,1]"},"function":"+Segment.FrameSegment_3D.m","dimension":3,"commandHost":"matlab","sha":"266b78ebd0b95eb2ec3c1978dbfe3d20950e7e31"},{"name":"Mitosis 2D","type":"classify","description":"2D mitosis detection","params":{},"function":"+Mitosis.mitosis_2D.m","dimension":2,"commandHost":"matlab","sha":"4df36e4f85d33c4bf9c037c1139fd59417481af5"},{"name":"First Frame Extended Family","type":"classify","description":"add first frame segmentations to extFamilies","params":{},"function":"+Segment.firstFrameFamilies.m","commandHost":"matlab","sha":"69bf47ca6cb0a56e3a0095e1b0441702350e62ac"}]
\ No newline at end of file
[{"name":"LOG","type":"segment","description":"Laplacian of Gaussian filter with multi-thresh","params":{"channels":"1","minimumCellRadius_um":3,"maximumBlobRadius_um":200},"function":"+Segment.FrameSegment_log.m","dimension":2,"commandHost":"matlab","sha":"a12c5a7b46b3c447f7dfd50f89d92f225eb488e9"},{"name":"Ordinary Otsu","type":"segment","description":"adaptive threshold and segmentation -- simple and fast","params":{"channels":"1","minimumCellRadius_um":2,"maximumBlobRadius_um":200},"function":"+Segment.FrameSegment.m","dimension":2,"commandHost":"matlab","sha":"bce4637a36d68fc1a6e4b6f1971b0f2c92a23bcc"},{"name":"Texture Hole Fill","type":"segment","description":"morphologicial gradient of entropy filtered image -- slow and effective","params":{"channels":"1","minimumCellRadius_um":2,"maximumBlobRadius_um":200},"function":"+Segment.FrameSegment_texture.m","dimension":2,"commandHost":"matlab","sha":"f7e5cec423f92f6b4beb1144edf9b4be5f80d4b6"},{"name":"Fucci","type":"segment","description":"phase+FUCCI","params":{"minimumCellRadius_um":10,"maximumCellRadius_um":200,"FUCCIChannel":"[2,3]","PhaseChannel":1},"function":"+Segment.FrameSegment_FUCCI.m","dimension":2,"commandHost":"matlab","sha":"052bc06ce245acf143dab404b15f0711a579b585"},{"name":"Otsu 3D","type":"segment","description":"3D basic Otsu segmentation","params":{"minimumCellRadius_um":2,"maximumCellRadius_um":20,"channels":"[1,2]","denoise":"false","alphaLevels":"[1,1]"},"function":"+Segment.FrameSegment_3D.m","dimension":3,"commandHost":"matlab","sha":"37b91239d9b039189ec2a567f2226b959ab62a58"},{"name":"Mitosis 2D","type":"classify","description":"2D mitosis detection","params":{},"function":"+Mitosis.mitosis_2D.m","dimension":2,"commandHost":"matlab","sha":"4df36e4f85d33c4bf9c037c1139fd59417481af5"},{"name":"First Frame Extended Family","type":"classify","description":"add first frame segmentations to extFamilies","params":{},"function":"+Segment.firstFrameFamilies.m","commandHost":"matlab","sha":"69bf47ca6cb0a56e3a0095e1b0441702350e62ac"}]
\ No newline at end of file
lever.js readme
INSTALLING
<h1> welcome to lever.js </h1>
prerequisites:
i'm glad you're here. leverjs is a great tool for live cell & organelle image analysis. the goal is for the software to be a resource to the community (that's you). i'm grateful for help/feedback, and i support any efforts to make the tools more broadly useful.
<h1> introduction </h1>
there are two ways to run lever -- standalone or client server. it's mostly the same code either way, but there are some key differences. both use a node.js backend, with a webgl2 rendering client. the standalone uses the http://electron.atom.io framework to combine nodejs with chromium into an executable that can be run on windows/mac or linux. the client server uses nodejs for the server, combining google's v8 javascript engine with operating system support (e.g. file system access and manipulation). the client is any webgl2 compatible browser -- currently chrome (suggested), firefox or opera. note that edge and safari are not supported yet (hopefully soon).
most functionality is available from either stand-alone or client-server. the exception is importing microscope files into the lever format, and using the scriptable visualization for movie making -- both of these are only available in the stand-alone (electron) app.
there are two main entry points as well -- experiment window and image window. experiment window lists all movies in a folder tree, and allows processing multiple movies. the stand-alone experiment viewer has an import tab that will convert any microscope file format into the lever format (any format compatible with bioformats -- see http://www.openmicroscopy.org/bio-formats/).
the image window shows the images together with analysis results, with play/pause, zoom, view control, etc. the stand-alone image window has a server tab that allows starting a client/server session and also exposes scriptable control of the viewer, including getting/setting view parameters and capturing screen shots of the rendered window to a remote client like matlab or python for scriptable movie making.
<h1> release notes </h1>
this is a preview release. this is for collaborators with Andy Cohen's (https://bioimage.coe.drexel.edu) group to have a chance to try out the new software, test features and provide feedback. a manuscript describing this work is being planned now. once that manuscript is published, the program will be released free and open source...(gpl? mit? bsd? suggestions welcome...) until then, the software is not licensed for redistribution, and is not intended for public use.
please log any issues or suggestions via the gitlab server. you can create an account, and then open issues for suggestions/bugs/questions.
<h1>INSTALLING FROM PREBUILT</h1>
open this link: <https://leverjs.net/download/>. click on the latest .exe file. (note - sorry i don't have a code signing cert yet). that is really my code above,
on my server, verified by the https. so, tell your browser to just install it.
you can download sample image data from the link as well, as well as a zip file of a recent git archive (better to see "INSTALLING FROM SOURCE" below)
you can also optionally (sort of optionally, you really will want this) install the matlab 2017a runtime so analysis and image import to work (note if you happen to have matlab 2017a already installed you can step this step...):
http://ssd.mathworks.com/supportfiles/downloads/R2017a/deployment_files/R2017a/installers/win64/MCR_R2017a_win64_installer.exe
this is for windows 64 only. no admin account credentials required. there's a leverjs program that starts the experiment window, and a shortcut to start the image window. the experiment window has an import tab. point that at your microscope file, pick an output folder and watch your hard drive work hard. when that's done, you can add algorithms, process all your datasets,start a server, script the visualization from matlab or python to make movies, etc...more details on how to/tutorial stuff to come soon...
<h1>INSTALLING FROM SOURCE</h1>
<h2>prerequisites</h2>
0. install node.js
1. install python 2.7 (and make sure it's on your path!)
2. if you want to analyze the images, and you don't have matlab2017a installed, download and and run the mcr installer from here: http://ssd.mathworks.com/supportfiles/downloads/R2017a/deployment_files/R2017a/installers/win64/MCR_R2017a_win64_installer.exe
installation
<h2>installation</H2>
2. start a node.js command prompt
3. git clone https://git-bio....
4. cd leverjs
5. npm install
5. npm update
6. npm run postinstall
7. now you can run the electron app:
......@@ -28,12 +62,33 @@ node server.js --port=3000 /path/to/.leverFiles
and browse to localhost:3000 using chrome,firefox or opera (any webgl2 compliant browser)
notes
<h3>notes</h3>
a. you will need to have matlab2017a installed, or the runtime. downloaed the runtime <ACK!>
b. the software should work on windows, unix and mac. for unix, the matlab path in cmdloop.js is hardcoded (ACK!).
for mac, i don't have a mac so it's never been tried :) but probably the hardcoded matlab path is a deal breaker...
baby steps...
<h1>debugging</h1>
0. use microsoft's visual studio code. really. it is the best option for node/electron development.
a. from the debug tab (bug icon), find the launch.json (gear icon). pick from the configuration dropdown which to run.
leverjs defaults to experiment window (render process). image window (render process) is also useful. electron is a two
process application - a main process that manages o/s / node stuff and a render process that manages chromium (browser)
window stuff.
b. you can also generally bring up the chromium or browser debugger with shift+ctrl+I. this is useful for debugging
client side javascript.
1. to debug matlab process, edit package.json and set 'noLaunchMatlab' to true. start the image window renderer program, pick your algorithms and select reseg all (or next). then start matlab. run matlabpollDB('\path\to\leverFile.LEVER'). Or, just run matlabPollDB and it usually finds the right LEVER file automagically (from lever.state tidbit left by CmdLoop.js).
<h1>scripting and image capture for visualization</h1>
see the scripting tab in the electron (stand-alone) image window for more details...
<h1>security</h1>
security is designed into leverjs at every level, from the firewall, to the nginx reverse proxy, to auth0 (https://auth0.com) user api tokens, to programmatic access tokens using private/public key signing. more details to follow soon...
in the interim, to access the api functionality, you can use auth0 for use authentication (details TBD) or you can generate your own keys for programmatic authentication (run node.exe leverjs\keyGen.js, see matlab\+Client for examples).
Markdown is supported
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