Git Product home page Git Product logo

qupath-extension-braian's Introduction

QuPath BraiAn extension

Javadoc coverage branches coverage

Extends QuPath's functionalities for whole-brain image analysis and quantification. For example it streamlines automatic cell segmentation of multiple markers and computes markers overlap within the CCFv3 atlas previously aligned on your sections. It works best if coupled with:

  • qupath-extension-abba: for importing importing brain atlas annotations from ABBA
  • braian: the associated python library for whole-brain analysis and visualization

YSK: BraiAn's names stands for Brain Analysis.

I suggest you to listen to "Brianstorm" by Arctic Monkey while working with BraiAn ;)

Features

This extension helps you manage multiple QuPath projects ensuring consistency. In particular, it is designed to perform batch analysis across many QuPath projects in an automated manner. Typically, in whole-brain datasets, one brain = one QuPath project and BraiAn makes sure the exact same analysis parameters are consistently applied across different projects. It was first developed to work with ABBA, but can be used for other purposes as well. Its core idea is to move the input parameters used to analyse multiple QuPath projects of the same cohort/experiment outside of scripts' code. This allows having a reproducible configuration that can be shared, backed up and ran after long periods of time.

The extensions exposes a proper library API and, among all, it allows to:

  • work with image channel histograms, thanks to ChannelHistogram.class
  • compute and manage detections separately for each image channel, thanks to AbstractDetections.class
  • apply different classifiers on different subsets of detections, thanks to PartialClassifier.class
  • quickly find all detections that are double—or triple/multiple—positive, thanks to BoundingBoxHierarchy.class
  • tag certain brain regions to be excluded from further analysis due to tissue, imaging or alignment problems
  • export to file the quantification results (number of detections/double+ found in each brain region)
  • export to file a list of regions flagged to be excluded

Where to start from, though? Reading this script and the associated config file is a good start!

Citing

Soon.

Keep an eye on this or ABBA's repositories!
ETA: June 2024

Contributing

I decided to publish the BraiAn pipeline (i.e. this QuPath extension and the subsequent python libray) with the most libre licence possible because I find maximum value in learning from others and sharing my own—small—knowledge.

We, developers in neuroscience, are islands that often work alone and frequently end up reinventing the wheel rather then spending time finding, pickup up and adapting the work that somebody on the other side of the world did with no intention to publish. For this reason I spent a great amount of my personal time making this extension as usable, extensible, and long-lasting as I could. And yet, I know it could be better, that there could be bugs, unforeseen scenarios and missing features.

For this reason I hope that if you find my work useful, you will find time and will to contribute back upstream with issues, PRs, documentation, tests, feature requests... Any activity makes me happy!

Building

You can build the QuPath BraiAn extension from source with:

./gradlew clean build

The built .jar extension file will be under build/libs.

qupath-extension-braian's People

Contributors

carlocastoldi avatar bianca-ambrogina avatar

Stargazers

 avatar Nicolas Chiaruttini avatar Guillaume Le Goc avatar

Watchers

 avatar  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.