OSCR

EthoPy provides an accessible platform for reproducible behavioral neuroscience.

Code ↔ Paper

13 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

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. [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. [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. [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. [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. [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. [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. [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. [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. [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. [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. [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. [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. [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

  1. import datajoint as dj
  2. import numpy as np
  3. from ethopy.core.behavior import Behavior
  4. from ethopy.core.logger import behavior
  5. @behavior.schema
  6. class MultiPort(Behavior, dj.Manual):
  7. definition = """
  8. # This class handles the behavior variables for RP
  9. ->behavior.BehCondition
  10. """
  11. class Response(dj.Part):
  12. definition = """
  13. # Lick response condition
  14. -> MultiPort
  15. response_port : tinyint # response port id
  16. """
  17. class Reward(dj.Part):
  18. definition = """
  19. # reward port conditions
  20. -> MultiPort
  21. ---
  22. reward_port : tinyint # reward port id
  23. reward_amount=0 : float # reward amount
  24. reward_type : varchar(16) # reward type
  25. """
  26. def __init__(self):
  27. super().__init__()
  28. self.cond_tables = ["MultiPort", "MultiPort.Response", "MultiPort.Reward"]
  29. self.required_fields = ["response_port", "reward_port", "reward_amount"]
  30. self.default_key = {"reward_type": "water"}
  31. def is_ready(self, duration, since=False):
  32. position, ready_time, tmst = self.interface.in_position()
  33. if duration == 0:
  34. return True
  35. elif position == 0 or position.ready == 0:
  36. return False
  37. elif not since:
  38. return ready_time > duration # in position for specified duration
  39. elif tmst >= since:
  40. # has been in position for specified duration since timepoint
  41. return ready_time > duration
  42. else:
  43. # has been in position for specified duration since timepoint
  44. return (ready_time + tmst - since) > duration
  45. def is_correct(self):
  46. """Check if the response port is correct.
  47. if current response port is -1, then any response port is correct
  48. otherwise if the response port is equal to the current response port/ports,
  49. then it is correct
  50. Returns:
  51. bool: True if correct, False otherwise
  52. """
  53. return self.curr_cond['response_port'] == -1 or \
  54. np.any(np.equal(self.response.port, self.curr_cond['response_port']))
  55. def is_off_proximity(self):
  56. return self.interface.off_proximity()
  57. def reward(self, tmst=0):
  58. """Give reward at latest licked port.
  59. After the animal has made a correct response, give the reward at the
  60. first port that animal has licked and is definded as reward.
  61. Args:
  62. tmst (int, optional): Time in milliseconds. Defaults to 0.
  63. Returns:
  64. bool: True if rewarded, False otherwise
  65. """
  66. # if response and reward ports are the same no need of tmst
  67. if self.response.reward:
  68. tmst = 0
  69. # check that the last licked port is also a reward port
  70. licked_port = self.is_licking(since=tmst, reward=True)
  71. rewarded_port = self.curr_cond["reward_port"]
  72. if licked_port and (rewarded_port == -1 or licked_port == rewarded_port):
  73. self.interface.give_liquid(licked_port)
  74. self.log_reward(self.reward_amount[self.licked_port])
  75. self.update_history(self.response.port, self.reward_amount[self.licked_port])
  76. return True
  77. return False
  78. def exit(self):
  79. super().exit()
  80. self.interface.cleanup()
  81. def punish(self):
  82. port = self.response.port if self.response.port > 0 else np.nan
  83. self.update_history(port, punish=True)

multi_port.py at commit b478cf9, under MIT · at the source

Overview

  1. Institute of Molecular Biology & Biotechnology, Foundation of Research & Technology - Hellas, Heraklion, Crete, Greece
  2. Department of Basic Sciences, Faculty of Medicine, University of Crete, Heraklion, Crete, Greece
Journal: Cell reports methods, volume 6, issue 6, article 101421
Dates: received 21 November 2025; accepted 30 March 2026; published online 23 April 2026; in print June 2026
Type: Research article · Language: English
License: CC BY-NC-ND
Identifiers: DOI 10.1016/j.crmeth.2026.101421 · PMID 42030950 · PMCID PMC13282661 · OpenAlex W7155410608
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: behavior only (modality), mouse (organism), methods / tools (subfield)
Keywords: behavioral training, high-throughput training, home-cage training, Python, open source, automated behavioral tasks, modular architecture, data reproducibility, brain-behavior integration, mouse
MeSH: Behavior, Animal*, Neurosciences*, Software*, Animals, Mice, Reproducibility of Results (* major topic)
Topic: Cell Image Analysis Techniques (Biophysics, Biochemistry, Genetics and Molecular Biology), according to OpenAlex
Funding: European Research Council (ERC-2022-STG); NEURACT (101076710); Hellenic Foundation for Research and Innovation; HFRI (4049); Funding of Basic Research; National Recovery and Resilience Plan; European Union – NextGenerationEU (016552); European Union’s Horizon 2020; Marie Skłodowska-Curie Actions (101025482); FlexBe
Citations: not cited yet (Europe PMC); 82 references in the paper

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

License: CC-BY-4.0
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Size: 8 files
Software Heritage: not checked
Found in: “Data and code availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 29 September 2026: the link answers (HTTP 200)
  • 29 September 2026: the link answers (HTTP 200)

Zenodo 19110086

License: CC-BY-4.0
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Size: 4 files
Software Heritage: not checked
Found in: “Data and code availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: NumPy (24 files), pandas (7 files), Matplotlib (6 files), OpenCV (2 files), SciPy (2 files), h5py (1 file), imageio (1 file), Neurodata Without Borders (PyNWB, MatNWB) (1 file), Plotly (1 file), scikit-learn (1 file), seaborn (1 file)
Availability: 1 check, the latest on 29 September 2026: the link answers (HTTP 200)
  • 29 September 2026: the link answers (HTTP 200)
102 files

ef-lab/ethopy_package

License: MIT
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: b478cf90a25c06301fc7fd5fd62dce9ae3250182, 10 September 2026
Languages: Python (61)
Size: 131 files, 61 scripts
Software Heritage: not archived
Found in: “Data and code availability”
Holds: README, license file, environment (pyproject.toml, requirements-lock.txt), tests, continuous integration, documentation
Not found: CITATION.cff
Tools: NumPy (19 files), OpenCV (2 files), SciPy (2 files), h5py (1 file), imageio (1 file), Neurodata Without Borders (PyNWB, MatNWB) (1 file), pandas (1 file), scikit-learn (1 file)
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
63 files

ef-lab/ethopy_control

License: MIT
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: 8bf7f82ed1b1d529015768b1dca703e480fc88e5, 2 September 2026
Languages: Python (14), JavaScript (1)
Size: 52 files, 15 scripts
Software Heritage: not archived
Found in: “Data and code availability”
Holds: README, license file, environment (docker-compose.yml, Dockerfile, pyproject.toml), tests, continuous integration, documentation
Not found: CITATION.cff
Tools: Plotly (1 file)
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
17 files

ef-lab/ethopy_analysis

License: MIT
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: b02138b105ea2490b1628b73c8bfbc12051e9a53, 10 September 2026
Languages: Python (17), Jupyter (3)
Size: 46 files, 20 scripts
Software Heritage: not archived
Found in: “Data and code availability”
Holds: README, license file, environment (constraints.txt, pyproject.toml), continuous integration, documentation, 3 notebooks
Not found: CITATION.cff, tests
Tools: Matplotlib (6 files), NumPy (6 files), pandas (6 files), seaborn (1 file)
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
22 files

ef-lab/ethopy_hardware

License: MIT
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: fd1c74230a7615d9238df146f265667c360ba2d2, 20 February 2026
Size: 111 files, 0 scripts
Software Heritage: not archived
Found in: “Data and code availability”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
2 files

ef-lab/ethopy_plugins

License: MIT
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: d7e08e3e140e7177352edde9ae9268b06749a560, 1 September 2026
Languages: Python (30)
Size: 62 files, 30 scripts
Software Heritage: not archived
Found in: the text, “EthoPy plugins”
Holds: README, license file, environment (openfield/requirements.txt), tests
Not found: CITATION.cff, continuous integration, documentation
Tools: NumPy (13 files), h5py (3 files), Neurodata Without Borders (PyNWB, MatNWB) (3 files), PsychoPy (2 files), SciPy (2 files)
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
32 files

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:

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:

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://doi.org/10.1016/j.crmeth.2026.101421

BibTeX

@article{evangelou2026ethopy,
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/j.crmeth.2026.101421},
url = {https://doi.org/10.1016/j.crmeth.2026.101421},
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/04/23
VL - 6
IS - 6
SP - 101421
SN - 2667-2375
PB - Elsevier
DO - 10.1016/j.crmeth.2026.101421
UR - https://doi.org/10.1016/j.crmeth.2026.101421
LA - en
ER -

CSL-JSON

{
"id": "10.1016/j.crmeth.2026.101421",
"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": "Cell Rep Methods",
"volume": "6",
"issue": "6",
"page": "101421",
"DOI": "10.1016/j.crmeth.2026.101421",
"PMID": "42030950",
"PMCID": "PMC13282661",
"ISSN": "2667-2375",
"publisher": "Elsevier",
"URL": "https://doi.org/10.1016/j.crmeth.2026.101421",
"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 methods
In 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 control
Journal: eLife
In 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 reports
In 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: eLife
In 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: eLife
In 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 neuroscience
In 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: Nature
In 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 endocrinology
In 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.

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.