Package: phyddle
phyddle 0.1.1Software to fiddle around with deep learning for phylogenetic modelsNOTE: This beta version of phyddle is still under development.User guideVisithttps://mlandis.github.io/phyddleto learn more about phyddle.OverviewA standard phyddle analysis performs the following tasks for you:Pipeline configurationapplies analysis settings provided through a config file and/or command line arguments.Simulatesimulates a large training dataset using a user-designed simulator.Formatencodes the raw simulated data (fromSimulate) into tensor format forTrain.Trainloads and splits training data (fromFormat), builds a network, then trains and saves the network.Estimateestimates model parameters for a new dataset with the trained network (fromTrain).Plotgenerates figures that summarize the training data (Format), the network and its training (Train), and any new predictions (Estimate).Quick startTo run a phyddle analysis enter thescriptsdirectory:cd~/projects/phyddleThen create and run a pipeline under the settings you've specified inconfigs/config_R.py:phyddle--cfgconfigs/config_R.pyThis will run a phyddle analysis with 1000 simulations using R and the castor package for a simple birth-death model with one 3-state character. In practice, you'll want to generate a larger training dataset with anywhere from 10k to 1M examples, depending on the model.To add new examples to your training set# simulate new training examples and store in simulatephyddle-sS-cconfigs/config_R.py--sim_more14000# encode all raw_data examples as tensors in formatphyddle-sF-cconfigs/config_R.py# train network with tensor data, but override batch size, then store in trainphyddle-sT-cconfigs/config_R.py--trn_batch_size256# make prediction for empirical example in datasetphyddle-sE-cconfigs/config_R.py# generate figures and store in plotphyddle-sP-cconfigs/config_R.pyTo see a full list of all options currently supported by phyddlephyddle--helpInstallationA stable version of phyddle can be installed using the Python package manager, pip:python3-mpipinstall--upgradephyddle# ... install ...phyddle...or using conda:condacreate-nphyddle_env-cbioconda-clandismjphyddle# ... install ...condaactivatephyddle_env
phyddleThe newest development version of phyddle must be manually installed through a local build:gitclonegit@github.com:mlandis/phyddle.gitcdphyddle
gitcheckoutdevelopment
gitpull
./build.shphyddle uses third-party simulators to generate training datasets. Example workflows assume thatRv4.2.2,RevBayesv1.2.1, orBEASTv2.7.3 withMASTERv7.0.0 (plugin) is installed on your machine and can be executed as a command from terminal. The documentation explains how to configure R for use with phyddle.Note on code stabilityCode on themainbranch is tested and stable with respect to the standard use cases. Code on thedevelopmentbranch contains new features, but is not as rigorously tested. Most phyddle development occurs on a 16-core Intel Macbook Pro laptop and a 64-core Intel Ubuntu server. Any feedback is appreciated!michael.landis@wustl.eduAboutThanks for your interest in phyddle. The phyddle project emerged from a phylogenetic deep learning study led by Ammon Thompson (paper). The goal of phyddle is to provide its users with a generalizable pipeline workflow for phylogenetic modeling and deep learning. This hopefully will make it easier for phylogenetic model enthusiasts and developers to explore and apply models that do not have tractable likelihood functions. It's also intended for use by methods developers who want to characterize how deep learning methods perform under different conditions for standard phylogenetic estimation tasks.The phyddle project is developed byMichael LandisandAmmon Thompson.