
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Autonomous Research Assistant (AutoRA) is a framework for automating steps of the empirical research process.
AutoRA (Automated Research Assistant) is an open-source framework for automating multiple stages of the empirical research process, including model discovery, experimental design, data collection, and documentation for open science.
AutoRA was initially intended for accelerating research in the behavioral and brain sciences. However, AutoRA is designed as a general framework that enables automation of the research processes in other empirical sciences, such as material science or physics.
We recommend using a Python
environment manager like virtualenv
. You may refer to the Development Guide on how to set up a virtual environment.
Before installing the PyPI autora
package, you may activate your environment. To install the PyPI autora
package, run the following command:
pip install "autora"
Check out tutorials and documentation at https://autoresearch.github.io/autora. If you run into any issues or questions regarding the use of AutoRA, please reach out to us at the AutoRA forum.
The following basic example demonstrates how to use AutoRA to automate the process of model discovery, experimental design, and data collection.
The discovery problem is defined by a single independent variable $x \in [0, 2 \pi]$ and dependent variable $y$. The experiment amounts to a simple sine wave, $y = \sin(x)$, which is the model we are trying to discover.
Th discovery cycle iterates between the experimentalist, experiment runner, and theorist. Here, we us a "random" experimentalist, which samples novel experimental conditions for $x$ every cycle. The experiment runner then collects data for the corresponding $y$ values. Finally, the theorist uses a Bayesian Machine Scientist (BMS; Guimerà et al., in Science Advances) to identify a scientific model that explains the data.
The workflow relies on the StandardState
object, which stores the current state of the discovery process, such as conditions
, experiment_data
, or models
. The state is passed between the experimentalist, experiment runner, and theorist.
####################################################################################
## Import statements
####################################################################################
import pandas as pd
import numpy as np
import sympy as sp
from autora.variable import Variable, ValueType, VariableCollection
from autora.experimentalist.random import random_pool
from autora.experiment_runner.synthetic.abstract.equation import equation_experiment
from autora.theorist.bms import BMSRegressor
from autora.state import StandardState, on_state, estimator_on_state
####################################################################################
## Define initial data
####################################################################################
#### Define variable data ####
iv = Variable(name="x", value_range=(0, 2 * np.pi), allowed_values=np.linspace(0, 2 * np.pi, 30))
dv = Variable(name="y", type=ValueType.REAL)
variables = VariableCollection(independent_variables=[iv],dependent_variables=[dv])
#### Define seed condition data ####
conditions = random_pool(variables, num_samples=10, random_state=0)
####################################################################################
## Define experimentalist
####################################################################################
experimentalist = on_state(random_pool, output=["conditions"])
####################################################################################
## Define experiment runner
####################################################################################
sin_experiment = equation_experiment(sp.simplify('sin(x)'), variables.independent_variables, variables.dependent_variables[0])
sin_runner = sin_experiment.experiment_runner
experiment_runner = on_state(sin_runner, output=["experiment_data"])
####################################################################################
## Define theorist
####################################################################################
theorist = estimator_on_state(BMSRegressor(epochs=100))
####################################################################################
## Define state
####################################################################################
s = StandardState(
variables = variables,
conditions = conditions,
experiment_data = pd.DataFrame(columns=["x","y"])
)
####################################################################################
## Cycle through the state
####################################################################################
print('Pre-Defined State:')
print(f"Number of datapoints collected: {len(s['experiment_data'])}")
print(f"Derived models: {s['models']}")
print('\n')
for i in range(5):
s = experimentalist(s, num_samples=10, random_state=42)
s = experiment_runner(s, added_noise=1.0, random_state=42)
s = theorist(s)
print(f"\nCycle {i+1} Results:")
print(f"Number of datapoints collected: {len(s['experiment_data'])}")
print(f"Derived models: {s['models']}")
print('\n')
If you are curious about how to apply AutoRA to real-world discovery problems, you can find use case examples of AutoRA in the Use Case Tutorials section of the documentation.
We welcome contributions to the AutoRA project. Please refer to the contributor guide for more information. Also, feel free to ask any questions or provide any feedback regarding core contributions on the AutoRA forum.
This project is in active development by the Autonomous Empirical Research Group.
The development of this package was supported by Schmidt Science Fellows, in partnership with the Rhodes Trust, as well as the Carney BRAINSTORM program at Brown University. The development of auxiliary packages for AutoRA, such as autodoc
, is supported by Schmidt Sciences, LLC. and the Virtual Institute for Scientific Software (VISS). The AutoRA package was developed using computational resources and services at the Center for Computation and Visualization at Brown University.
FAQs
Autonomous Research Assistant (AutoRA) is a framework for automating steps of the empirical research process.
We found that autora demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.