OSCR

Natural noncoding <i>pumilio</i> variants retune value-coding interneurons to bias <i>Drosophila</i> oviposition decisions.

Code ↔ Paper

The paper beside its authors' code: matches between them have not been computed for this paper yet.

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 · 108 lines · 3.7 KB · CC-BY-4.0

  1. from dotenv import load_dotenv
  2. from flask import Flask
  3. from flask_dance.contrib.google import make_google_blueprint
  4. from flask_login import LoginManager
  5. from flask_session import Session
  6. from flask_socketio import SocketIO
  7. from flask_sqlalchemy import SQLAlchemy
  8. import os
  9. import warnings
  10. from project.lib.datamanagement.sql_backend_types import SQLBackendTypes
  11. from project.lib.web.backend_types import BackendTypes
  12. SOCKETIO_POLLING_ONLY = os.getenv("SOCKETIO_POLLING_ONLY", "1") == "1"
  13. class ReverseProxied(object):
  14. def __init__(self, app):
  15. self.app = app
  16. def __call__(self, environ, start_response):
  17. scheme = environ.get("HTTP_X_FORWARDED_PROTO")
  18. if scheme:
  19. environ["wsgi.url_scheme"] = scheme
  20. return self.app(environ, start_response)
  21. load_dotenv()
  22. db = SQLAlchemy()
  23. app = Flask(__name__)
  24. app.wsgi_app = ReverseProxied(app.wsgi_app)
  25. login_manager = LoginManager()
  26. backend_type = BackendTypes[os.getenv("EGG_COUNTING_BACKEND_TYPE")]
  27. sql_addr_type = SQLBackendTypes[os.getenv("SQL_ADDR_TYPE")]
  28. if backend_type == BackendTypes.sql:
  29. if sql_addr_type == SQLBackendTypes.shortname:
  30. sql_addr = (
  31. f"mysql://root:{os.environ['GOOGLE_SQL_DB_PASSWORD']}@"
  32. f"/data?unix_socket=/cloudsql/{os.environ['GOOGLE_SQL_CONN_NAME']}"
  33. )
  34. elif sql_addr_type == SQLBackendTypes.ip_addr:
  35. sql_addr = (
  36. f"mysql://root:{os.environ['GOOGLE_SQL_DB_PASSWORD']}@"
  37. f"{os.environ['GOOGLE_SQL_DB_PVT_IP']}/data"
  38. )
  39. elif sql_addr_type == SQLBackendTypes.sqlite:
  40. sql_addr = "sqlite:///db.sqlite"
  41. flask_session_type = "sqlalchemy"
  42. elif backend_type == BackendTypes.filesystem:
  43. flask_session_type = "filesystem"
  44. app.config["BACKEND_TYPE"] = backend_type
  45. app.config["SQLALCHEMY_DATABASE_URI"] = sql_addr
  46. app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
  47. db.init_app(app)
  48. app.config["SESSION_TYPE"] = flask_session_type
  49. session = Session(app)
  50. if flask_session_type == "sqlalchemy":
  51. with app.app_context():
  52. session.app.session_interface.db.create_all()
  53. socketio_kwargs = dict(manage_session=False)
  54. if SOCKETIO_POLLING_ONLY:
  55. socketio_kwargs.update(transports=['polling'], allow_upgrades=False)
  56. socketIO = SocketIO(app, **socketio_kwargs)
  57. sessions = {}
  58. UPLOAD_FOLDER = "./uploads"
  59. ALLOWED_EXTENSIONS = {"png", "jpg", "jpeg", "gif", "tif"}
  60. def create_app():
  61. warnings.filterwarnings("ignore", category=DeprecationWarning)
  62. warnings.filterwarnings(
  63. "default",
  64. message="OpenBLAS WARNING - could not determine the L2 cache size on"
  65. + " this system, assuming 256k",
  66. )
  67. os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
  68. os.environ["OAUTHLIB_RELAX_TOKEN_SCOPE"] = "1"
  69. app.config["UPLOAD_FOLDER"] = UPLOAD_FOLDER
  70. app.google_client_id = os.getenv("GOOGLE_CLIENT_ID")
  71. app.google_client_secret = os.getenv("GOOGLE_CLIENT_SECRET")
  72. app.secret_key = os.getenv("SECRET_KEY")
  73. login_manager.login_view = "auth.login"
  74. login_manager.init_app(app)
  75. from .lib.datamanagement.models import User
  76. @login_manager.user_loader
  77. def load_user(user_id):
  78. return User.query.get(int(user_id))
  79. app.socketIO = socketIO
  80. from project.routes.auth import auth as auth_blueprint
  81. from project.routes.main import main as main_blueprint
  82. from project.routes.tasks import tasks as tasks_blueprint
  83. google_blueprint = make_google_blueprint(
  84. client_id=app.google_client_id,
  85. client_secret=app.google_client_secret,
  86. reprompt_consent=True,
  87. scope=["profile", "email"],
  88. )
  89. app.register_blueprint(main_blueprint)
  90. app.register_blueprint(auth_blueprint)
  91. app.register_blueprint(tasks_blueprint)
  92. app.register_blueprint(google_blueprint, url_prefix="/login")
  93. return app

