Coder Social home page Coder Social logo

tferr / scripts Goto Github PK

View Code? Open in Web Editor NEW
24.0 6.0 19.0 9.71 MB

:microscope::cocktail: Home of the ImageJ BAR: A collection of Broadly Applicable Routines for ImageJ

Home Page: https://imagej.net/BAR

License: GNU General Public License v3.0

Java 58.26% Python 14.38% Clojure 0.58% Groovy 4.09% JavaScript 0.71% Ruby 0.60% Shell 0.43% ImageJ Macro 20.94%
image-analysis scripts-collection scientific-workflows microscopy imagej imagej2 java beanshell python jython

scripts's Introduction

IJ BAR

DOI Latest Release Issues Travis GPL License

Welcome to the IJ BAR: A collection of Broadly Applicable Routines for ImageJ, the de facto standard in scientific image processing in the life sciences.

To install BAR you just need to subscribe to the BAR update site. To know more about BAR, have a look at its Wiki Page. Below is a lis of some of the BAR routines:

Routines that complement built-in commands in the ImageJ Analyze> menu.

  1. (py) LoG-DoG Spot Counter
  2. (bsh) Multichannel Plot Profile
  3. (bsh) Multichannel ZT-axis Profile
  4. (bsh) Smoothed Plot Profile
  5. (groovy) Multi ROI Profiler
  6. (groovy) Normalize Against F0
  7. (groovy) Register Against Average

Operations related to statistics, profiles, histograms and curve fitting.

  1. (bsh) Create Boxplot
  2. (bsh) Create Polar Plot
  3. (ijm) Distribution Plotter
  4. (bsh) Find Peaks
  5. (bsh) Fit Polynomial
  6. (java) Interactive Plotting
  7. (py) NN Distances

Aiders for the annotation of scientific images.

  1. (ijm) Combine Orthogonal Views
  2. (bsh) Cumulative Z-Project
  3. (ijm) ROI Color Coder
  4. (ijm) ROI Magnifier Tool

Routines for partitioning images into analyzable parts.

  1. (ijm) Apply Threshold To ROI
  2. (ijm) Clear Thresholded Pixels
  3. (bsh) Remove Isolated Pixels
  4. (ijm) Segment Profile Tool
  5. (java) Shen-Castan Edge Detector
  6. (ijm) Threshold From Background
  7. (ijm) Wipe Background

Productivity tools.

  1. (java) Commander
  2. (ijm) Calibration Menu
  3. (ijm) List Folder Menu
  4. (java) New Snippet
  5. (ijm) Shortcuts Menu
  6. (ijm) ROI Manager Tools
  7. (ijm) Toolset Creator

An infrastructure to help users tinkering with ImageJ.

  1. Multi-language libs: User-defined libraries (BeanShell, Clojure, Groovy, IJ Macro, JavaScript, Python, Ruby)
  2. Boilerplate Scripts, multi-language skeletons for new scripts that load lib files.
  3. Script Templates, multi-language snippets

Maven project implementing the backbone of BAR, including several IJ1 plugins and IJ2 commands, External Ops, and the BAR API.

  1. Introduction to Scripting: 101 of (IJ1) scripting using BeanShell and Python (Jython)

  2. External Ops: Advanced tutorial exemplifying how to provide ImageJ Ops

Help?

Citations

  • To cite BAR:

DOI

  • BAR scripts are known to have contributed to the following publications:

    1. Parinejad et al. Disruption of an EAAT-Mediated Chloride Channel in a Drosophila Model of Ataxia (2016), 36(29):7640-7. PMID 27445142
    2. Bouvier et al. High Resolution Dissection of Reactive Glial Nets in Alzheimer's Disease (2016), 19;6:24544. PMID 27090093
    3. Ferreira et al. Neuronal morphometry directly from bitmap images. Nature Methods (2014), 11(10):982–984. PMID 25264773
    4. Pope and Voigt. Peripheral glia have a pivotal role in the initial response to axon degeneration of peripheral sensory neurons in zebrafish. PLoS ONE (2014), 9(7):e103283. PMID 25058656
    5. Medda et al. Investigation of early cell-surface interactions of human mesenchymal stem cells on nanopatterned β-type titanium-niobium alloy surfaces. Interface Focus (2014), 4(1):20130046. PMID 24501674
    6. Ferreira et al. Dendrite architecture is organized by transcriptional control of F-actin nucleation. Development (2014), 141(3):650–60. PMID 24449841
    7. Dobens and Dobens. FijiWings: an open source toolkit for semiautomated morphometric analysis of insect wings. G3 (Bethesda) (2013), 3(8):1443-9. PMID 23797110
    8. van der Meer et al. Three-dimensional co-cultures of human endothelial cells and embryonic stem cell-derived pericytes inside a microfluidic device. Lab Chip (2013), 13(18):3562-8. PMID 23702711
    9. Soulet et al. Automated filtering of intrinsic movement artifacts during two-photon intravital microscopy. PLoS ONE (2013), 8(1):e53942. PMID 23326545
    10. Paolicelli et al. Synaptic pruning by microglia is necessary for normal brain development. Science (2011), 9;333(6048):1456-8. PMID 21778362
    11. Carnevalli et al. S6K1 plays a critical role in early adipocyte differentiation. Developmental Cell (2010), 18(5):763-74. PMID 20493810

License

This program is free software: you can redistribute them and/or modify them under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Contributors

BAR was created and is maintained by Tiago Ferreira with contributions from Maxime Pinchon, Johannes Schindelin, Wayne Rasband, Mark Hiner, Jerome Mutterer, Kota Miura, Nicolas Vanderesse, Peter J. Lee, Jan Eglinger and others. BAR uses public domain code from Robert Harder and Nathan Blomquist. This project would not have been possible without the support of the outstanding ImageJ community.


