OSCR

Population morphology implies a common developmental blueprint for Drosophila motion detectors.

Code ↔ Paper

12 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 12 matches
  1. [1] § Materials and methods › Dendrite root point nearest neighbour matching ↔ .history/src/Nearest_neighbours_20251210183229.py, lines 178–278 · score 0.74 · maximum cardinality matching, graph tool, euclidean distance, nearest neighbour, optimal
  2. [2] § Materials and methods › Dendrite root point nearest neighbour matching ↔ .history/src/Nearest_neighbours_20251210183255.py, lines 181–281 · score 0.74 · maximum cardinality matching, graph tool, euclidean distance, nearest neighbour, optimal
  3. [3] § Results › Dendrite topology › Explorative analysis of section length distributions. ↔ src/dist_fit.py, lines 152–216 · score 0.68 · log logistic, log normal, fitting distribution, exponential, Weibull, BIC
  4. [4] § Results › Dendrite spatial embedding › Dendrite depth. ↔ Notebooks/Figure_3.ipynb, lines 32–88 · score 0.67 · dendrite point depths, probability mass, Medulla layer, root points, Neuropil, distance
  5. [5] § Materials and methods › Explorative distribution fitting ↔ src/dist_fit.py, lines 152–216 · score 0.65 · log logistic, log normal, exponential, Weibull, BIC, gamma
  6. [6] § Results › Dendrite spatial embedding › Dendrite depth. ↔ Notebooks/Figure_3.ipynb, lines 32–88 · score 0.63 · neuropil depth, dendrite points, Medulla layer, root point, distance, hemisphere
  7. [7] § Results › Dendrite spatial embedding › Dendrite volume. ↔ Notebooks/Figure_2.ipynb, lines 193–229 · score 0.55 · neuropil layer volume, dendrite convex hull, Lobula layer, Medulla layer, Figure 2
  8. [8] § Materials and methods › Statistical analysis ↔ .history/src/paper_ANOVA_20251209205500.py, lines 483–524 · score 0.53 · Post hoc pairwise, stratified bootstrap, confidence interval
  9. [9] § Materials and methods › Statistical analysis ↔ .history/src/paper_ANOVA_20251210142449.py, lines 483–524 · score 0.53 · Post hoc pairwise, stratified bootstrap, confidence interval
  10. [10] § Results › Dendrite spatial embedding › Dendrite shape. ↔ Notebooks/Figure_2.ipynb, lines 193–229 · score 0.53 · convex hull volumes, dendrite populations, Lobula layer, Medulla layer, medians, DV
  11. [11] § Results › Dendrite topology › Dendrite graph structure. ↔ Notebooks/Metrics1_Point_data.ipynb, lines 35–65 · score 0.52 · convex hull volume, cable length, external, segments, nodes, subtypes
  12. [12] § Results › Dendrite spatial embedding › Dendrite volume. ↔ Notebooks/Metrics1_Point_data.ipynb, lines 35–65 · score 0.51 · convex hull volume, cable length, branching, nodes, root

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 · 216 lines · 6.3 KB · no license · 2 matches

  1. from fitter import Fitter
  2. import scipy.stats as stats
  3. import numpy as np
  4. import pandas as pd
  5. from .figure_Tools import Subtypes, Subtype_colours
  6. class DistributionFitter:
  7. def __init__(self, df, DV_col, isExternal, xmin, xmax, n_bins, progress=False):
  8. """
  9. Core class to fit distributions to subsets of data and summarize results.
  10. """
  11. self.df = df
  12. self.DV_col = DV_col
  13. self.isExternal = isExternal
  14. self.xmin = xmin
  15. self.xmax = xmax
  16. self.n_bins = n_bins
  17. self.progress = progress
  18. self.nTypes = ["T4", "T5"]
  19. self.nSubtypes = ["a", "b", "c", "d"]
  20. self.output_dict = {t: {s: [] for s in self.nSubtypes} for t in self.nTypes}
  21. def fit_distributions(self, distributions=None):
  22. """
  23. Fit distributions to all type-subtype combinations.
  24. """
  25. if distributions is None:
  26. distributions = ["lognorm", "gamma", "wald", "expon", "fisk", "weibull_min"]
  27. for t in self.nTypes:
  28. for s in self.nSubtypes:
  29. if self.progress:
  30. print(f"Fitting to {t}{s}")
  31. data = self.df.loc[
  32. (self.df.Subtype == t + s)
  33. & (self.df.isExternal == self.isExternal),
  34. self.DV_col,
  35. ].values
  36. f = Fitter(
  37. data,
  38. xmin=self.xmin,
  39. xmax=self.xmax,
  40. bins=self.n_bins,
  41. distributions=distributions,
  42. )
  43. f.fit()
  44. self.output_dict[t][s] = {"Data": data, "Fit": f}
  45. return self.output_dict
  46. @staticmethod
  47. def log_lik(data, f, dist_name):
  48. """
  49. Compute log-likelihood for given data and distribution.
  50. """
  51. dist = getattr(stats, dist_name)
  52. params = f.fitted_param[dist_name]
  53. if dist.shapes:
  54. n_shapes = len(dist.shapes.split(","))
  55. shapes = params[:n_shapes]
  56. else:
  57. shapes = ()
  58. loc = params[len(shapes)]
  59. scale = params[len(shapes) + 1]
  60. logpdf_vals = dist.logpdf(data, *shapes, loc=loc, scale=scale)
  61. return np.sum(logpdf_vals)
  62. def bestFit_summary(self):
  63. """
  64. Summarize best-fitting distributions based on BIC.
  65. """
  66. summary_data = {
  67. "Type": [],
  68. "Subtype": [],
  69. "Best_distribution": [],
  70. "BIC": [],
  71. "Log_likelihood": [],
  72. "Parameters": [],
  73. }
  74. for t in self.nTypes:
  75. for s in self.nSubtypes:
  76. fit_obj = self.output_dict[t][s]["Fit"]
  77. data = self.output_dict[t][s]["Data"]
  78. best_dist = fit_obj.summary(Nbest=1, method="bic", plot=False)[
  79. "bic"
  80. ].index[0]
  81. best_bic = fit_obj.summary(Nbest=1, method="bic", plot=False)[
  82. "bic"
  83. ].values[0]
  84. params = fit_obj.fitted_param[best_dist]
  85. ll = self.log_lik(data, fit_obj, best_dist)
  86. summary_data["Type"].append(t)
  87. summary_data["Subtype"].append(s)
  88. summary_data["Best_distribution"].append(best_dist)
  89. summary_data["BIC"].append(best_bic)
  90. summary_data["Log_likelihood"].append(ll)
  91. summary_data["Parameters"].append(params)
  92. return pd.DataFrame(summary_data)
  93. @staticmethod
  94. def _plot_pdf(ax, xmin, xmax, num_points, dist_name, params=(), c="r", label=""):
  95. """
  96. Plot a single PDF curve on an axis.
  97. """
  98. x = np.linspace(xmin, xmax, num_points)
  99. try:
  100. dist = getattr(stats, dist_name)
  101. except AttributeError:
  102. raise ValueError(f"Distribution '{dist_name}' not found in scipy.stats")
  103. y = dist.pdf(x, *params)
  104. ax.plot(x, y, c=c, label=label)
  105. def plot_density(self, ax, dist_name, scale=1):
  106. """
  107. Plot fitted PDFs and pooled data histogram.
  108. """
  109. for i, st in enumerate(Subtypes):
  110. t = st[:2]
  111. s = st[-1]
  112. c = Subtype_colours[i]
  113. params = self.output_dict[t][s]["Fit"].fitted_param[dist_name]
  114. self._plot_pdf(
  115. ax, self.xmin, self.xmax, 1000, dist_name, params, c=c, label=st
  116. )
  117. # Pooled data histogram
  118. data = self.df.loc[self.df.isExternal == self.isExternal, self.DV_col].values
  119. counts, bins = np.histogram(
  120. data, range=(self.xmin, self.xmax), bins=self.n_bins, density=True
  121. )
  122. ax.bar(
  123. x=bins[1:],
  124. height=counts,
  125. width=(bins[1] - bins[0]) * scale,
  126. color="gray",
  127. alpha=0.4,
  128. label="Observed Pooled data",
  129. )
  130. def BIC_comparison_plot(ax, dist_fits):
  131. index_order = ["gamma", "lognorm", "weibull_min", "fisk", "wald", "expon"]
  132. x_labels = [
  133. "Gamma",
  134. "Log Normal",
  135. "Minimum \nWeibull",
  136. "Log Logistic",
  137. "Wald",
  138. "Exponential",
  139. ]
  140. metric = "bic"
  141. types = ["T4", "T5"]
  142. subtypes = ["a", "b", "c", "d"]
  143. vals = []
  144. for i, n_type in enumerate(types):
  145. for j, n_subtype in enumerate(subtypes):
  146. tmp_df = dist_fits.output_dict[n_type][n_subtype]["Fit"].df_errors.reindex(
  147. index_order
  148. )
  149. vals.append(tmp_df[metric].values)
  150. vals = np.column_stack(vals)
  151. var = np.std(vals, axis=1, ddof=1)
  152. means = vals.mean(axis=1)
  153. x = np.arange(1, 7)
  154. ax.errorbar(
  155. x=x - 0.05,
  156. y=means,
  157. yerr=var,
  158. fmt="o",
  159. color="gray",
  160. alpha=1,
  161. ms = 4,
  162. label="mean $\pm$ 1 std",
  163. )
  164. ax.axhline(
  165. y=means.min(), xmin=0, xmax=8, ls="--", c="k", label="Minimum \nMean BIC", alpha = 0.6
  166. )
  167. # add individual population points
  168. for i, subtype in enumerate(Subtypes):
  169. ax.scatter(
  170. x=x + 0.05,
  171. y=vals[:, i],
  172. c=Subtype_colours[i],
  173. s=8,
  174. label=subtype,
  175. alpha=1,
  176. zorder=100,
  177. )
  178. ax.set_xticks(ticks=x, labels=x_labels)
  179. ax.tick_params(axis="x", labelrotation=45)
  180. ax.set_xlabel("Fitted Distribution")
  181. ax.set_ylabel("BIC")
  182. ax.spines["right"].set_visible(False)
  183. ax.spines["top"].set_visible(False)

