discoverysamplers

User Guide

  • Installation
    • Basic Installation
    • Installing with Sampler Dependencies
      • Eryn (MCMC)
      • Nessai (Nested Sampling)
      • JAX-NS (JAX-based Nested Sampling)
      • GPry (via Cobaya)
      • Install All Samplers
    • Development Installation
    • Requirements
      • Core Requirements
      • Optional Requirements
    • Verifying Installation
    • Troubleshooting
      • JAX Installation Issues
      • Dependency Conflicts
    • Next Steps
  • Quick Start Guide
    • Basic Concepts
    • Example: Discovery Pulsar Likelihood
      • Defining Priors
    • Using Different Samplers
      • Nested Sampling with Nessai
      • Nested Sampling with JAX-NS
      • MCMC with Eryn
      • GPry via Cobaya
    • Working with Fixed Parameters
    • Model Requirements
    • Next Steps
  • Prior Specification
    • Base Prior Shapes
    • Sampler-Specific Support
      • Nessai (nested sampling)
      • JAX-NS (nested sampling)
      • GPry via Cobaya
      • Eryn (MCMC)
    • Custom Priors
    • Reversible Jump MCMC Priors
    • Bounded Priors for GPry and Nested Sampling
    • See Also
  • Eryn MCMC Sampler
    • Minimal Run
    • Parallel Tempering
    • Reversible Jump MCMC (RJMCMC)
    • Key Options
    • Quick Diagnostics
    • Tips
    • See Also
  • Nessai Nested Sampler
    • Minimal Run
    • Using with Discovery Likelihoods
    • Important Options
    • Reading Results
    • See Also
  • JAX-NS Nested Sampler
    • Minimal Run
    • Using with Discovery Likelihoods
    • Vectorized Evaluation
    • Key Options
    • Reading Results
    • Tips
    • See Also
  • GPry via Cobaya
    • Minimal Run
    • Using with Discovery Likelihoods
    • Priors
    • Key Options
    • Manual Access
    • Tips
    • See Also
  • Plotting and Visualization
    • Available Plots
    • Trace Plots
    • Corner Plots
    • Model Selection (RJMCMC)
    • Parameter Summary
    • Using the Plots Module Directly
    • Saving Plots
    • Customization with corner
    • See Also
  • Model Requirements
    • Basic Requirements
    • Valid Model Signatures
      • Discovery Likelihood (Recommended)
      • Simple Function
      • Function with Additional Arguments
      • Callable Class
    • Parameter Dictionary Structure
      • Input Dictionary
      • Handling Vector Parameters
    • Return Value
      • Log-Likelihood
      • Special Values
    • Performance Considerations
      • JAX Compatibility
      • Vectorization
      • Caching and Memoization
    • Common Patterns
      • Pattern 1: Separating Model Components
      • Pattern 2: Model with Units
      • Pattern 3: Hierarchical Model
    • Error Handling
      • Graceful Failure
      • Numerical Stability
    • Testing Your Model
    • RJMCMC Model Requirements
    • Checklist
    • See Also

Advanced Topics

  • Performance Optimization
    • Discovery’s Built-in Optimizations
    • How to Best Write Your Own Likelihood
      • Use JAX Instead of NumPy
      • Avoid Python Control Flow in JIT
      • Precompute Fixed Quantities
      • Avoid Expensive Operations
      • Use Numerically Stable Algorithms
      • Vectorize When Possible
    • Sampler-Specific Optimization
      • Nessai
      • JAX-NS
      • Eryn
    • Monitoring Performance
      • Timing Your Computations
      • Profiling
    • Troubleshooting Performance Issues
      • Likelihood Too Slow
      • Out of Memory
      • Sampler Not Converging
    • See Also
  • Parallel Tempering
    • Basic Usage
    • Temperature Configuration
    • Diagnostics
    • With Reversible-Jump
    • See Also
  • Reversible-Jump MCMC
    • Overview
    • Applications
    • Key Concepts
      • Branches and Leaves
      • Branch-Indexed Priors
    • Basic Usage
      • Complete Example
      • How RJ_Discovery_model Works
    • Analyzing Results
      • Component Count Distribution
      • Parameter Estimation
      • Using the Corner Plot Helper
    • Best Practices
    • Troubleshooting
      • Sampler doesn’t explore different dimensions
      • Poor mixing
      • Memory issues
    • Example Notebooks
    • See Also
  • Custom Priors
    • Overview
    • Callable Prior Interface
      • Basic Callable Prior
    • Common Custom Priors
      • Beta Distribution
      • Gamma Distribution
      • Truncated Gaussian
      • Mixture Prior
    • JAX-Compatible Custom Priors
      • For JAX-NS and JIT Compilation
    • Best Practices
    • See Also
  • Extending discoverysamplers
    • Creating a New Sampler Interface
      • Basic Structure
      • Example: Minimal Sampler Interface
      • Reusing Common Components
    • Adding New Prior Types
      • Extend Prior Parsing
      • Custom Prior Container
    • See Also

