Coder Social home page Coder Social logo

wytamma / beastiary Goto Github PK

View Code? Open in Web Editor NEW
16.0 1.0 2.0 55.53 MB

Real time and remote MCMC trace monitoring with BEASTIARY.

Home Page: https://beastiary.wytamma.com

Python 17.61% HTML 2.49% JavaScript 2.75% Vue 41.20% Shell 0.29% TypeScript 12.67% CSS 0.23% OpenEdge ABL 22.76%
beast beast2 phylogenetics bayesian-inference revbayes mcmc monitoring

beastiary's Issues

Add --host to cli

Add a --host or --share cli arg that sill proxy beastiary through a server so the analysis is publicly available.

Efficient Data Serialization

Binary Serialization: binary formats can significantly reduce the payload size. Consider using formats such as Apache Arrow or custom binary payloads for trace data.

Add burnin

Add the ability to specific the amount of burnin

Add drag and drop option for static files.

Add an option to drag and drop files into Beastiary. The files will not be able to be tracked, however, it would allow you to statically examine files. The file would just load into the browser so no data transfer is required.

Move calculateStats to worker thread

calculateStats is the main blocker and should be moved to the worker. Also need better management of workers so you don't create 1 per calculation. E.g. create a worker pool.

Move byte caching to the trace model

Currently the byte of the last row read is used to keep track of the location in the log file. However, the byte could be tracked on the Trace model to save adding it to the last Sample read.

WebSockets for Continuous Data Transmission

Replace polling with web sockets e.g.

from fastapi import FastAPI, WebSocket

app = FastAPI()

@app.websocket("/data")
async def data_websocket(websocket: WebSocket):
    await websocket.accept()
    while True:
        data = await generate_data()  # Your function to get real-time data
        await websocket.send_json(data)
        await asyncio.sleep(1)  # Adjust based on desired update frequency

Add --watch to cli

Add an option to watch a folder. This will add files to beastiary when they are added to the folder. Might also need to handle patterns e.g. *.log

ESS

Ess calculation for each parameter

Submit logfile at start up

Add the ability to pass beastiary a logfile path at start up, so that it is automatically added.

beastiary --logfile '/path/to/log'

SAWarning

SAWarning: Identity map already had an identity for (<class 'beastiary.models.sample.Sample'>, (116,), None), replacing it with newly flushed object. Are there load operations occurring inside of an event handler within the flush?
db.commit()

Tree metrics

Mixing and convergence in tree space is an important requirement for effective Bayesian phylogenetic inference. The Beastiary backend should compute real-time convergence diagnostics (similar to RWTY) for assessing the adequacy with which the MCMC has sampled the phylogenetic tree topology space.

Fix docs website

The custom domain for the docs is reverting to my blog url...

Add —version

import pkg_resources
version = pkg_resources.get_distribution('beastiary').version

add file explorer

For security reasons browsers don't allow access to file paths. I think that means we can't have a drag and drop interface (although this wouldn't work on remote servers anyway). I think the best option would be to have a file explorer interface like the one in the vue ui.

Optimisation for large datasets

Beastiary will freeze if the dataset being loaded is very large (100,000 samples). Is there a way to optimise the loading time of large datasets?

Incorrect parsing of parameter names if space is present.

I found that if spaces are present in a parameter name, the name will be split and the additional words will be used to label the subsequent parameters.

In the attached log file and screenshot, the parameter "Current Tree" is split by Beastiary, with "Current" labelling the correct column and "Tree" labeling the adjacent column (which should be "Location.rates.California.NewYork"). All of the data in the log file is present, but the labels are incorrect from that point on.

image

sample.log

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.