__init__.py, under CC-BY-4.0 · at the source

Overview

  1. Dept. of Neurobiology, Duke University Medical School, Durham, NC 27710, USA
  2. Dept. of Biology, University of North Carolina, Chapel Hill, NC 27599, USA
  3. Dept. of Cell Biology and Physiology, University of North Carolina, Chapel Hill, NC 27599, USA
  4. Integrative Program for Biological and Genome Science, University of North Carolina, Chapel Hill, NC 27599, USA
Institutions: Duke University (United States); Duke Medical Center (United States); University of North Carolina at Chapel Hill (United States)
Journal: Science advances, volume 12, issue 19, article eaed1338
Dates: received 15 October 2025; accepted 6 April 2026; published online 8 May 2026; in print May 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1126/sciadv.aed1338 · PMID 42102200 · PMCID PMC13155294 · OpenAlex W7160697979
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: drosophila (organism), cellular / molecular (subfield)
Methods: Spectral & time-frequency, Statistics, Evoked potentials, fMRI & imaging, Single-unit activity, calcium imaging
MeSH: Drosophila*, Drosophila melanogaster*, Drosophila Proteins*, Interneurons*, Oviposition*, RNA-Binding Proteins*, Animals, Female, Polymorphism, Single Nucleotide, Sodium Channels (* major topic)
Topic: Neurobiology and Insect Physiology Research (Cellular and Molecular Neuroscience, Neuroscience), according to OpenAlex
Funding: Invertebrate Neuroscience Research Grant; National Science Foundation (2034783); National Institute on Deafness and Other Communication Disorders (R01DC018874)
Citations: not cited yet (Europe PMC); 42 references in the paper

Abstract

How natural regulatory genetic variation creates innate biases in economic decisions through modifying circuit structure and function is rarely explored. Here, we trace this link in a simple value-based decision in Drosophila: where to oviposit. Although laboratory flies (w1118) reject sucrose for a plain option, a wild-caught African strain accepts sucrose. This decision difference maps to three African-specific intronic SNPs in pumilio (pum), an RNA binding translational repressor. These SNPs down-regulate pum, derepressing its target, the sodium channel paralytic (para), in a pair of GABAergic interneurons that encode option value. Elevated para boosts neuronal excitability, compresses value contrast between sucrose and plain options, and promotes sucrose acceptance. Selectively reducing pum or overexpressing para in these neurons converts the laboratory flies’ physiology and behavior to the African phenotype. These findings offer a genome-to-circuit-to-behavior framework, revealing how subtle regulatory polymorphisms fine-tune circuit properties to diversify environment-appropriate decision biases in nature.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repositories

Its files are read in the Code ↔ Paper reader above.

Zenodo 18839001

