wytamma / beastiary Goto Github PK
View Code? Open in Web Editor NEWReal time and remote MCMC trace monitoring with BEASTIARY.
Home Page: https://beastiary.wytamma.com
Real time and remote MCMC trace monitoring with BEASTIARY.
Home Page: https://beastiary.wytamma.com
If you add a trace via the modal and press enter the page refreshes. Need to block the default form submission.
Add a --host or --share cli arg that sill proxy beastiary through a server so the analysis is publicly available.
Add joint-marginal plots
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 the ability to specific the amount of burnin
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.
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.
When you use the ADD
button to add a log file if the file doesn't exist beastiary should display an error.
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.
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 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
The trace is laggy with 100K points. Change to webGL
Ess calculation for each parameter
Add the ability to pass beastiary a logfile path at start up, so that it is automatically added.
beastiary --logfile '/path/to/log'
The auto login fails the first time you open the webapp
I like the blue, but there is a lot of it...
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()
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.
The custom domain for the docs is reverting to my blog url...
import pkg_resources
version = pkg_resources.get_distribution('beastiary').version
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.
Add the ability to select multiple traces
Add cumulative ESS plots and run time predictions based on target
Add CLI configurations to parse any type of delimited file.
Create the basic layout for the dashboard.
Using polling to automatically get new samples for the active trace
Add statistics for parameters (mean, 95% CI, etc)
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?
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.