dist_fit.py at commit 3a1aa1a, no license · at the source

Overview

Authors: Nikolas Drummond1, Arthur Zhao2, Alexander Borst1
  1. Department of Circuits - Computation - Models, Max Planck Institute for Biological Intelligence, Munich, Germany
  2. Reiser Lab, HHMI Janelia Research Campus, Ashburn, Virginia, United States of America
Journal: PLoS computational biology, volume 22, issue 8, article e1014657
Dates: received 19 January 2026; accepted 3 August 2026; published online 31 August 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1371/journal.pcbi.1014657 · PMID 42672104 · PMCID PMC13557502 · OpenAlex W4416396678
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: drosophila (organism)
Methods: Spectral & time-frequency, Connectivity, Statistics, Graphs, Machine learning
MeSH: Drosophila melanogaster*, Motion Perception*, Animals, Brain, Computational Biology, Dendrites, Female, Models, Neurological, Neurons, Visual Pathways (* major topic)
Journal subjects: Biology and Life Sciences, Cell Biology, Cellular Types, Animal Cells, Neurons, Neuronal Dendrites, Neuroscience, Cellular Neuroscience, Glial Cells, Neuropil, Dendritic Structure, Organisms, Eukaryota, Plants, Trees, Cognitive Science, Cognitive Psychology, Perception, Sensory Perception, Vision, Psychology, Social Sciences, Anatomy, Brain, Cerebral Hemispheres, Right Hemisphere, Medicine and Health Sciences, Left Hemisphere
Topic: Neurobiology and Insect Physiology Research (Cellular and Molecular Neuroscience, Neuroscience), according to OpenAlex
Funding: Max-Planck-Gesellschaft (Max Planck Society); HHMI Janelia Research Campus
Citations: not cited yet (Europe PMC); 77 references in the paper