Examples

  • Example Notebooks
    • Available Examples
      • Quick Start Guide
      • Reversible Jump MCMC
      • Eryn Examples
      • Nessai Examples
    • Running the Examples
      • Prerequisites
      • Running Notebooks
      • Converting to Python Scripts
    • Example Snippets
      • Quick Start Example
      • Multimodal Example
      • High-Dimensional Example
      • Realistic Science Example
    • Visualization Examples
      • Corner Plots
      • Chain Diagnostics
      • Model Predictions
    • Additional Resources
      • External Examples
      • Tutorials
    • See Also

Acknowledgements

  • Acknowledgements
    • Funding
    • Collaborators

API Reference

  • Priors Module
    • PriorParsingError
    • ParsedPrior
      • ParsedPrior.dist_type
      • ParsedPrior.bounds
      • ParsedPrior.mean
      • ParsedPrior.sigma
      • ParsedPrior.value
      • ParsedPrior.logpdf
      • ParsedPrior.dist_type
      • ParsedPrior.bounds
      • ParsedPrior.mean
      • ParsedPrior.sigma
      • ParsedPrior.value
      • ParsedPrior.logpdf
      • ParsedPrior.__init__()
    • standard_priors()
    • See Also
  • Likelihood Module
    • LikelihoodWrapper
      • LikelihoodWrapper.model
      • LikelihoodWrapper.fixed_params
      • LikelihoodWrapper.jit_enabled
      • LikelihoodWrapper.array_api_enabled
      • LikelihoodWrapper.array_order
      • LikelihoodWrapper.__init__()
      • LikelihoodWrapper.configure_array_api()
      • LikelihoodWrapper.log_likelihood()
      • LikelihoodWrapper.log_likelihood_row()
      • LikelihoodWrapper.log_likelihood_matrix()
    • See Also
  • Plotting Module
    • Available Plots
    • plot_trace()
    • plot_corner()
    • plot_corner_multi_temp()
    • plot_run_plot()
    • plot_nleaves_histogram()
    • plot_parameter_summary()
    • See Also
  • Eryn Interface
    • DiscoveryErynBridge
      • DiscoveryErynBridge.__init__()
        • DiscoveryErynBridge.discovery_paramnames
        • DiscoveryErynBridge.sampled_prior_dict
        • DiscoveryErynBridge.fixed_param_dict
        • DiscoveryErynBridge.fixed_names
        • DiscoveryErynBridge.sampled_names
        • DiscoveryErynBridge.n_fixed
        • DiscoveryErynBridge.n_sampled
        • DiscoveryErynBridge.ndim
        • DiscoveryErynBridge.eryn_mapping
        • DiscoveryErynBridge.eryn_prior_dict
        • DiscoveryErynBridge.eryn_prior_container
        • DiscoveryErynBridge.latex_labels
        • DiscoveryErynBridge.latex_list
        • DiscoveryErynBridge.sampled_names_latex
        • DiscoveryErynBridge.fixed_names_latex
      • DiscoveryErynBridge.create_sampler()
      • DiscoveryErynBridge.run_sampler()
      • DiscoveryErynBridge.return_all_samples()
      • DiscoveryErynBridge.return_sampled_samples()
      • DiscoveryErynBridge.return_logZ()
      • DiscoveryErynBridge.plot_trace()
      • DiscoveryErynBridge.plot_corner()
      • DiscoveryErynBridge.names()
      • DiscoveryErynBridge.pack()
      • DiscoveryErynBridge.unpack()
      • DiscoveryErynBridge.pack_all()
      • DiscoveryErynBridge.unpack_all()
    • See Also
  • Nessai Interface
    • Design goals
    • Notes on nessai model API
    • Prior specification
    • DiscoveryNessaiBridge
      • DiscoveryNessaiBridge.sampled_names
      • DiscoveryNessaiBridge.fixed_params
      • DiscoveryNessaiBridge.bounds
      • DiscoveryNessaiBridge.model
      • DiscoveryNessaiBridge.__init__()
      • DiscoveryNessaiBridge.dict_to_livepoint()
      • DiscoveryNessaiBridge.livepoint_to_dict()
      • DiscoveryNessaiBridge.run_sampler()
      • DiscoveryNessaiBridge.return_logZ()
      • DiscoveryNessaiBridge.return_sampled_samples()
      • DiscoveryNessaiBridge.return_all_samples()
      • DiscoveryNessaiBridge.plot_trace()
      • DiscoveryNessaiBridge.plot_corner()
    • DiscoveryNessaiModel
      • DiscoveryNessaiModel.__init__()
      • DiscoveryNessaiModel.log_prior()
      • DiscoveryNessaiModel.log_likelihood()
    • See Also
  • JAX-NS Interface
    • DiscoveryJAXNSBridge
      • DiscoveryJAXNSBridge.__init__()
      • DiscoveryJAXNSBridge.run_sampler()
      • DiscoveryJAXNSBridge.return_sampled_samples()
      • DiscoveryJAXNSBridge.return_all_samples()
      • DiscoveryJAXNSBridge.return_logZ()
      • DiscoveryJAXNSBridge.plot_trace()
      • DiscoveryJAXNSBridge.plot_corner()
    • See Also
  • GPry Interface
    • What you get
    • Assumptions
    • Notes on parameter naming
    • build_cobaya_info()
    • get_cobaya_model()
    • DiscoveryGPryCobayaBridge
      • DiscoveryGPryCobayaBridge.orig_param_names
      • DiscoveryGPryCobayaBridge.sanitized_param_names
      • DiscoveryGPryCobayaBridge.orig_to_sanitized
      • DiscoveryGPryCobayaBridge.sanitized_to_orig
      • DiscoveryGPryCobayaBridge.__init__()
      • DiscoveryGPryCobayaBridge.run_sampler()
      • DiscoveryGPryCobayaBridge.posterior_samples()
      • DiscoveryGPryCobayaBridge.return_logZ()
      • DiscoveryGPryCobayaBridge.return_sampled_samples()
      • DiscoveryGPryCobayaBridge.return_all_samples()
      • DiscoveryGPryCobayaBridge.plot_trace()
      • DiscoveryGPryCobayaBridge.plot_corner()
    • See Also
  • Eryn Reversible-Jump Interface
    • RJ_Discovery_model
      • RJ_Discovery_model.likelihood_cache
      • RJ_Discovery_model.params
      • RJ_Discovery_model.fixed_branch_names
      • RJ_Discovery_model.fixed_branch_param_names
      • RJ_Discovery_model.__init__()
      • RJ_Discovery_model.get_likelihood_for_config()
      • RJ_Discovery_model.get_current_config_from_params()
      • RJ_Discovery_model.logL()
      • RJ_Discovery_model.get_all_configurations()
      • RJ_Discovery_model.params_all_configurations()
      • RJ_Discovery_model.get_param_dict_for_config()
      • RJ_Discovery_model.get_param_mapping_for_config()
    • DiscoveryErynRJBridge
      • DiscoveryErynRJBridge.all_branch_names
      • DiscoveryErynRJBridge.rj_branch_names
      • DiscoveryErynRJBridge.fixed_branch_names
      • DiscoveryErynRJBridge.ndims_dict
      • DiscoveryErynRJBridge.__init__()
      • DiscoveryErynRJBridge.has_fixed_branches
      • DiscoveryErynRJBridge.create_sampler()
      • DiscoveryErynRJBridge.initialize_state()
      • DiscoveryErynRJBridge.run_sampler()
      • DiscoveryErynRJBridge.get_last_state()
      • DiscoveryErynRJBridge.checkpoint_file
      • DiscoveryErynRJBridge.can_resume
      • DiscoveryErynRJBridge.completed_steps
      • DiscoveryErynRJBridge.resume()
      • DiscoveryErynRJBridge.return_sampled_samples()
      • DiscoveryErynRJBridge.return_flat_samples()
      • DiscoveryErynRJBridge.return_nleaves()
      • DiscoveryErynRJBridge.return_logZ()
      • DiscoveryErynRJBridge.plot_nleaves_histogram()
      • DiscoveryErynRJBridge.plot_corner()
      • DiscoveryErynRJBridge.print_config_summary()
    • ErynRJBridge
    • See Also
discoverysamplers
  • Overview: module code

All modules for which code is available

  • discoverysamplers.eryn_RJ_interface
  • discoverysamplers.eryn_interface
  • discoverysamplers.gpry_interface
  • discoverysamplers.jaxns_interface
  • discoverysamplers.likelihood
  • discoverysamplers.nessai_interface
  • discoverysamplers.plots
  • discoverysamplers.priors

© Copyright 2025, Jonas El Gammal.

Built with Sphinx using a theme provided by Read the Docs.