Git Product home page Git Product logo

critter's People

Contributors

esteinig avatar

Stargazers

 avatar

Watchers

 avatar  avatar

critter's Issues

Distributions

I figured out a pattern for inheritance on the Distribution class in critter.blocks.distributions that load RealParameter instances on initiation. This way both Distribution and RealParameter identifiers can be set by users (for @ in the BEAST XMLs) while conforming to pydantic.BaseModel inheritance from the Distribution class.

Library build

Aim:

Production grade library for pathogen phylodynamics

Ideas:

  • XMl wrappers for safe model building in BEAST
  • bacterial phylodynamics module:
    • species specific configurations / workflows from raw data (TB, MRSA, Kleb...)
    • clonal expansion coalescent model (CaveDive) [collaboration]
    • birth-death skyline models (BDSky and MTBD) [based on our papers]
  • SARS-CoV-2 models for variants and national / subnational configs [collaboration SSI]
  • Nanopore preprocessing using Random Forests [based on preprint]
  • integration with Nextflow to run BEAST + BEAGLE on GPU

Features:

  • pydantic model oriented
  • dynamic config of models
  • test suites + docs
  • user friendly releases
  • command line interface

Deployment:

  • FastAPI server + Vue
  • continuous integration

Base block classes

Implement basic XML blocks based on BEAST 2.5:

  • RealParameter --> <parameter/>
  • Distribution base class --> <Gamma/>
  • Priors --> <prior/>
  • Operator --> <operator/>

Release tests and validation

Travis is nice for pytest deployment on merges into main but for releases ideally we should test a series of model configs and generated XMLs across BEST versions (using the validate option for example)

Probably need Docker container for it and maybe some GitHub actions or something? Haven't tried them yet.

Model configurations from YAML

Reimplemented YAML model configuration with pydantic - which really is more suitable for this than the base block [#2] implementations. It seems that the pydantic config classes and base blocks should be merged, so that the critter.config.CritterConfig class is not required to translate between them.

Model configs from YAML are great for sharing tempates of specific model configurations - e.g. a sliced sampling proportion birth death skyline model. Itm ight also provide a way forward to implement dynamic configuration of the parameters from the CLI.

Add integration tests

All those green unit test look great! I'll add some integration tests for critter (partly to learn how it works).

Unique ID on class import

Unique identifier in distributions and parameters (using critter.utils.get_uuid) is instantiated at import, so that using the same import results in assignment of the same (replicated) identifiers.

Documentation

Created a readthedocs hook, need to figure out a good structure. Do you have a template @Wytamma?

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.