EthoPy provides an accessible platform for reproducible behavioral neuroscience.
The 13 matches · 2 of them tie a paragraph to a whole file, not to given lines: weak matches, whose lines are not tinted
- [1] § STAR★Methods › Method details › Database schema organization › Behavior schema ↔ src/ethopy/behaviors/multi_port.py, the whole file · a weak match · score 0.64 · multi port reward, multi port response, correct response port, beh, proximity, schema
- [2] § STAR★Methods › Method details › Database schema organization › Behavior schema ↔ ethopy_package-main.zip/src/ethopy/behaviors/multi_port.py, the whole file · a weak match · score 0.64 · multi port reward, multi port response, correct response port, beh, proximity, schema
- [3] § STAR★Methods › Method details › Hardware components › EthoPy controller board and arduino ↔ src/ethopy/core/behavior.py, lines 24–45 · score 0.61 · hardware components, reward delivery, experimental setups, lick ports, interactions, interface
- [4] § STAR★Methods › Method details › Database schema organization › Experiment schema ↔ src/ethopy/experiments/free_water.py, lines 23–37 · score 0.57 · free water, trial selection, intertrial, transitions, Reward
- [5] § STAR★Methods › Method details › Database schema organization › Stimulus schema ↔ src/ethopy/stimuli/grating.py, lines 66–142 · score 0.57 · grating movie, stim_hash, schema, stimulus
- [6] § STAR★Methods › Method details › Calibration ↔ src/ethopy/core/interface.py, lines 535–571 · score 0.56 · air pressure, psi, calibrated, volume, water, liquid
- [7] § STAR★Methods › Method details › Calibration ↔ ethopy_package-main.zip/src/ethopy/core/interface.py, lines 520–556 · score 0.56 · air pressure, psi, calibrated, volume, water, liquid
- [8] § STAR★Methods › Method details › Synchronization ↔ src/ethopy/core/logger.py, lines 83–126 · score 0.55 · experimental setup, flips, synchronization, internal, interval, machines
- [9] § STAR★Methods › Method details › Synchronization ↔ ethopy_package-main.zip/src/ethopy/core/logger.py, lines 81–124 · score 0.55 · experimental setup, flips, synchronization, internal, interval, machines
- [10] § STAR★Methods › Method details › Database schema organization › Task setup and execution ↔ src/ethopy/utils/create_ethopy_task.py, lines 113–176 · score 0.54 · stimulus parameters, setup configuration, template, import, customized, execution
- [11] § STAR★Methods › Method details › Database schema organization › Task setup and execution ↔ ethopy_package-main.zip/src/ethopy/utils/create_ethopy_task.py, lines 106–169 · score 0.54 · stimulus parameters, setup configuration, template, import, customized, execution
- [12] § STAR★Methods › Method details › Database schema organization › Experiment schema ↔ src/ethopy/experiments/match_port.py, lines 9–40 · score 0.53 · match port, trial selection, intertrial, Punish, Reward, schema
- [13] § STAR★Methods › Method details › Behavioral data analysis ↔ src/ethopy_analysis/__init__.py, lines 1–27 · score 0.50 · DataJoint, behavioral experiments, pandas, tools, database, EthoPy
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
Python · 102 lines · 3.5 KB · MIT · 1 match
- import datajoint as dj
- import numpy as np
- from ethopy.core.behavior import Behavior
- from ethopy.core.logger import behavior
- @behavior.schema
- class MultiPort(Behavior, dj.Manual):
- definition = """
- # This class handles the behavior variables for RP
- ->behavior.BehCondition
- """
- class Response(dj.Part):
- definition = """
- # Lick response condition
- -> MultiPort
- response_port : tinyint # response port id
- """
- class Reward(dj.Part):
- definition = """
- # reward port conditions
- -> MultiPort
- ---
- reward_port : tinyint # reward port id
- reward_amount=0 : float # reward amount
- reward_type : varchar(16) # reward type
- """
- def __init__(self):
- super().__init__()
- self.cond_tables = ["MultiPort", "MultiPort.Response", "MultiPort.Reward"]
- self.required_fields = ["response_port", "reward_port", "reward_amount"]
- self.default_key = {"reward_type": "water"}
- def is_ready(self, duration, since=False):
- position, ready_time, tmst = self.interface.in_position()
- if duration == 0:
- return True
- elif position == 0 or position.ready == 0:
- return False
- elif not since:
- return ready_time > duration # in position for specified duration
- elif tmst >= since:
- # has been in position for specified duration since timepoint
- return ready_time > duration
- else:
- # has been in position for specified duration since timepoint
- return (ready_time + tmst - since) > duration
- def is_correct(self):
- """Check if the response port is correct.
- if current response port is -1, then any response port is correct
- otherwise if the response port is equal to the current response port/ports,
- then it is correct
- Returns:
- bool: True if correct, False otherwise
- """
- return self.curr_cond['response_port'] == -1 or \
- np.any(np.equal(self.response.port, self.curr_cond['response_port']))
- def is_off_proximity(self):
- return self.interface.off_proximity()
- def reward(self, tmst=0):
- """Give reward at latest licked port.
- After the animal has made a correct response, give the reward at the
- first port that animal has licked and is definded as reward.
- Args:
- tmst (int, optional): Time in milliseconds. Defaults to 0.
- Returns:
- bool: True if rewarded, False otherwise
- """
- # if response and reward ports are the same no need of tmst
- if self.response.reward:
- tmst = 0
- # check that the last licked port is also a reward port
- licked_port = self.is_licking(since=tmst, reward=True)
- rewarded_port = self.curr_cond["reward_port"]
- if licked_port and (rewarded_port == -1 or licked_port == rewarded_port):
- self.interface.give_liquid(licked_port)
- self.log_reward(self.reward_amount[self.licked_port])
- self.update_history(self.response.port, self.reward_amount[self.licked_port])
- return True
- return False
- def exit(self):
- super().exit()
- self.interface.cleanup()
- def punish(self):
- port = self.response.port if self.response.port > 0 else np.nan
- self.update_history(port, punish=True)
multi_port.py at commit b478cf9, under MIT · at the source
Overview
- Institute of Molecular Biology & Biotechnology, Foundation of Research & Technology - Hellas, Heraklion, Crete, Greece
- Department of Basic Sciences, Faculty of Medicine, University of Crete, Heraklion, Crete, Greece
Abstract
The abstract is not reproduced here: the paper's license (CC BY-NC-ND) does not allow it. Read it in the paper, at the publisher or on Europe PMC.
Repositories
Its files are read in the Code ↔ Paper reader above, with 13 matches between paragraphs and lines of code.
figshare 30111118
Availability: 1 check, the latest on 29 September 2026: the link answers (HTTP 200)
- 29 September 2026: the link answers (HTTP 200)
Zenodo 19110086
Availability: 1 check, the latest on 29 September 2026: the link answers (HTTP 200)
- 29 September 2026: the link answers (HTTP 200)
102 files
- ethopy_analysis-main.zip
/ , Jupyter, 59 linesexamples/ animal_analysis_example. ipynb - ethopy_analysis-main.zip
/ , Jupyter, 381 linesexamples/ load_example.ipynb - ethopy_analysis-main.zip
/ , Jupyter, 325 linesexamples/ session_analysis_example .ipynb - ethopy_analysis-main.zip
/ , Python, 85 linessrc/ ethopy_analysis/ __init__.py - ethopy_analysis-main.zip
/ , Python, 313 linessrc/ ethopy_analysis/ cli.py - ethopy_analysis-main.zip
/ , Python, 25 linessrc/ ethopy_analysis/ config/ __init__.py - ethopy_analysis-main.zip
/ , Python, 243 linessrc/ ethopy_analysis/ config/ interactive.py - ethopy_analysis-main.zip
/ , Python, 401 linessrc/ ethopy_analysis/ config/ settings.py - ethopy_analysis-main.zip
/ , Python, 173 linessrc/ ethopy_analysis/ config/ styles.py - ethopy_analysis-main.zip
/ , Python, 88 linessrc/ ethopy_analysis/ data/ __init__.py - ethopy_analysis-main.zip
/ , Python, 180 linessrc/ ethopy_analysis/ data/ analysis.py - ethopy_analysis-main.zip
/ , Python, 990 linessrc/ ethopy_analysis/ data/ loaders.py - ethopy_analysis-main.zip
/ , Python, 320 linessrc/ ethopy_analysis/ data/ utils.py - ethopy_analysis-main.zip
/ , Python, 1 linesrc/ ethopy_analysis/ db/ __init__.py - ethopy_analysis-main.zip
/ , Python, 387 linessrc/ ethopy_analysis/ db/ schemas.py - ethopy_analysis-main.zip
/ , Python, 56 linessrc/ ethopy_analysis/ plots/ __init__.py - ethopy_analysis-main.zip
/ , Python, 266 linessrc/ ethopy_analysis/ plots/ animal.py - ethopy_analysis-main.zip
/ , Python, 550 linessrc/ ethopy_analysis/ plots/ comparison.py - ethopy_analysis-main.zip
/ , Python, 1,338 linessrc/ ethopy_analysis/ plots/ session.py - ethopy_analysis-main.zip
/ , Python, 167 linessrc/ ethopy_analysis/ plots/ utils.py - ethopy_control-main.zip/
app.py , Python, 792 lines - ethopy_control-main.zip/
app_setup.py , Python, 493 lines - ethopy_control-main.zip/
main.py , Python, 43 lines - ethopy_control-main.zip/
models.py , Python, 69 lines - ethopy_control-main.zip/
real_time_plot/ , Python, 1 line__init__.py - ethopy_control-main.zip/
real_time_plot/ , Python, 777 linesget_activity.py - ethopy_control-main.zip/
real_time_plot/ , Python, 941 linesreal_time_events.py - ethopy_control-main.zip/
static/ , JavaScript, 768 linesjs/ table.js - ethopy_control-main.zip/
tests/ , Python, 57 linesconftest.py - ethopy_control-main.zip/
tests/ , Python, 175 linestest_api.py - ethopy_control-main.zip/
tests/ , Python, 53 linestest_models.py - ethopy_control-main.zip/
utils/ , Python, 4 lines__init__.py - ethopy_control-main.zip/
utils/ , Python, 178 linesconfig.py - ethopy_control-main.zip/
utils/ , Python, 306 linesinit_db.py - ethopy_control-main.zip/
utils/ , Python, 199 linessetup_env.py - ethopy_package-main.zip/
src/ , Python, 46 linesethopy/ __init__.py - ethopy_package-main.zip/
src/ , Python, 8 linesethopy/ behaviors/ __init__.py - ethopy_package-main.zip/
src/ , Python, 16 linesethopy/ behaviors/ head_fixed.py - ethopy_package-main.zip/
src/ , Python, 101 lines, 1 matchethopy/ behaviors/ multi_port.py - ethopy_package-main.zip/
src/ , Python, 84 linesethopy/ cli.py - ethopy_package-main.zip/
src/ , Python, 231 linesethopy/ config.py - ethopy_package-main.zip/
src/ , Python, 1 lineethopy/ core/ __init__.py - ethopy_package-main.zip/
src/ , Python, 484 linesethopy/ core/ behavior.py - ethopy_package-main.zip/
src/ , Python, 1,126 linesethopy/ core/ experiment.py - ethopy_package-main.zip/
src/ , Python, 556 lines, 1 matchethopy/ core/ interface.py - ethopy_package-main.zip/
src/ , Python, 1,067 lines, 1 matchethopy/ core/ logger.py - ethopy_package-main.zip/
src/ , Python, 46 linesethopy/ core/ recordings.py - ethopy_package-main.zip/
src/ , Python, 242 linesethopy/ core/ stimulus.py - ethopy_package-main.zip/
src/ , Python, 8 linesethopy/ experiments/ __init__.py - ethopy_package-main.zip/
src/ , Python, 444 linesethopy/ experiments/ calibrate.py - ethopy_package-main.zip/
src/ , Python, 139 linesethopy/ experiments/ free_water.py - ethopy_package-main.zip/
src/ , Python, 287 linesethopy/ experiments/ match_port.py - ethopy_package-main.zip/
src/ , Python, 96 linesethopy/ experiments/ passive.py - ethopy_package-main.zip/
src/ , Python, 202 linesethopy/ interfaces/ Arduino.py - ethopy_package-main.zip/
src/ , Python, 121 linesethopy/ interfaces/ Ball.py - ethopy_package-main.zip/
src/ , Python, 892 linesethopy/ interfaces/ Camera.py - ethopy_package-main.zip/
src/ , Python, 118 linesethopy/ interfaces/ DummyPorts.py - ethopy_package-main.zip/
src/ , Python, 34 linesethopy/ interfaces/ PCPorts.py - ethopy_package-main.zip/
src/ , Python, 319 linesethopy/ interfaces/ RPPorts.py - ethopy_package-main.zip/
src/ , Python, 40 linesethopy/ interfaces/ RPVR.py - ethopy_package-main.zip/
src/ , Python, 8 linesethopy/ interfaces/ __init__.py - ethopy_package-main.zip/
src/ , Python, 547 linesethopy/ interfaces/ dlc.py - ethopy_package-main.zip/
src/ , Python, 318 linesethopy/ plugin_manager.py - ethopy_package-main.zip/
src/ , Python, 50 linesethopy/ run.py - ethopy_package-main.zip/
src/ , Python, 304 linesethopy/ setup_db.py - ethopy_package-main.zip/
src/ , Python, 8 linesethopy/ stimuli/ __init__.py - ethopy_package-main.zip/
src/ , Python, 116 linesethopy/ stimuli/ bar.py - ethopy_package-main.zip/
src/ , Python, 60 linesethopy/ stimuli/ dot.py - ethopy_package-main.zip/
src/ , Python, 242 linesethopy/ stimuli/ grating.py - ethopy_package-main.zip/
src/ , Python, 41 linesethopy/ task/ bar_test.py - ethopy_package-main.zip/
src/ , Python, 17 linesethopy/ task/ calibrate_ports.py - ethopy_package-main.zip/
src/ , Python, 49 linesethopy/ task/ dot_test.py - ethopy_package-main.zip/
src/ , Python, 32 linesethopy/ task/ free_water.py - ethopy_package-main.zip/
src/ , Python, 48 linesethopy/ task/ grating_test.py - ethopy_package-main.zip/
src/ , Python, 22 linesethopy/ task/ no_stimulus.py - ethopy_package-main.zip/
src/ , Python, 1 lineethopy/ utils/ __init__.py - ethopy_package-main.zip/
src/ , Python, 173 lines, 1 matchethopy/ utils/ create_ethopy_task.py - ethopy_package-main.zip/
src/ , Python, 184 linesethopy/ utils/ ethopy_logging.py - ethopy_package-main.zip/
src/ , Python, 62 linesethopy/ utils/ exceptions.py - ethopy_package-main.zip/
src/ , Python, 1,594 linesethopy/ utils/ export/ nwb.py - ethopy_package-main.zip/
src/ , Python, 548 linesethopy/ utils/ helper_functions.py - ethopy_package-main.zip/
src/ , Python, 173 linesethopy/ utils/ presenter.py - ethopy_package-main.zip/
src/ , Python, 362 linesethopy/ utils/ start.py - ethopy_package-main.zip/
src/ , Python, 78 linesethopy/ utils/ task.py - ethopy_package-main.zip/
src/ , Python, 51 linesethopy/ utils/ task_helper_funcs.py - ethopy_package-main.zip/
src/ , Python, 42 linesethopy/ utils/ thread_worker.py - ethopy_package-main.zip/
src/ , Python, 21 linesethopy/ utils/ timer.py - ethopy_package-main.zip/
src/ , Python, 146 linesethopy/ utils/ touch_interface.py - ethopy_package-main.zip/
src/ , Python, 87 linesethopy/ utils/ writer.py - ethopy_package-main.zip/
tests/ , Python, 1 line__init__.py - ethopy_package-main.zip/
tests/ , Python, 158 linesconftest.py - ethopy_package-main.zip/
tests/ , Python, 140 linestest_behavior.py - ethopy_package-main.zip/
tests/ , Python, 283 linestest_experiment.py - ethopy_package-main.zip/
tests/ , Python, 114 linestest_logger.py - ethopy_analysis-main.zip
/ , License, 22 linesLICENSE - ethopy_analysis-main.zip
/ , Text, 131 linesREADME.md - ethopy_control-main.zip/
LICENSE , License, 21 lines - ethopy_control-main.zip/
README.md , Text, 216 lines - ethopy_hardware-main.zip
/ , License, 21 linesLICENSE - ethopy_hardware-main.zip
/ , Text, 46 linesREADME.md - ethopy_package-main.zip/
LICENSE , License, 22 lines - ethopy_package-main.zip/
README.md , Text, 96 lines
ef-lab/ethopy_package
b478cf90a25c06301fc7fd5fd62dce9ae3250182, 10 September 2026Availability: 1 check, the latest on 29 September 2026: the link answers
- 29 September 2026: the link answers
63 files
- src/
ethopy/ , Python, 46 lines__init__.py - src/
ethopy/ , Python, 8 linesbehaviors/ __init__.py - src/
ethopy/ , Python, 16 linesbehaviors/ head_fixed.py - src/
ethopy/ , Python, 102 lines, 1 matchbehaviors/ multi_port.py - src/
ethopy/ , Python, 84 linescli.py - src/
ethopy/ , Python, 232 linesconfig.py - src/
ethopy/ , Python, 1 linecore/ __init__.py - src/
ethopy/ , Python, 484 lines, 1 matchcore/ behavior.py - src/
ethopy/ , Python, 1,121 linescore/ experiment.py - src/
ethopy/ , Python, 571 lines, 1 matchcore/ interface.py - src/
ethopy/ , Python, 1,072 lines, 1 matchcore/ logger.py - src/
ethopy/ , Python, 233 linescore/ mice.py - src/
ethopy/ , Python, 46 linescore/ recordings.py - src/
ethopy/ , Python, 242 linescore/ stimulus.py - src/
ethopy/ , Python, 8 linesexperiments/ __init__.py - src/
ethopy/ , Python, 492 linesexperiments/ calibrate.py - src/
ethopy/ , Python, 139 lines, 1 matchexperiments/ free_water.py - src/
ethopy/ , Python, 287 lines, 1 matchexperiments/ match_port.py - src/
ethopy/ , Python, 96 linesexperiments/ passive.py - src/
ethopy/ , Python, 202 linesinterfaces/ Arduino.py - src/
ethopy/ , Python, 121 linesinterfaces/ Ball.py - src/
ethopy/ , Python, 1,080 linesinterfaces/ Camera.py - src/
ethopy/ , Python, 118 linesinterfaces/ DummyPorts.py - src/
ethopy/ , Python, 34 linesinterfaces/ PCPorts.py - src/
ethopy/ , Python, 319 linesinterfaces/ RPPorts.py - src/
ethopy/ , Python, 40 linesinterfaces/ RPVR.py - src/
ethopy/ , Python, 8 linesinterfaces/ __init__.py - src/
ethopy/ , Python, 583 linesinterfaces/ dlc.py - src/
ethopy/ , Python, 325 linesplugin_manager.py - src/
ethopy/ , Python, 53 linesrun.py - src/
ethopy/ , Python, 370 linessetup_db.py - src/
ethopy/ , Python, 8 linesstimuli/ __init__.py - src/
ethopy/ , Python, 116 linesstimuli/ bar.py - src/
ethopy/ , Python, 60 linesstimuli/ dot.py - src/
ethopy/ , Python, 242 lines, 1 matchstimuli/ grating.py - src/
ethopy/ , Python, 41 linestask/ bar_test.py - src/
ethopy/ , Python, 17 linestask/ calibrate_ports.py - src/
ethopy/ , Python, 49 linestask/ dot_test.py - src/
ethopy/ , Python, 32 linestask/ free_water.py - src/
ethopy/ , Python, 48 linestask/ grating_test.py - src/
ethopy/ , Python, 22 linestask/ no_stimulus.py - src/
ethopy/ , Python, 1 lineutils/ __init__.py - src/
ethopy/ , Python, 180 lines, 1 matchutils/ create_ethopy_task.py - src/
ethopy/ , Python, 184 linesutils/ ethopy_logging.py - src/
ethopy/ , Python, 62 linesutils/ exceptions.py - src/
ethopy/ , Python, 1,632 linesutils/ export/ nwb.py - src/
ethopy/ , Python, 548 linesutils/ helper_functions.py - src/
ethopy/ , Python, 173 linesutils/ presenter.py - src/
ethopy/ , Python, 400 linesutils/ start.py - src/
ethopy/ , Python, 107 linesutils/ task.py - src/
ethopy/ , Python, 104 linesutils/ task_helper_funcs.py - src/
ethopy/ , Python, 42 linesutils/ thread_worker.py - src/
ethopy/ , Python, 21 linesutils/ timer.py - src/
ethopy/ , Python, 146 linesutils/ touch_interface.py - src/
ethopy/ , Python, 87 linesutils/ writer.py - tests/
__init__.py , Python, 1 line - tests/
conftest.py , Python, 158 lines - tests/
test_behavior.py , Python, 141 lines - tests/
test_experiment.py , Python, 283 lines - tests/
test_logger.py , Python, 114 lines - tests/
test_task_helper_funcs.p , Python, 116 linesy - LICENSE, License, 22 lines
- README.md, Text, 96 lines
ef-lab/ethopy_control
8bf7f82ed1b1d529015768b1dca703e480fc88e5, 2 September 2026Availability: 1 check, the latest on 29 September 2026: the link answers
- 29 September 2026: the link answers
17 files
- app.py, Python, 878 lines
- app_setup.py, Python, 493 lines
- main.py, Python, 43 lines
- models.py, Python, 69 lines
- real_time_plot/
__init__.py , Python, 1 line - real_time_plot/
get_activity.py , Python, 777 lines - real_time_plot/
real_time_events.py , Python, 941 lines - static/
js/ , JavaScript, 768 linestable.js - tests/
conftest.py , Python, 74 lines - tests/
test_api.py , Python, 179 lines - tests/
test_models.py , Python, 53 lines - utils/
__init__.py , Python, 4 lines - utils/
config.py , Python, 240 lines - utils/
init_db.py , Python, 306 lines - utils/
setup_env.py , Python, 199 lines - LICENSE, License, 21 lines
- README.md, Text, 229 lines
ef-lab/ethopy_analysis
b02138b105ea2490b1628b73c8bfbc12051e9a53, 10 September 2026Availability: 1 check, the latest on 29 September 2026: the link answers
- 29 September 2026: the link answers
22 files
- examples/
animal_analysis_example. , Jupyter, 89 linesipynb - examples/
load_example.ipynb , Jupyter, 392 lines - examples/
session_analysis_example , Jupyter, 357 lines.ipynb - src/
ethopy_analysis/ , Python, 85 lines, 1 match__init__.py - src/
ethopy_analysis/ , Python, 306 linescli.py - src/
ethopy_analysis/ , Python, 25 linesconfig/ __init__.py - src/
ethopy_analysis/ , Python, 243 linesconfig/ interactive.py - src/
ethopy_analysis/ , Python, 406 linesconfig/ settings.py - src/
ethopy_analysis/ , Python, 173 linesconfig/ styles.py - src/
ethopy_analysis/ , Python, 90 linesdata/ __init__.py - src/
ethopy_analysis/ , Python, 274 linesdata/ analysis.py - src/
ethopy_analysis/ , Python, 1,086 linesdata/ loaders.py - src/
ethopy_analysis/ , Python, 320 linesdata/ utils.py - src/
ethopy_analysis/ , Python, 1 linedb/ __init__.py - src/
ethopy_analysis/ , Python, 414 linesdb/ schemas.py - src/
ethopy_analysis/ , Python, 55 linesplots/ __init__.py - src/
ethopy_analysis/ , Python, 350 linesplots/ animal.py - src/
ethopy_analysis/ , Python, 550 linesplots/ comparison.py - src/
ethopy_analysis/ , Python, 1,367 linesplots/ session.py - src/
ethopy_analysis/ , Python, 167 linesplots/ utils.py - LICENSE, License, 22 lines
- README.md, Text, 266 lines
ef-lab/ethopy_hardware
fd1c74230a7615d9238df146f265667c360ba2d2, 20 February 2026Availability: 1 check, the latest on 29 September 2026: the link answers
- 29 September 2026: the link answers
ef-lab/ethopy_plugins
d7e08e3e140e7177352edde9ae9268b06749a560, 1 September 2026Availability: 1 check, the latest on 29 September 2026: the link answers
- 29 September 2026: the link answers
32 files
- Bpod/
event_detect.py , Python, 215 lines - Bpod/
interfaces/ , Python, 568 linesBpodPorts.py - Bpod/
tasks/ , Python, 26 linesbpod_calibration.py - Bpod/
tasks/ , Python, 58 linesgrating_test.py - Bpod/
user_settings.py , Python, 15 lines - objects_panda/
experiments/ , Python, 355 linesmatch_to_sample.py - objects_panda/
stimuli/ , Python, 490 linespanda.py - objects_panda/
task/ , Python, 156 linespanda_test.py - objects_panda/
upload_objects.py , Python, 58 lines - openfield/
behaviors/ , Python, 474 linesopenfield.py - openfield/
experiments/ , Python, 314 linesapproach.py - openfield/
stimuli/ , Python, 654 linespanda.py - openfield/
task/ , Python, 94 linesopenfield_task.py - openfield/
upload_objects.py , Python, 58 lines - openfield/
utils/ , Python, 306 linesexport/ add_dlc_nwb.py - openfield/
utils/ , Python, 61 linesexport/ add_video_nwb.py - psychopy/
experiments/ , Python, 358 linesmatch_to_sample.py - psychopy/
stimuli/ , Python, 118 linespsycho_grating.py - psychopy/
stimuli/ , Python, 143 linespsycho_presenter.py - psychopy/
task/ , Python, 93 linespsychopy_test.py - spherical_treadmill/
behaviors/ , Python, 106 linesvr_ball.py - spherical_treadmill/
experiments/ , Python, 186 linesnavigate.py - spherical_treadmill/
stimuli/ , Python, 56 linesolfactory.py - spherical_treadmill/
stimuli/ , Python, 67 linesvr_odors.py - spherical_treadmill/
task/ , Python, 54 linesball_test.py - spherical_treadmill/
utils/ , Python, 119 linesexport/ add_treadmill_nwb.py - tone_grating/
stimuli/ , Python, 49 linestones.py - tone_grating/
stimuli/ , Python, 90 linestones_grating.py - tone_grating/
task/ , Python, 104 linestones_grating_test.py - tone_grating/
task/ , Python, 85 linestones_test.py - LICENSE, License, 21 lines
- README.md, Text, 108 lines
Code availability statement
The paper has a code availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- it points to the authors' code: figshare 30111118, ef-lab/
ethopy_analysis , ef-lab/ethopy_control , ef-lab/ethopy_hardware , ef-lab/ethopy_package , Zenodo 19110086 - it says that the code is available on request
Read it in the paper: doi.org/10.1016/j.crmeth.2026.101421.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 7 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 220 scripts, each with its path and the digest of its content;
- 13 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
No dataset and no data link were found in the paper.
Code and data availability statement
The paper has a code and data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- it points to the authors' code: figshare 30111118, ef-lab/
ethopy_analysis , ef-lab/ethopy_control , ef-lab/ethopy_hardware , ef-lab/ethopy_package , Zenodo 19110086 - it says that the data are available on request
- it says that the code is available on request
Read it in the paper: doi.org/10.1016/j.crmeth.2026.101421.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 29 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 15 authors, 10 keywords, 6 MeSH terms, 10 funders, 78 references.
Cite
This paper
Evangelou, A., Diamantaki, M., Georgelou, K., Drakaki, Z., Ntanavara, L., Gerardos, G., Morou, S., Chatziris, N., Dogani, Z., Petsalaki, E. A., Raos, O. N., Gratsakis, A., Aliprantis, S., Papoutsi, A., & Froudarakis, E. (2026). EthoPy provides an accessible platform for reproducible behavioral neuroscience. Cell reports methods, 6(6), 101421. https://
BibTeX
@article{evangelou2026et
author = {Evangelou, Alexandros and Diamantaki, Maria and Georgelou, Konstantina and Drakaki, Zoi and Ntanavara, Lydia and Gerardos, Gerasimos and Morou, Sofia and Chatziris, Nikolaos and Dogani, Zoi and Petsalaki, Elissavet Anna and Raos, Odysseas Nikolaos and Gratsakis, Anastasios and Aliprantis, Stamatios and Papoutsi, Athanasia and Froudarakis, Emmanouil},
title = {{EthoPy provides an accessible platform for reproducible behavioral neuroscience}},
journal = {Cell reports methods},
year = {2026},
month = apr,
volume = {6},
number = {6},
pages = {101421},
publisher = {Elsevier},
issn = {2667-2375},
doi = {10.1016/
url = {https://
pmid = {42030950},
pmcid = {PMC13282661}
}
RIS
TY - JOUR
AU - Evangelou, Alexandros
AU - Diamantaki, Maria
AU - Georgelou, Konstantina
AU - Drakaki, Zoi
AU - Ntanavara, Lydia
AU - Gerardos, Gerasimos
AU - Morou, Sofia
AU - Chatziris, Nikolaos
AU - Dogani, Zoi
AU - Petsalaki, Elissavet Anna
AU - Raos, Odysseas Nikolaos
AU - Gratsakis, Anastasios
AU - Aliprantis, Stamatios
AU - Papoutsi, Athanasia
AU - Froudarakis, Emmanouil
TI - EthoPy provides an accessible platform for reproducible behavioral neuroscience
T2 - Cell reports methods
J2 - Cell Rep Methods
PY - 2026
DA - 2026/
VL - 6
IS - 6
SP - 101421
SN - 2667-2375
PB - Elsevier
DO - 10.1016/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1016/
"type": "article-journal",
"title": "EthoPy provides an accessible platform for reproducible behavioral neuroscience",
"container-title": "Cell reports methods",
"author": [
{
"family": "Evangelou",
"given": "Alexandros"
},
{
"family": "Diamantaki",
"given": "Maria"
},
{
"family": "Georgelou",
"given": "Konstantina"
},
{
"family": "Drakaki",
"given": "Zoi"
},
{
"family": "Ntanavara",
"given": "Lydia"
},
{
"family": "Gerardos",
"given": "Gerasimos"
},
{
"family": "Morou",
"given": "Sofia"
},
{
"family": "Chatziris",
"given": "Nikolaos"
},
{
"family": "Dogani",
"given": "Zoi"
},
{
"family": "Petsalaki",
"given": "Elissavet Anna"
},
{
"family": "Raos",
"given": "Odysseas Nikolaos"
},
{
"family": "Gratsakis",
"given": "Anastasios"
},
{
"family": "Aliprantis",
"given": "Stamatios"
},
{
"family": "Papoutsi",
"given": "Athanasia"
},
{
"family": "Froudarakis",
"given": "Emmanouil"
}
],
"container-title-short":
"volume": "6",
"issue": "6",
"page": "101421",
"DOI": "10.1016/
"PMID": "42030950",
"PMCID": "PMC13282661",
"ISSN": "2667-2375",
"publisher": "Elsevier",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
23
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1038/s41592-026-03076-z [code]
- Neuropixels Opto: combining high-resolution electrophysiology and optogenetics.Journal: Nature methodsIn common: Neurodata Without Borders (PyNWB, MatNWB), h5py, pandas, 3 other tools, mouse, 7 references
- [2] doi: [code]
- Real-time closed-loop feedback system for mouse mesoscale cortical signal and movement controlJournal: eLifeIn common: imageio, OpenCV, h5py, 6 other tools, mouse, 4 references
- [3] doi:10.1016/j.celrep.2026.117420 [code]
- Neural population dynamics of direct electrical stimulation of neocortex.Journal: Cell reportsIn common: Neurodata Without Borders (PyNWB, MatNWB), imageio, OpenCV, 6 other tools, mouse, 3 references
- [4] doi:10.7554/elife.109717 [code]
- Retrosplenial cortex enables context-dependent goal-directed sensorimotor transformation.Journal: eLifeIn common: Neurodata Without Borders (PyNWB, MatNWB), imageio, OpenCV, 7 other tools, mouse, 2 references
- [5] doi:10.7554/elife.110588 [code]
- Opening the black box toward a modular approach to spike sorting.Journal: eLifeIn common: Neurodata Without Borders (PyNWB, MatNWB), h5py, seaborn, 5 other tools, methods / tools, mouse, 4 references
- [6] doi:10.1038/s41593-026-02232-0 [code]
- Entorhinal cortex represents task-relevant remote locations independently of CA1.Journal: Nature neuroscienceIn common: Neurodata Without Borders (PyNWB, MatNWB), OpenCV, h5py, 6 other tools, mouse, 3 references
- [7] doi:10.1016/j.patter.2026.101590 [code]
- Density-based longitudinal neuron tracking in high-density electrophysiological recordings.Journal: Patterns (New York, N.Y.)In common: imageio, h5py, seaborn, 5 other tools, 5 references
- [8] doi:10.1038/s41586-026-10528-1 [code]
- A critical initialization for biological neural networks.Journal: NatureIn common: Neurodata Without Borders (PyNWB, MatNWB), scikit-learn, SciPy, 2 other tools, mouse, 6 references
- [9] doi:10.1093/bioinformatics/btag328 [code]
- eFEL: electrophysiology feature extraction library.Journal: Bioinformatics (Oxford, England)In common: Neurodata Without Borders (PyNWB, MatNWB), h5py, seaborn, 5 other tools, methods / tools, 3 references
- [10] doi:10.3389/fendo.2026.1828487 [code]
- Castration-induced nigrostriatal deficits are linked to reduced TrkB and loss of mature spines in the dorsal striatum.Journal: Frontiers in endocrinologyIn common: imageio, Plotly, OpenCV, 7 other tools, mouse, 1 reference
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 7 repositories of the authors' code, each at its verified commit and with its license, 220 scripts, and 13 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:19082c1b08cd2851…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