Abstract

T4 and T5 neurons are the first direction-selective neurons in the visual pathway. They are the most numerous cell types in the fly brain (~6000 within each optic lobe) and, as a population, their compact dendritic arbours span the entire visual field. They are classified into four subtypes (a, b, c, and d). Each subtype encodes one of four orthogonal motion directions (up, down, forwards, backwards). Crucially, the dendrites of these neurons are oriented inversely to the functional direction of motion which they encode. This dendritic orientation is what ultimately determines their functional directional encoding. The development of these neurons is well characterised up to the point of neuropil innervation. However, the full population of these neurons innervate their target neuropil prior to the emergence of directionality within their dendrites. As it stands, development prior to the emergence of dendritic orientations, and the adult oriented dendrite are both well understood, but the key components relating to the emergence of orientation itself are missing. Recent whole-brain electron microscopy (EM) connectomes of Drosophila melanogaster provide an unprecedented level of resolution and completeness when considering the morphology of neurons. Utilising this, we isolate the dendritic arbour of every T4 and T5 neuron within a female adult Drosophila brain, made available through FAFB-FlyWire. In doing so we are able to rigorously quantify the morphology of these dendrites in order to understand their similarities and differences. In doing so we aim to shed light on the origins of dendritic directionality. We reason that either this emerges through a tightly controlled, subtype specific mechanism, or is the result of a subtype agnostic mechanism and external factors. In the former case, we would expect evidence of this in differences between the morphological structure of individual dendrites between T4 and T5, and their subtypes. Our analysis however reveals a high degree of structural similarity between T4 and T5, and within their subtypes. Particularly, the geometry of branching, section orientation, and tree-graph structure of these dendrites show only minor variability, with no consistent separation between T4 and T5, or their subtypes. These results indicate that, despite forming in different neuropils, and serving distinct motion directions, T4 and T5 dendrites follow closely aligned morphological patterns. This suggests a shared mechanism of directed outgrowth, as opposed to symmetry breaking emerging through neuron type or subtype specific mechanisms.

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