License: CC-BY-4.0
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: the text, “Egg-laying assay (standard)”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: NumPy (22 files), OpenCV (11 files), PyTorch (10 files), Pillow (5 files), SciPy (5 files), scikit-image (3 files), Matplotlib (2 files), scikit-learn (1 file)
Availability: 1 check, the latest on 28 September 2026: the link answers (HTTP 200)
  • 28 September 2026: the link answers (HTTP 200)
68 files

rcalfredson/eggsactly

License: none: the authors keep all their rights
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Commit: 5c66e1b47c055b99913bc7967e2584782dbf346c, 3 March 2026
Languages: Python (60), Shell (6), JavaScript (1)
Size: 117 files, 67 scripts
Software Heritage: not archived
Found in: the Zenodo archive record
Holds: README, environment (Dockerfile, environment.cuda11.0.yml, environment.cuda11.6.yml, requirements.3.13.txt, requirements.3.9.txt), tests, documentation
Not found: license file, CITATION.cff, continuous integration
Tools: NumPy (22 files), OpenCV (11 files), PyTorch (10 files), Pillow (5 files), SciPy (5 files), scikit-image (3 files), Matplotlib (2 files), scikit-learn (1 file)
Availability: 1 check, the latest on 28 September 2026: the link answers
  • 28 September 2026: the link answers
68 files, not copied: shown from their source

OSCR keeps no copy of these files: this repository has no license that allows it. The reader above shows each one from its source, fetched by your browser at commit 5c66e1b, when its fingerprint is the one OSCR verified. How this works.

The paper's code and data availability statement is in the Data section.

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:

  • 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 134 scripts, each with its path and the digest of its content;
  • no match between paragraphs and code yet;
  • 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.

Data, code, and materials availability

All data and code needed to evaluate and reproduce the results in the paper are present in the paper and/or the Supplemental Materials. Details for how to synthesize materials or access specific repositories are in the Materials and Methods section. Raw traces can be found here: https://doi.org/10.5281/zenodo.18836685.

Reproduced under the paper's license (CC BY), from the paper cited above.

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, 28 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 9 authors, 10 MeSH terms, 3 funders, 42 references.

Cite

This paper

Motevalli, D., Alfredson, R., Fogleman, S., Medrano, E., Chen, Y., Silander, W. I., Hige, T., Stern, U., & Yang, C.-H. (2026). Natural noncoding <i>pumilio</i> variants retune value-coding interneurons to bias <i>Drosophila</i> oviposition decisions. Science advances, 12(19), eaed1338. https://doi.org/10.1126/sciadv.aed1338

BibTeX

