Developmental dynamics of catshark cranial neural crest cells provide insights into gnathostome facial evolution.
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
Jupyter notebook · 181 lines · 5.2 KB · GPL-3.0
- # %% [markdown]
- # # Welcome to the HCR 3.0 Probe Maker v0.3.2
- # ### Written by:
- # RW Null, MD Ramirez, D Sun, and BD Özpolat
- # %% [markdown]
- #
- # ### To run a cell, click on it, hold "SHIFT" and press "RETURN" on your keyboard
- #
- # #### - or - use the [>| Run] button above
- # %% [markdown]
- # # Start with this box.
- # ### After you run this box you can use the boxes below to modify particular inputs of your run.
- # %%
- from start import start
- from maker37cb import maker
- strt = start()
- name,fullseq,amplifier,pause,choose,polyAT,polyCG,BlastProbes,db,dropout,show,report,maxprobe,numbr = strt[0],strt[1],strt[2],strt[3],strt[4],strt[5],strt[6],strt[7],strt[8],strt[9],strt[10],strt[11],strt[12],strt[13]
- maker(name,fullseq,amplifier,pause,choose,polyAT,polyCG,BlastProbes,db,dropout,show,report,maxprobe,numbr)
- # %% [markdown]
- #
- #
- # ## Running the cells below allow you to modify parts of your input
- #
- # %% [markdown]
- #
- # ### Change the gene name used for outputs
- #
- # %%
- name = str(input("What is the gene name? (ex. eGFP) "))
- # %% [markdown]
- #
- # ### Change the cDNA sequence
- #
- # %%
- fullseq = str(input("Enter the sense sequence of your cDNA without spaces or returns. "))
- # %% [markdown]
- #
- # ### Change the hairpin you will use to amplify with.
- # ##### B1-B5 were used by Choi et al. 2014 and B7 to B17 were reported by Wang et al. BioRxiv 2020
- #
- # %%
- amplifier = str(input("What is the amplifier to be used with this probe set? B1,B2,B3,B4,B5,B7,B9,B10,B11,B13,B14,B15,or B17 ").upper())
- # %% [markdown]
- #
- #
- # ### Adjust the number of bases skipped at the 5' end of the cDNA before starting to make probes
- #
- # %%
- pause = int(input("How many bases from 5' end of the Sense RNA before starting to hybridize? ex. 100 "))
- # %% [markdown]
- #
- # ### Change the tolerated homopolymer lengths of (poly-A & poly-T) and/or (poly-C & polyG)
- #
- # %%
- polyAT = int(input("What is the max acceptable length for polyA or polyT homopolymers? "))
- polyCG = int(input("What is the max acceptable length for polyC or polyG homopolymers? "))
- # %% [markdown]
- #
- # ### If multiple probe pair sets are available, toggle the option to choose which set of probes gets made
- #
- # %%
- choose1 = str(input("Do you want to be able to select between potential longest probe sets? (Choosing 'N' defaults to the first longest set of probes.) Y or N "))
- # %% [markdown]
- #
- # ### Toggle on/off whether a BLASTn search is performed on the potential probes or the original input cDNA
- #
- # %%
- BlastProbes = str(input("Would you like BLAST potential probes against a FASTA file? Y or N "))
- # %% [markdown]
- #
- # ### Specify the directory path of the FASTA file to be used as the BLASTn subject
- #
- # %%
- db = str(input("Where is the FASTA file you would like to BLAST against? Example: 'C:/users/user/***.fasta' Ignore if not BLASTing " ))
- # %% [markdown]
- # ### Use BLASTn results to remove potential off-target probes
- # %%
- dropout = str(input("Do you want to eliminate probes that appear in low quaility BLAST outputs? Y or N "))
- # %% [markdown]
- # ### Toggle the presentation of detailed BLASTn results on/off
- # %%
- show = str(input("Do you want to display detailed BLAST outputs? Y or N "))
- # %% [markdown]
- # ### Toggle printing of parameters used at the end of the report
- # %%
- report = str(input("Do you want to display chosen parameters in output? Y or N "))
- # %% [markdown]
- # ### Toggle the max/arbitrary number of output sequences
- # ##### The biggest number of probes OPools will allow is 33 probe pairs at 50pmol for 99 dollars, less still costs 99, more increases the cost by each additional base.
- # ##### This option will let you set the limit of the number of probes; if left off will return the max number of probes.
- # %%
- maxprobe = str(input("Do you want to limit the number of probes made? Y or N "))
- # %% [markdown]
- # ### Set the maximum number of probes output.
- # ##### If you want the most, leave "maxprobe" off.
- # ##### If you want the optimal cost/probe ratio, enter 0 or 33
- # %%
- numbr = int(input("Enter a particular number of probes made. The default max is 33. Enter integer or enter 0 for default. "))
- # %% [markdown]
- #
- # ## Use the cell below to rerun the probe maker
- # %% [markdown]
- #
- # %%
- maker(name,fullseq,amplifier,pause,choose,polyAT,polyCG,BlastProbes,db,dropout,show,report,maxprobe,numbr)
- # %% [markdown]
- # ### Jupyter Notebook help can be found here:
- # https://jupyter-notebook.readthedocs.io/en/stable/
- # %% [markdown]
- # ## Before running this notebook you will need to have a few additional programs installed on your machine.
- #
- # ### These Python libraries
- # ##### Biopython v1.77+
- # https://anaconda.org/anaconda/biopython
- # ##### Numpy v1.19.1+
- # https://anaconda.org/anaconda/numpy
- # ##### Pandas v1.1.1+
- # https://anaconda.org/anaconda/pandas
- # ### BLAST+
- # ##### Download
- # https://blast.ncbi.nlm.nih.gov/Blast.cgi?PAGE_TYPE=BlastDocs&DOC_TYPE=Download
- # ##### Installation help, PC
- # https://www.ncbi.nlm.nih.gov/books/NBK52637/
- # ##### Installation help, Mac/Unix
- # https://www.ncbi.nlm.nih.gov/books/NBK52640/
- #
- #
UserInterface_v0.3.2.ipynb at commit 3e85a8c, under GPL-3.0 · at the source
Overview
- Max Planck Institute for Evolutionary Biology, August-Thienemann-Str. 2, 24306 Plön, Germany
- Ocean Museum Germany, Katharinenberg 14–20, 18439 Stralsund, Germany
- Institute of Biosciences, University of Rostock, Albert-Einstein-Str. 3, 18059 Rostock, Germany
- Institute of Materials Physics, Helmholtz-Zentrum Hereon, Max-Planck-Str. 1, 21502 Geesthacht, Germany
- Leibniz Institute for the Analysis of Biodiversity Change, Martin-Luther-King-Platz 3, D-20146 Hamburg, Germany
Abstract
Cranial neural crest cells (CNCCs) are a vertebrate-specific, multipotent cell population central to facial morphogenesis and a cellular substrate for evolutionary change. Although core CNCC developmental programmes are deeply conserved, changes in their gene expression programmes and cell behaviour underlie both macroevolutionary transitions and microevolutionary adaptations. While CNCC biology has been well characterized in bony vertebrates, comparatively little is known about CNCC properties and the behaviour of their derivatives in cartilaginous fishes (Chondrichthyes). To address this gap, we investigate CNCC development in a representative chondrichthyan: the small-spotted catshark (Scyliorhinus canicula). By integrating high-resolution molecular and morphological analyses, we reveal how conserved developmental programmes are modulated in chondrichthyans to generate divergent facial morphologies. We show that the molecular toolkit of CNCC is largely conserved across jawed vertebrates, and the developmental divergence and lineage-specific differences arise from divergent behaviour of their ectomesenchymal derivatives. These findings establish a high-resolution reference of CNCC biology in Chondrichthyes and uncover the evolutionary origins of both shared and lineage-specific traits, offering key insights into the developmental and evolutionary processes shaping gnathostome facial diversity.
Reproduced under the paper's license (CC BY), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above.
rwnull/insitu_probe_generator
3e85a8c5ceab641c746e9cba4c95a8d1b3785f57, 19 September 2023Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
5 files
- UserInterface_v0.3.2.ipy
nb — Jupyter, 181 lines - maker37cb.py — Python, 567 lines
- start.py — Python, 50 lines
- LICENSE — License, 674 lines
- README.md — Text, 144 lines
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:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 3 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
Datasets cited
- arrayexpress:E-MTAB-1542
3 — at ArrayExpress; found in the end of the paper
Other data links
- ebi.ac.uk/
biostudies — EMBL-EBI; found in the end of the paper
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
- Publisher: — → The Company of Biologists
Version 1, 28 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 9 authors, 6 keywords, 10 MeSH terms, 2 funders, 84 references.
Cite
This paper
Escamilla-Vega, E., Murillo-Rincón, A. P., Seton, L. W. G., Koch, A.-K., Kyomen, S., Fortmann-Grote, C., Hammel, J. U., Moritz, T., & Kaucká, M. (2026). Developmental dynamics of catshark cranial neural crest cells provide insights into gnathostome facial evolution. Development (Cambridge, England), 153(9), dev205258. https://
BibTeX
@article{escamillavega20
author = {Escamilla-Vega, Elio and Murillo-Rincón, Andrea P. and Seton, Louk W. G. and Koch, Ann-Katrin and Kyomen, Stella and Fortmann-Grote, Carsten and Hammel, Jörg U. and Moritz, Timo and Kaucká, Markéta},
title = {{Developmental dynamics of catshark cranial neural crest cells provide insights into gnathostome facial evolution}},
journal = {Development (Cambridge, England)},
year = {2026},
month = may,
volume = {153},
number = {9},
pages = {dev205258},
publisher = {The Company of Biologists},
issn = {0950-1991},
doi = {10.1242/
url = {https://
pmid = {41987760},
pmcid = {PMC13200729}
}
RIS
TY - JOUR
AU - Escamilla-Vega, Elio
AU - Murillo-Rincón, Andrea P.
AU - Seton, Louk W. G.
AU - Koch, Ann-Katrin
AU - Kyomen, Stella
AU - Fortmann-Grote, Carsten
AU - Hammel, Jörg U.
AU - Moritz, Timo
AU - Kaucká, Markéta
TI - Developmental dynamics of catshark cranial neural crest cells provide insights into gnathostome facial evolution
T2 - Development (Cambridge, England)
J2 - Development
PY - 2026
DA - 2026/
VL - 153
IS - 9
SP - dev205258
SN - 0950-1991
PB - The Company of Biologists
DO - 10.1242/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1242/
"type": "article-journal",
"title": "Developmental dynamics of catshark cranial neural crest cells provide insights into gnathostome facial evolution",
"container-title": "Development (Cambridge, England)",
"author": [
{
"family": "Escamilla-Vega",
"given": "Elio"
},
{
"family": "Murillo-Rincón",
"given": "Andrea P."
},
{
"family": "Seton",
"given": "Louk W. G."
},
{
"family": "Koch",
"given": "Ann-Katrin"
},
{
"family": "Kyomen",
"given": "Stella"
},
{
"family": "Fortmann-Grote",
"given": "Carsten"
},
{
"family": "Hammel",
"given": "Jörg U."
},
{
"family": "Moritz",
"given": "Timo"
},
{
"family": "Kaucká",
"given": "Markéta"
}
],
"container-title-short":
"volume": "153",
"issue": "9",
"page": "dev205258",
"DOI": "10.1242/
"PMID": "41987760",
"PMCID": "PMC13200729",
"ISSN": "0950-1991",
"publisher": "The Company of Biologists",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
7
]
]
}
}
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/s41586-026-10490-y [code]
- Lineage and organ signals sequentially build organ intrinsic nervous systems.Journal: NatureIn common: pandas, NumPy, developmental, 3 references
- [2] doi:10.64898/2026.03.30.714220 [code]
- An integrated single cell and spatial omics atlas of human prenatal developmentJournal: bioRxiv (preprint)In common: Biopython, pandas, NumPy, 1 reference
- [3] doi:10.1038/s41467-026-73065-5
- Polycomb chromatin topology enables long-range enhancer recruitment during craniofacial development.Journal: Nature communicationsIn common: 3 references
- [4] doi:10.1038/s42003-026-10957-8 [code]
- Brain defence by the extracellular matrix protein Cochlin.Journal: Communications biologyIn common: Biopython, pandas, NumPy, 1 reference
- [5] doi:10.1038/s41467-026-74434-w [code]
- The alx gene family confers segmental identity to frontonasal cranial neural crest cells.Journal: Nature communicationsIn common: 3 references
- [6] doi:10.1038/s41467-026-76675-1 [code]
- Long-read proteogenomic atlas of human neuronal differentiation reveals isoform diversity informing neurodevelopmental risk mechanisms.Journal: Nature communicationsIn common: Biopython, pandas, NumPy, developmental, genetics / omics
- [7] doi:10.1038/s41562-026-02486-5 [code]
- Genome-wide association studies of infant and toddler temperament in European and multi-ancestry populations.Journal: Nature human behaviourIn common: Biopython, pandas, NumPy, developmental, genetics / omics
- [8] doi:10.1038/s43587-026-01207-x [code]
- A microprotein atlas of the human frontal cortex in Alzheimer's disease.Journal: Nature agingIn common: Biopython, pandas, NumPy, genetics / omics
- [9] doi:10.1038/s41592-026-03211-w [code]
- Spatial isoform sequencing at single-cell resolution reveals cell-type-specific spatial isoform variability in multiple brain cell types.Journal: Nature methodsIn common: Biopython, pandas, NumPy, genetics / omics
- [10] doi:10.3389/fneur.2026.1822479 [code]
- Circulating neuron-derived cfDNA for blood-based detection of Alzheimer's and other neurodegenerative conditions.Journal: Frontiers in neurologyIn common: Biopython, pandas, NumPy, genetics / omics
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: 1 repository of the authors' code, each at its verified commit and with its license, 3 scripts, and 0 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:221b3c0b00b3e839…
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.