| Home | Analysis | Annotation | Data Analysis | lib | My Routines | Segmentation | Tools | Utilities | Wiki |

scripts's People

Contributors

bitdeli-chef avatar ctrueden avatar hinerm avatar imagejan avatar miura avatar tferr 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

scripts's Issues

Scientific representation of y values in Find Peaks (1e-4 instead of 0.0004)

Hi!
I just installed BAR to use the "Find_Peaks" tool ( Scripts/BAR/src/main/resources/scripts/BAR/Data_Analysis/Find_Peaks.bsh ). Thanks for developing it, it's very useful!
I'm new on github, sorry if I chose the wrong place to report an error.
Is it possible to return the result of the peak finder in a scientific representation (1e-4 instead of 0.0004)? I'm working with a 32bit tif image with float values between -2e-12 and +1e-8. The program finds all maxima and minima as needed and returns the plot results in a table "Plot Values". The minimum y-values are fine (e.g. -1.05732E-11), but the y-values of the maxima are displayed as a float (e.g. 0.000000007). Better accuracy would be helpful.
Thanks!

Profile multiple channels in the same plot

Extending Analyze>Plot Profile to multiple channels (for situations where the "Live option" is not satisfactory) seems to be a rather popular request. Something like extending the RGBProfilesTool to composite images.

There are probably dozens of implementations out there already like the ones here or here. Fiji's Scripting Examples also feature several templates for this. But Jerome Mutterer assembled the neatest one: simple, short, efficient with auto-detection of LUTs that works great.

@mutterer would you be OK if we include your gist in the BAR repository?

Convert utility methods to a SciJava standard

The idea of per-script language utility methods is something we should standardize, so that the SciJava framework handles a lot of the basic stuff (e.g. discovering and printing available commands).

The issue for generalizing this is in SciJava but I think BAR would be a great use case to drive this work, so it would be great to develop this together.

BAR Op namespace failing

@hinerm
First of all thank you so much for all of your work in creating the first BAR Op!!, the tutorials and the wiki page. Impressive!
Second, I am really sorry for not looking into it earlier. Simply other stuff got in the way.
Third, I have to apologize also for merging your changes into my master branch in rather clumsy way.
Anyway, just for reference, these are the relevant changes you introduced:

  1. bc7271f (Add dependency on imagej-ops)
  2. 523c22d (Create BAR Op namespace)
  3. af2eeaa (Add BARService)
  4. 51f48c9 (Add GCD script template)
  5. 633dcfc (Create tutorial on adding external ops)

However, I get the following error in BAR.java:
Type mismatch: cannot convert from Class<Namespace> to Class<? extends SciJavaPlugin>

When I try to run CGD.py, I get a java.lang.Error: Unresolved compilation problem: in Fiji's console.

I've tried all of Ecliple Mars Quick Fix suggestions without success. Any ideas?

Live mode in Multichannel plot profiler ignores channel LUTs

Hello!

I came across this plugin recently while looking for a "Plot profile tool" for multichannel images. The plotting works fine for composite images, the green channel is plotted in green and red channel in red. But as soon as I switch on the live mode, all the profiles are plotted in red. Could you have a look? Thanks!

Jarify IJ1 tools and toolsets

Discussed in the forum. The idea is to bundle all IJ1 macro tools (Action Tools, Menu Tools, etc.) and macro toolsets in the main jar file, so that it is easier to run them from MicroManager.

Update site?

This is an incredibly useful collection of scripts... How about making an update site with them? Remember, putting scripts into, say, plugins/Scripts/A/B/C/D_.bsh will create a new menu structure *A>B>C>D * for you. So you could even make a directory plugins/Scripts/TFerreira/, store your scripts in them, and have your personal TFerreira top-level menu!

ROI Color Coder: Option to use log transforms

From Kenneth R Sloan:

The problem is the program either ignores the smaller particles or assigns all the smaller ones the same value. It doesn't differentiate size once the particle is some rather large fraction of the largest particle.
Color coding based on a function would be a way to accommodate large ranges. If the color was assigned to the log of the area for instance, that would work. One would need to have a choice.

Strahler: Extend root detection to 3D

This is just an immediate followup to #4. Now that root-detection is working, it should be extended to 3D.
In order to implement it, we will need to:

  • Check if ROI is associated with all slices or just one (discussed here)
  • Ignore end-points above/below the ROI, as needed
  • Extend ImageProcessor operations to stack, as needed

ROI Manager Tools: Bug in reset function and feature request

ROI_Manager_Tools.ijm needs some attention. Gilbert Bigras reports:

Bug:

I found a bug which is preventing to reset the labels to their original values. It is related to function createNewList which uses internally recursivity: the issue is related to the function called after the call to recursion which save the value in prefs. This function has to be called before recursion otherwise the reset values of tags are never saved.

Improvement:

I would like to suggest one improvement (with regard to the "custom..." labeling option): to have the custom option always at the bottom of the drop down menus.

Also, a long time has passed since it was last updated. It needs some TLC.

Strahler: Usage of inconsistent branch definition

Several issues exist with current Strahler implementation:

  • The detection of branches by inference of n. of end-points is rather fragile. It works for order 1 but, for higher orders, it may or may not be verifiable, depending on the topology of the pruned skeleton
  • Analyzing the pruned skeleton is also problematic because we may use mixed definitions of branch. We should ensure that we define branches unequivocally at every iteration. Right now, e.g., root order branches delimited by two junction points are not considered.

For consistency, a branch must always be defined as a segment delimited by either:

  • Two end-points
  • An end-point and a junction-point
  • Two junction points

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.