@article{motevalli2026natural,
author = {Motevalli, Dorsa and Alfredson, Robert and Fogleman, Sydney and Medrano, Emmanuel and Chen, Yang and Silander, William I and Hige, Toshihide and Stern, Ulrich and Yang, Chung-Hui},
title = {{Natural noncoding \<i\>pumilio\</i\> variants retune value-coding interneurons to bias \<i\>Drosophila\</i\> oviposition decisions}},
journal = {Science advances},
year = {2026},
month = may,
volume = {12},
number = {19},
pages = {eaed1338},
publisher = {American Association for the Advancement of Science},
issn = {2375-2548},
doi = {10.1126/sciadv.aed1338},
url = {https://doi.org/10.1126/sciadv.aed1338},
pmid = {42102200},
pmcid = {PMC13155294}
}

RIS

TY - JOUR
AU - Motevalli, Dorsa
AU - Alfredson, Robert
AU - Fogleman, Sydney
AU - Medrano, Emmanuel
AU - Chen, Yang
AU - Silander, William I
AU - Hige, Toshihide
AU - Stern, Ulrich
AU - Yang, Chung-Hui
TI - Natural noncoding <i>pumilio</i> variants retune value-coding interneurons to bias <i>Drosophila</i> oviposition decisions
T2 - Science advances
J2 - Sci Adv
PY - 2026
DA - 2026/05/08
VL - 12
IS - 19
SP - eaed1338
SN - 2375-2548
PB - American Association for the Advancement of Science
DO - 10.1126/sciadv.aed1338
UR - https://doi.org/10.1126/sciadv.aed1338
LA - en
ER -

CSL-JSON

{
"id": "10.1126/sciadv.aed1338",
"type": "article-journal",
"title": "Natural noncoding <i>pumilio</i> variants retune value-coding interneurons to bias <i>Drosophila</i> oviposition decisions",
"container-title": "Science advances",
"author": [
{
"family": "Motevalli",
"given": "Dorsa"
},
{
"family": "Alfredson",
"given": "Robert"
},
{
"family": "Fogleman",
"given": "Sydney"
},
{
"family": "Medrano",
"given": "Emmanuel"
},
{
"family": "Chen",
"given": "Yang"
},
{
"family": "Silander",
"given": "William I"
},
{
"family": "Hige",
"given": "Toshihide"
},
{
"family": "Stern",
"given": "Ulrich"
},
{
"family": "Yang",
"given": "Chung-Hui"
}
],
"container-title-short": "Sci Adv",
"volume": "12",
"issue": "19",
"page": "eaed1338",
"DOI": "10.1126/sciadv.aed1338",
"PMID": "42102200",
"PMCID": "PMC13155294",
"ISSN": "2375-2548",
"publisher": "American Association for the Advancement of Science",
"URL": "https://doi.org/10.1126/sciadv.aed1338",
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
8
]
]
}
}

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/s41467-026-72057-9 [code]
Sex-specific behavioral feedback modulates sensorimotor processing and drives flexible social behavior.
Journal: Nature communications
In common: OpenCV, scikit-image, Pillow, 5 other tools, drosophila, 3 references
[2] doi:10.1038/s41586-026-10735-w [code]
Distributed control circuits across a brain-and-cord connectome.
Journal: Nature
In common: scikit-image, PyTorch, scikit-learn, 3 other tools, drosophila, 5 references
[3] doi:10.3389/fnsys.2026.1822122 [code]
Convergence-divergence circuits for multimodal integration of innate and learned opponent valences.
Journal: Frontiers in systems neuroscience
In common: scikit-image, Pillow, PyTorch, 4 other tools, 4 references
[4] doi:10.1371/journal.pcbi.1013499 [code]
VesiclePy: A machine learning vesicle analysis toolbox for volume electron microscopy.
Journal: PLoS computational biology
In common: OpenCV, scikit-image, Pillow, 5 other tools, 2 references
[5] doi:10.1038/s41467-026-72152-x [code]
Centralized brain networks controlling antennal grooming coordination.
Journal: Nature communications
In common: OpenCV, scikit-learn, SciPy, 2 other tools, drosophila, 4 references
[6] doi:10.7554/elife.103359
Circadian control of a sex-specific behavior in <i>Drosophila</i>.
Journal: eLife
In common: drosophila, 6 references
[7] doi:10.1016/j.isci.2026.116206 [code]
Gut distension evokes rapid neural dynamics in vagal and hindbrain populations of larval zebrafish.
Journal: iScience
In common: OpenCV, scikit-image, Pillow, 5 other tools, 1 reference
[8] doi:10.1016/j.crmeth.2026.101429 [code]
DRIFT-EM enables direct wafer retrieval of ultrathin serial sections for large-volume electron microscopy.
Journal: Cell reports methods
In common: OpenCV, scikit-image, Pillow, 3 other tools, 2 references
[9] doi:10.1007/s00429-026-03166-w [code]
Autoencoders for unsupervised analysis of rat myeloarchitecture.
Journal: Brain structure & function
In common: OpenCV, scikit-image, Pillow, 5 other tools, cellular / molecular
[10] doi:10.1038/s42003-026-10957-8 [code]
Brain defence by the extracellular matrix protein Cochlin.
Journal: Communications biology
In common: OpenCV, scikit-image, Pillow, 5 other tools, cellular / molecular

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.