Coder Social home page Coder Social logo

neuropixel-jankify's Introduction

Neuropixel Utils Jankification

This is a project management repo for Andrew Janke's 2021 project to enhance the Neuropixel Utils Matlab library.

This repo will contain work products, notes, project management stuff, and other things related to the project, but which are not going in to the repo fork for potential upstreaming.

This repo is mostly a GitHub Pages site. View it online at https://apjanke.github.io/neuropixel-jankify.

The repo for this project's actual code is at https://github.com/apjanke/npxutils-apj-wip-01.

This project is supported by MathWorks.

Acknowledgments

Thank you to MathWorks for sponsoring this project.

Thank you to Phish and Rosé for powering my coding.

Thank you to the Matlab Discord for helping me out when I get stuck.

neuropixel-jankify's People

Contributors

apjanke avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

neuropixel-jankify's Issues

Use and enhance npy-matlab

On a separate fork, implement (that is, switch to using and being a client of) kwikteam/npy-matlab: via subtree to develop a proof-of-concept for discussion with the npy-matlab owners. npy-matlab is experimental code to read/write NumPy .NPY files in Matlab.

Introduce function argument validation

Apply the new MATLAB capabilities for function argument validation using argument blocks and declarative property constraints across at least two functions where inputParser is currently used (e.g. in runKilosort2).

Tighten up public class API

Implement class organization updates in at least two classes towards the goal of a smaller and more inspectable public API for class consumers/library users. This is expected to include changes such as:

  1. Demarcation of the public API from the hidden/private API in the class file, e.g. the public API before the class internals
  2. Initial deprecation steps (e.g. hidden implementation for trivially coded (‘one liner’ or similar) public properties, e.g. nChannels which can be determined by class consumers simply via length(channels_id).
  3. Demarcation of groups of related properties (e.g. derived/computed values) through a property naming strategy (e.g. prefixes) or the creation of a new class linked to existing class via composite pattern

Code tree reorganization

Implement code organization updates towards the goal of fewer files per folder (package folders or otherwise). For instance:

  1. In Utils package: consider separating out the pure coding utilities from the domain-oriented npix utilities
  2. In root package: consider separation of some/all functions from the classes, perhaps via an additional sub-package
  3. In Neuropixels package: consider separation of related function such as for file reading/writing/exporting (e.g. readNPY & writeNPY) & consider whether some functions (e.g. runKilosort2) can become public methods of classes defined in the package

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.