Giter Club home page Giter Club logo

workflow-calcium-imaging's Introduction

DataJoint Workflow - Functional Calcium Imaging

DataJoint Workflow for functional calcium imaging combines multiple DataJoint Elements to process data acquired with ScanImage, Scanbox, Nikon NIS, or PrairieView acquisition software, using Suite2p or CaImAn analysis software. DataJoint Elements collectively standardize and automate data collection and analysis for neuroscience experiments. Each Element is a modular pipeline for data storage and processing with corresponding database tables that can be combined with other Elements to assemble a fully functional pipeline.

Installation and usage instructions can be found at the Element documentation.

diagram

workflow-calcium-imaging's People

Contributors

cbroz1 avatar dimitri-yatsenko avatar guzman-raphael avatar kabilar avatar kushalbakshi avatar shenshan avatar tdincer avatar ttngu207 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

workflow-calcium-imaging's Issues

Pytest QOL improvements

  1. Currently, the full suite of pytests is very time consuming (taking over an hour), as we insert and delete between each test. By adding fixture scope, we could reduce this time significantly.
@pytest.fixture(scope="session")
def ingest_subjects(pipeline, subjects_csv):
    pass # keep as is
  1. Currently, there are DuplicateErrors if _tear_down=False. By adding skip_duplicates to insert functions or pytest markers (e.g., skipif or xfail), we could make better use of non-teardown iterations.

Remove order requirements for `test_pipeline_generation.py`

In testing workflow-session, we discovered that the children() method was inconsistent in the order it reported. This may impact the the parallel parent() method here. This can be swapped out for

assert schema.Table.full_table_name in schema.OtherTable.parents()

Equipment table does not import properly

This issue was first encountered in the 03-process.ipynb

The import statement from workflow_calcium_imaging.pipeline import * does not import the Equipment table and it needs to be its own import statement.

integration test failure in `test_ingest.py`

test_find_valid_full_path and test_find_root_directory functions fail the integration test. They import the find_full_path and find_root_directory functions from incorrect places.

Add an upstream table for `scan.ScanLocation`

The current pipeline imports element_lab.Location and then uses this as an upstream table for scan.ScanLocation which is described as follows:

Location: Reference table for ScanLocation, specifying the brain location where this scan is acquired

This does not match the description of element_lab.Location:

location of animal housing or experimental rigs

I propose modifying scan.ScanLocation to the following:

@schema
class ScanLocation(dj.Manual):
    definition = """
    -> Scan
    ---
    -> AnatomicalLocation
    """

And adding the following to workflow_calcium_imaging.pipeline.py or element_calcium_imaging.scan, changing the schema decorator:

@lab.schema
class AnatomicalLocation(dj.Manual):
    definition = """
    scan_location_id : varchar(16)
    ----
    anatomical_description: varchar(256)
    """

Add pytest for suite2p trigger

This will work on a light djarchive data.
Add trigger (test_mode) to test file. Since the default ProcessingTask was load, triggering wasn't tested in the original pytest.

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.