Repositories

Its files are read in the Code ↔ Paper reader above, with 12 matches between paragraphs and lines of code.

Zenodo 21876360

License: CC-BY-4.0
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: “Data Availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: NumPy (198 files), pandas (119 files), statsmodels (78 files), SciPy (67 files), Matplotlib (50 files), JAX (21 files), scikit-learn (1 file), seaborn (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
  • 27 September 2026: the link answers (HTTP 200)
224 files

NikDrummond/NeuRosetta

License: LGPL-3.0
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: e9baa35b63fbafe2fc85a9d03f3fd5ebc45108c8, 15 September 2026
Languages: Python (2661), Jupyter (7), JavaScript (2)
Size: 2,755 files, 2,670 scripts
Software Heritage: not archived
Found in: “Data Availability”
Holds: README, license file, environment (environment.yml, pyproject.toml), tests, continuous integration, documentation, 7 notebooks
Not found: CITATION.cff
Tools: NumPy (1,110 files), pandas (310 files), Matplotlib (163 files)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
2,000 files

borstlab/t4_t5_dendrite_morphology_paper

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 3a1aa1a2e368ff8767f40791588eaf552e6d436d, 10 August 2026
Languages: Python (201), Jupyter (22)
Size: 284 files, 223 scripts
Software Heritage: not archived
Found in: the Zenodo archive record
Holds: README, environment (conda-environment.yml, .history/conda-environment_20260116143542.yml, .history/conda-environment_20260116143549.yml, .history/conda-environment_20260116143556.yml, .history/conda-environment_20260116143559.yml, .history/conda-environment_20260116143600.yml, .history/conda-environment_20260116144038.yml, .history/conda-environment_20260116144040.yml, .history/conda-environment_20260116144043.yml, .history/conda-environment_20260116144046.yml, .history/conda-environment_20260116144052.yml, .history/conda-environment_20260116144056.yml), 22 notebooks
Not found: license file, CITATION.cff, tests, continuous integration, documentation
Tools: NumPy (198 files), pandas (119 files), statsmodels (78 files), SciPy (67 files), Matplotlib (50 files), JAX (21 files), scikit-learn (1 file), seaborn (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
224 files

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:

  • 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 2,446 scripts, each with its path and the digest of its content;
  • 12 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

Datasets cited

Data Availability

The open source Python toolboxes ”fafbseg” [77], ”skeletor” [69], and ”navis” [68] were used to obtain and skeletonize neuron meshes. The code repository associated with this paper is available online (https://doi.org/10.5281/zenodo.21876360). This includes example Jupyter notebooks illustrating how to access the data from FAFB-FlyWire, download meshes, and skeletonize neurons using fafbseg and navis. Additionally, we provide the code required for going from an swc file representation of a complete neuron to individual extracted dendrites and code for the calculation of all metrics, as well as alignment and scaling steps implemented within the paper. This requires the ”NeuRosetta” toolbox, available online (https://github.com/NikDrummond/NeuRosetta). This toolbox also includes the GUI used for manual verification of dendrites and dendrite annotation. Finally, we provide additional notebooks, as well as custom python code illustrating the implementation of analysis and plotting using standard python libraries. An additional datastore is available online (https://doi.org/10.5281/zenodo.21876510) which includes data files for all extracted dendrite metrics used within this manuscript.

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 2, 28 September 2026

  • Authors: added Arthur Zhao (0000-0003-2869-4393); removed Arthur Zhao

Version 1, 27 September 2026: the first record

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

Cite

This paper

Drummond, N., Zhao, A., & Borst, A. (2026). Population morphology implies a common developmental blueprint for Drosophila motion detectors. PLoS computational biology, 22(8), e1014657. https://doi.org/10.1371/journal.pcbi.1014657

BibTeX

@article{drummond2026population,
author = {Drummond, Nikolas and Zhao, Arthur and Borst, Alexander},
title = {{Population morphology implies a common developmental blueprint for Drosophila motion detectors}},
journal = {PLoS computational biology},
year = {2026},
month = aug,
volume = {22},
number = {8},
pages = {e1014657},
publisher = {PLOS},
issn = {1553-734X},
doi = {10.1371/journal.pcbi.1014657},
url = {https://doi.org/10.1371/journal.pcbi.1014657},
pmid = {42672104},
pmcid = {PMC13557502}
}

RIS

TY - JOUR
AU - Drummond, Nikolas
AU - Zhao, Arthur
AU - Borst, Alexander
TI - Population morphology implies a common developmental blueprint for Drosophila motion detectors
T2 - PLoS computational biology
J2 - PLoS Comput Biol
PY - 2026
DA - 2026/08/31
VL - 22
IS - 8
SP - e1014657
SN - 1553-734X
PB - PLOS
DO - 10.1371/journal.pcbi.1014657
UR - https://doi.org/10.1371/journal.pcbi.1014657
LA - en
ER -

CSL-JSON

{
"id": "10.1371/journal.pcbi.1014657",
"type": "article-journal",
"title": "Population morphology implies a common developmental blueprint for Drosophila motion detectors",
"container-title": "PLoS computational biology",
"author": [
{
"family": "Drummond",
"given": "Nikolas"
},
{
"family": "Zhao",
"given": "Arthur"
},
{
"family": "Borst",
"given": "Alexander"
}
],
"container-title-short": "PLoS Comput Biol",
"volume": "22",
"issue": "8",
"page": "e1014657",
"DOI": "10.1371/journal.pcbi.1014657",
"PMID": "42672104",
"PMCID": "PMC13557502",
"ISSN": "1553-734X",
"publisher": "PLOS",
"URL": "https://doi.org/10.1371/journal.pcbi.1014657",
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
31
]
]
}
}

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.7554/elife.108529 [code]
Inhibitory columnar feedback neurons are involved in motion processing in <i>Drosophila</i>.
Journal: eLife
In common: SciPy, Matplotlib, NumPy, drosophila, 13 references
[2] doi:10.1038/s41586-026-10735-w [code]
Distributed control circuits across a brain-and-cord connectome.
Journal: Nature
In common: seaborn, scikit-learn, pandas, 3 other tools, drosophila, 9 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: seaborn, scikit-learn, pandas, 3 other tools, 7 references
[4] doi:10.1371/journal.pbio.3003959 [code]
Recurrent synapses between CO2-sensitive olfactory sensory neurons enable robust CO2 detection in Aedes aegypti mosquitoes.
Journal: PLoS biology
In common: statsmodels, seaborn, scikit-learn, 4 other tools, drosophila, 5 references
[5] doi:10.1038/s41467-026-72152-x [code]
Centralized brain networks controlling antennal grooming coordination.
Journal: Nature communications
In common: statsmodels, seaborn, scikit-learn, 4 other tools, drosophila, 5 references
[6] doi:10.1016/j.isci.2026.117359 [code]
Connectomic mapping of pharyngeal and gut sensory circuits in adult <i>Drosophila</i>.
Journal: iScience
In common: statsmodels, seaborn, pandas, 3 other tools, drosophila, 4 references
[7] doi:10.1038/s41598-026-48613-0 [code]
An snRNA-seq aging clock for the fruit fly head sheds light on sex-biased aging.
Journal: Scientific reports
In common: seaborn, scikit-learn, pandas, 3 other tools, drosophila, 3 references
[8] 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: statsmodels, seaborn, scikit-learn, 4 other tools, drosophila, 2 references
[9] doi:10.1371/journal.pcbi.1014571 [code]
SynAPSeg: A novel dataset and image analysis framework for deep learning-based synapse detection and quantification.
Journal: PLoS computational biology
In common: statsmodels, seaborn, scikit-learn, 4 other tools, 2 references
[10] doi:10.1038/s42003-026-10957-8 [code]
Brain defence by the extracellular matrix protein Cochlin.
Journal: Communications biology
In common: JAX, statsmodels, seaborn, 5 other tools

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.