GithubHelp home page GithubHelp logo

caseygrun / oufti Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 11.82 MB

Fork of the Oufti software package to add functionality and improve user interface

License: Other

C 0.90% C++ 2.79% MATLAB 96.15% M 0.01% Objective-C 0.05% HTML 0.09% Perl 0.01%

oufti's Introduction

DOI

This is a fork of the Oufti software package, to allow correction lineage assignment errors and other improvements to the user interface. This version also supports more modern versions of MATLAB.

Prerequisites

Updated to support MATLAB R2018b. Both Mac and PC versions are supported.

In addition, the following toolboxes are required:

Image Processing Toolbox                              Version 10.3        (R2018b)
Optimization Toolbox                                  Version 8.2         (R2018b)
Parallel Computing Toolbox                            Version 6.13        (R2018b)

Install and run

To run:

  1. Ensure this folder is in your MATLAB path (right click and select "Add to Path > Selected Folders and Subfolders")

  2. run the script oufti by entering:

     oufti
    

    in the MATLAB command window, or opening the script source/gui/oufti.m and clicking "Run"

New Features

Lineage Editing

  • To change the cell number of an existing cell, select a cell and enter a new cell number in the “Selected cell” box in the lower left
  • To add or remove a division event, select the cell on the frame before it divides, and edit the value of the “Descendants” box. To add a division event, type two new cell numbers, separated by a space and press Enter. To remove a division event, type "" and press Enter
  • To view the lineage tree, go to Tools > display lineage tree. Click on any cell in the tree to go to the frame where it was birthed.

Keyboard shortcuts

  • A: toggle manually add cell mode
  • J: join two selected cells
  • P: split selected cell into two (hold shift and click to place the septum)
  • R: refine selected cell

Mouse handling

  • Use the scroll wheel in the main window to move between frames
  • Hold shift and drag to select multiple cells

Undocumented oufti features

  • Undo with ctrl+Z
  • When manually adding a cell, you can choose the number its assigned by holding shift when double-clicking or pressing Enter to finish drawing the cell.
  • When splitting a cell, if you hold shift, you can click to choose the position of the septum

Lineage editing tips

  • The lineage editing features show lots of warnings. This is to help you avoid making mistakes and to force you to be explicit in your intentions.
  • Keep an eye on the Lineage Tree view while you're editing; it will help you notice cells which have no ancestors ("Orphaned" cells) or cells which have more than two daughter cells.
  • It works best to go frame by frame, starting from the beginning of the movie---both for segmentation but also for lineage tracing. Choose "Time Lapse" mode under "Detection & analysis," but then click the button "This Frame" instead of "All Frames"
  • In general, make changes on the first frame where the problem occurs, then let oufti propagate the fixes forward. For instance, if you need to renumber a cell, do it on the first frame with the wrong number, or the frame the cell was birthed.
  • When editing lineages, work in the following order:
    1. Remove any spurious division events.
    2. Make sure the same cell doesn't change number. If oufti creates a new cell with the wrong number, select the first frame where that wrong cell appears and change the number; this will give the cell the correct ancestry
    3. Create any missing daughter cells, or renumber as necessary. This is kind of tricky. For example, if cell 5 divides on frame 2 and oufti doesn't realize it, it may number the new cells 5 and 6 on frame 3. On frame 3, Change the number of the mother cell (cell 5) to a new number (you can enter "" and oufti will pick the first one available); you will get a warning about this, choose Rename starting from this frame.
    4. Create missing division events. Go to the last frame before the mother cell divides, and enter the numbers of the new daughter cells in the "Descendants" box.
    5. Only edit "Ancestors" if you get a warning from the Lineage Tree view about broken ancestors. For technical reasons, it is always better to edit descendants than ancestors. Do not edit the "Ancestors" field to create a division event.

oufti's People

Contributors

caseygrun avatar

Stargazers

Marta avatar  avatar

Watchers

 avatar

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.