Social hierarchy shapes behavioral and transcriptional responses to chronic stress and ketamine in male mice.
The 4 matches
- [1] § STAR★Methods › Method details › SB behavioral analysis ↔ misc/extract_corpus_stats.py, lines 258–336 · score 0.80 · social interactions, anogenital, proximity, locomotion, motionless, traveled
- [2] § STAR★Methods › Method details › The social box arena ↔ misc/extract_corpus_stats.py, lines 31–90 · score 0.73 · social contact, DeepLabCut, social interactions, Vision, Food, bedding
- [3] § STAR★Methods › Method details › Chronic social defeat stress paradigm ↔ misc/extract_corpus_stats.py, lines 131–215 · score 0.66 · social defeat, CD1, groomed, intruder, resident, paradigm
- [4] § STAR★Methods › Experimental model and study participant details ↔ misc/geocode_institutions.py, lines 91–166 · score 0.54 · Max Planck Institute, Germany, Council, Laboratory, Science
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 · 539 lines · 30 KB · BSD-3-Clause · 3 matches
- # -*- coding: utf-8 -*-
- """Extract corpus statistics from the local SimBA use-case paper PDFs and write a
- small, committable JSON that the docs renderer consumes.
- The PDFs themselves are NOT in the repo (they live locally, e.g. F:\\simba_papers) and
- cannot be reached by the CI/ReadTheDocs build. This script is the LOCAL step: run it
- whenever the paper folder changes, then commit misc/corpus_stats.json. The renderer
- (usecase_map_stats.py) reads only that JSON, so the docs build stays PDF-free.
- If the paper folder is missing/empty (e.g. on another machine or in CI), the existing
- committed JSON is kept untouched -- the build never breaks.
- Run: python misc/extract_corpus_stats.py [pdf_dir]
- """
- import os, re, sys, json, shutil, hashlib, tempfile, subprocess, collections, itertools
- from datetime import date
- PDF_DIR = sys.argv[1] if len(sys.argv) > 1 else r"F:\simba_papers"
- def say(msg):
- """print() that survives a cp1252 console -- journal-exported filenames carry
- characters like U+2010 that the default Windows encoder refuses."""
- try:
- print(msg)
- except UnicodeEncodeError:
- enc = sys.stdout.encoding or "ascii"
- print(msg.encode(enc, "backslashreplace").decode(enc, "replace"))
- OUT = os.path.join("misc", "corpus_stats.json")
- # --- lexicons: category label -> regex of surface forms (word-boundary, lowercased) ---
- # Counting is DOCUMENT frequency: each paper contributes at most once per label.
- BEHAVIORS = {
- "Social interaction": r"social (?:interaction|behavior|behaviour|investigation|approach)|social contact",
- "Aggression / attack": r"aggress|attack|fighting|resident.?intruder|biting",
- "Grooming": r"groom",
- "Freezing": r"freezing",
- "Locomotion / open field": r"locomot|open.?field|ambulat|distance travel",
- "Rearing": r"\brear(?:ing|s|ed)?\b",
- "Sniffing": r"sniff",
- "Immobility (FST/TST)": r"immobil|tail suspension|forced swim",
- "Mating / sexual": r"\bmating\b|copulat|intromission|sexual behav|mounting behav",
- "Avoidance": r"avoidance",
- "Head-twitch (HTR)": r"head.?twitch|\bhtr\b",
- "Feeding / consumption": r"feeding|food intake|self.?administrat|consumption",
- "Gait / balance": r"\bgait\b|rotarod|balance beam|posture",
- "Pup retrieval / maternal": r"pup retrieval|maternal behav|nest building|nesting",
- }
- REGIONS = {
- "Amygdala": r"amygdala|\bbla\b|\bcea\b|\bmea\b",
- "Nucleus accumbens": r"nucleus accumbens|accumbens|\bnac\b",
- "Prefrontal cortex": r"prefrontal|\bpfc\b|\bmpfc\b",
- "Hippocampus": r"hippocamp",
- "BNST": r"bed nucleus of the stria|\bbnst\b",
- "Hypothalamus": r"hypothalam",
- "VTA": r"ventral tegmental|\bvta\b",
- "Striatum": r"striat",
- "Insula": r"insula",
- "Cingulate cortex": r"cingulate",
- "Thalamus": r"\bthalam",
- "Periaqueductal gray": r"periaqueductal|\bpag\b",
- "Habenula": r"habenula",
- "Cerebellum": r"cerebell",
- }
- METHODS = {
- "DeepLabCut": r"deeplabcut|\bdlc\b",
- "SLEAP": r"\bsleap\b",
- "Optogenetics": r"optogenetic|channelrhodopsin|\bchr2\b|halorhodopsin",
- "Fiber photometry": r"photometry|\bgcamp\b",
- "Chemogenetics (DREADD)": r"dreadd|chemogenetic|\bcno\b|hm[34]d",
- # miniscope / two-photon fold in here rather than getting their own bars, so a
- # calcium-imaging paper is not counted three times across the panel.
- "Calcium imaging": r"calcium imaging|miniscope|two.?photon|2.?photon",
- "Electrophysiology": r"electrophysiolog|patch.?clamp|single.?unit|in vivo record",
- "Transcriptomics": r"rna.?seq|transcriptom|single.?cell rna",
- "SHAP explainability": r"\bshap\b|shapley",
- "BORIS annotation": r"\bboris\b",
- "EthoVision": r"ethovision",
- "Viral tracing (AAV)": r"\baav\b|adeno.?associated|retrograde trac|anterograde trac",
- "Immunohistochemistry": r"immunohistochem|\bihc\b",
- "c-Fos mapping": r"c.?fos\b",
- "EEG / LFP recording": r"\beeg\b|local field potential|\blfp\b",
- "Ultrasonic vocalisation": r"ultrasonic vocal|\busvs?\b",
- "AnyMaze": r"any.?maze",
- "B-SOiD": r"b.?soid",
- "Keypoint-MoSeq": r"moseq",
- "Microdialysis": r"microdialysis",
- "qPCR": r"\bqpcr\b|quantitative pcr|rt.?pcr",
- "A-SOiD": r"a.?soid",
- "VAME": r"\bvame\b",
- "Western blot": r"western blot",
- "UMAP / t-SNE": r"\bumap\b|t.?sne\b",
- "TopScan / CleverSys": r"topscan|clever ?sys",
- "Telemetry": r"telemetr",
- "XGBoost": r"xgboost|gradient boost",
- "Lightning Pose": r"lightning ?pose",
- "DANNCE": r"dannce",
- "ezTrack": r"eztrack",
- }
- DISEASES = {
- "Addiction / substance use": r"addiction|opioid|cocaine|fentanyl|oxycodone|alcohol|ethanol|methamphetamine|nicotine|psychostimulant",
- "Pain / analgesia": r"\bpain\b|analgesi|nocicep|hyperalgesi",
- "Stress / depression": r"chronic stress|social defeat|depress|anhedoni|despair",
- "Anxiety": r"anxiet|anxio",
- "Autism (ASD)": r"autism|\basd\b|autistic",
- "Parkinson's": r"parkinson|alpha.?synuclein|\bmptp\b|6.?ohda",
- "Alzheimer's / dementia": r"alzheimer|amyloid|\btau\b|dementia",
- "Epilepsy / seizure": r"epilep|seizure|convuls",
- "Psychedelics": r"psychedelic|psilocy|\blsd\b|ketamine|\bdmt\b|serotonergic",
- "Schizophrenia": r"schizophren",
- "Fear conditioning": r"fear conditioning",
- # "aged 8 weeks" is husbandry, not ageing research: \baged\b matched 45 papers
- # that way, so require the research sense.
- "Ageing": r"\baging\b|\bageing\b|age.?related",
- "Sleep / circadian": r"sleep deprivation|circadian rhythm|sleep.?wake",
- "Early-life stress": r"maternal separation|early.?life (?:stress|advers)|limited bedding",
- "Social defeat": r"social defeat",
- "PTSD": r"\bptsd\b|post.?traumatic stress",
- "Neuroinflammation": r"neuroinflamm",
- "Obesity / diet": r"obesity|diet.?induced|high.?fat diet",
- "Stroke / ischemia": r"\bstroke\b|ischemi|ischaemi",
- "Prenatal exposure": r"prenatal|in utero|gestational exposure",
- "Neuropathic pain": r"neuropathic pain",
- "Huntington's": r"huntington",
- "ADHD": r"\badhd\b",
- "Traumatic brain injury": r"\btbi\b|traumatic brain injur",
- "Rett syndrome": r"rett syndrome|\bmecp2\b",
- "Fragile X": r"fragile x|\bfmr1\b",
- }
- # Curated scientific concept gazetteer for the word cloud -- so it shows real entities
- # (regions, neuromodulators, drugs, paradigms, methods, models, species), not generic words.
- CLOUD_TERMS = {
- # behaviours & paradigms
- "Grooming": r"groom", "Freezing": r"freezing", "Aggression": r"aggress",
- "Rearing": r"\brear(?:ing|s|ed)?\b", "Sniffing": r"sniff", "Mating": r"\bmating\b|copulat|mounting behav|sexual behav",
- "Digging": r"digging", "Climbing": r"climbing", "Immobility": r"immobil", "Locomotion": r"locomot",
- "Social interaction": r"social interaction", "Avoidance": r"avoidance",
- "Head-twitch": r"head.?twitch|\bhtr\b", "Scratching": r"scratching", "Nesting": r"nest(?:ing| building)",
- "Pup retrieval": r"pup retrieval", "Marble burying": r"marble bury", "Tail suspension": r"tail suspension",
- "Forced swim": r"forced swim", "Elevated plus maze": r"plus.?maze", "Open field": r"open.?field",
- "Three-chamber": r"three.?chamber", "Resident-intruder": r"resident.?intruder", "Novel object": r"novel object",
- "Fear conditioning": r"fear conditioning", "Place preference": r"place preference|\bcpp\b",
- "Rotarod": r"rotarod", "Gait": r"\bgait\b", "Startle": r"startle", "Feeding": r"feeding", "Licking": r"licking",
- # regions
- "Amygdala": r"amygdala", "Nucleus accumbens": r"nucleus accumbens|accumbens",
- "Prefrontal cortex": r"prefrontal|\bpfc\b", "Hippocampus": r"hippocamp",
- "BNST": r"\bbnst\b|bed nucleus of the stria", "Hypothalamus": r"hypothalam",
- "VTA": r"\bvta\b|ventral tegmental", "Striatum": r"striat", "Thalamus": r"\bthalam", "Insula": r"insula",
- "Cingulate": r"cingulate", "Periaqueductal gray": r"periaqueductal|\bpag\b", "Habenula": r"habenula",
- "Cerebellum": r"cerebell", "Dorsal raphe": r"dorsal raphe", "Locus coeruleus": r"locus coeruleus",
- # neuromodulators
- "Dopamine": r"dopamine", "Serotonin": r"serotonin|5-?ht\b", "Oxytocin": r"oxytocin", "GABA": r"\bgaba\b",
- "Glutamate": r"glutamate", "Opioid": r"opioid", "Cannabinoid": r"cannabinoid", "Corticosterone": r"corticosterone",
- "CRF": r"\bcrf\b|corticotropin", "Norepinephrine": r"norepinephrine|noradrenaline", "Acetylcholine": r"acetylcholine|cholinergic",
- # drugs / compounds
- "Psilocybin": r"psilocy", "Ketamine": r"ketamine", "Fentanyl": r"fentanyl", "Oxycodone": r"oxycodone",
- "Cocaine": r"cocaine", "Methamphetamine": r"methamphetamine", "Morphine": r"morphine",
- "Ethanol / alcohol": r"ethanol|alcohol", "Nicotine": r"nicotine", "DMT": r"\bdmt\b", "MDMA": r"\bmdma\b",
- "LSD": r"\blsd\b", "Diazepam": r"diazepam", "THC / cannabis": r"\bthc\b|cannabis|tetrahydrocannab",
- "Amphetamine": r"\bamphetamine",
- # methods / tools
- "DeepLabCut": r"deeplabcut|\bdlc\b", "SLEAP": r"\bsleap\b", "Optogenetics": r"optogenetic",
- "Fiber photometry": r"photometry", "DREADD": r"dreadd|chemogenetic", "Calcium imaging": r"calcium imaging|miniscope",
- "Two-photon": r"two.?photon|2.?photon", "Electrophysiology": r"electrophysiolog|patch.?clamp",
- "RNA-seq": r"rna.?seq|transcriptom", "SHAP": r"\bshap\b|shapley", "Random forest": r"random forest",
- "BORIS": r"\bboris\b", "EthoVision": r"ethovision", "Immunohistochemistry": r"immunohistochem|\bihc\b",
- "Machine learning": r"machine learning", "Pose estimation": r"pose estimation",
- # models / disease
- "Parkinson's": r"parkinson", "Alzheimer's": r"alzheimer", "Autism": r"autism|\basd\b",
- "Epilepsy": r"epilep|seizure", "Addiction": r"addiction", "Depression": r"depress", "Anxiety": r"anxiet",
- "Chronic stress": r"chronic stress", "Social defeat": r"social defeat", "Neuropathic pain": r"neuropathic pain",
- "Fragile X": r"fragile x", "TBI": r"\btbi\b|traumatic brain",
- # species / strains
- "Zebrafish": r"zebrafish", "C57BL/6": r"c57bl|\bc57\b", "CD1": r"\bcd.?1\b", "Sprague-Dawley": r"sprague.?dawley",
- "Gerbil": r"gerbil", "Prairie vole": r"prairie vole|\bvole", "Drosophila": r"drosophila", "Primate": r"macaque|primate",
- "Wistar rat": r"wistar", "Long-Evans": r"long.?evans", "BALB/c": r"\bbalb", "Transgenic": r"transgenic",
- "Knockout": r"knockout", "Crayfish / crustacean": r"crayfish|crustacean|\bcrab", "Songbird": r"songbird|zebra finch",
- # more behaviours & paradigms
- "Circling": r"circling", "Jumping / escape": r"jumping|escape behav", "Burrowing": r"burrow",
- "Ultrasonic vocalisation": r"ultrasonic vocal|\busv\b|\busvs\b", "Prepulse inhibition": r"prepulse|\bppi\b",
- "Social memory": r"social memory", "Social novelty": r"social novelty",
- "Object recognition": r"object recognition", "Spatial memory": r"spatial memory|spatial learning",
- "Water maze": r"water maze|morris water", "Y-maze": r"\by.?maze", "T-maze": r"\bt.?maze", "Barnes maze": r"barnes maze",
- "Light-dark box": r"light.?dark box", "Operant task": r"operant|lever press|nose.?poke",
- "Self-administration": r"self.?administrat", "Reinstatement": r"reinstatement", "Extinction": r"extinction",
- "Wheel running": r"wheel running", "Stereotypy": r"stereotyp", "Catalepsy": r"cataleps", "Tremor": r"tremor",
- "Grimace scoring": r"grimace",
- # more regions
- "Orbitofrontal cortex": r"orbitofrontal|\bofc\b", "Lateral septum": r"lateral septum",
- "Preoptic area": r"preoptic|\bmpoa\b", "Paraventricular nucleus": r"paraventricular|\bpvn\b",
- "Substantia nigra": r"substantia nigra", "Entorhinal cortex": r"entorhinal", "Dentate gyrus": r"dentate gyrus",
- "Prelimbic / infralimbic": r"prelimbic|infralimbic", "Basolateral amygdala": r"basolateral",
- # more markers / neuromodulators
- "Estrogen": r"estrogen|estradiol", "Testosterone": r"testosterone", "Vasopressin": r"vasopressin",
- "BDNF": r"\bbdnf\b", "c-Fos": r"c.?fos\b", "Orexin": r"orexin|hypocretin",
- "Somatostatin": r"somatostatin|\bsst\b", "Parvalbumin": r"parvalbumin", "Cortisol": r"cortisol",
- "Endocannabinoid": r"endocannabinoid",
- # more drugs / compounds
- "Fluoxetine / SSRI": r"fluoxetine|\bssri\b", "Haloperidol": r"haloperidol", "Clozapine": r"clozapine",
- "MK-801": r"mk.?801|dizocilpine", "Scopolamine": r"scopolamine", "Caffeine": r"caffeine",
- "Buprenorphine": r"buprenorphine", "Naloxone / naltrexone": r"naloxone|naltrexone",
- # more methods / tools
- "UMAP": r"\bumap\b", "t-SNE": r"t.?sne\b", "HDBSCAN": r"hdbscan", "XGBoost": r"xgboost|gradient boost",
- "CNN / ResNet": r"\bcnn\b|resnet|convolutional neural", "Transformer": r"\btransformer", "Keypoint tracking": r"keypoint|key.?point",
- "Bounding box": r"bounding box|\bbbox\b", "MoSeq": r"moseq", "VAME": r"\bvame\b", "B-SOiD": r"b.?soid",
- "A-SOiD": r"a.?soid", "DANNCE": r"dannce", "Lightning Pose": r"lightning ?pose", "AnyMaze": r"any.?maze",
- "TopScan / CleverSys": r"topscan|clever ?sys", "ezTrack": r"eztrack", "Unsupervised": r"unsupervised",
- "SVM": r"\bsvm\b|support vector",
- # more models / disease
- "Schizophrenia": r"schizophren", "PTSD": r"\bptsd\b|post.?traumatic", "ADHD": r"\badhd\b",
- "Huntington's": r"huntington", "Stroke / ischemia": r"\bstroke\b|ischemi|ischaemi", "Rett syndrome": r"rett syndrome|\bmecp2\b",
- "Maternal separation": r"maternal separation|early.?life advers|early life stress", "Neuroinflammation": r"neuroinflamm",
- "Obesity / diet": r"obesity|diet.?induced|high.?fat", "Aging": r"\baging\b|\baged\b|ageing", "Sleep / circadian": r"\bsleep\b|circadian",
- }
- # --- "behaviours automated": what SimBA was actually used to score -----------------
- # Whole-document keyword counting cannot answer this -- "freezing" appears in papers
- # that never built a freezing classifier. So a behaviour is credited to a study only
- # when its term sits BOTH (a) inside a text window around a SimBA mention and
- # (b) within NEAR characters of a scoring/classifier cue. (a) alone credits husbandry
- # and unrelated assays ("nicotine in the drinking water"); (b) alone credits any ML
- # mentioned anywhere in the paper.
- CTX_BEFORE, CTX_AFTER, NEAR = 400, 700, 160
- # A SimBA mention inside the reference list is the Goodwin/Nilsson citation itself;
- # its neighbours are unrelated references, so those windows are dropped.
- # NB the 2020 preprint's own title contains "complex social behaviors in experimental
- # animals" -- without it here, every paper that merely cites SimBA was credited with
- # automating social behaviour.
- SIMBA_CITE = re.compile(
- r"as a platform for explainable|simple behavioral analysis \(simba\) as a"
- r"|goodwin,? ?n\.?\s?l|nilsson,? ?s\.?\s?r\.?\s?o|simba: a novel"
- r"|open.?source deep learning based framework"
- r"|open source toolkit for computer classification"
- r"|toolkit for computer classification of complex social")
- # Cues that mark text as "this is a behaviour being read out". Three groups, because
- # studies phrase it three ways: trained classifiers ("scored", "classifier for"),
- # ethogram definitions ("'attack' was defined as"), and kinematic/ROI readouts
- # ("time spent", "total distance was measured") -- the last two carry no ML verb at
- # all, and requiring one silently dropped every ROI-only and ethogram-table study.
- SCORE_CUE = re.compile(
- r"classif|scor(?:e|ed|es|ing)\b|annotat|detect|quantif|\btrain(?:ed|ing)\b"
- r"|predict|label(?:l?ed|l?ing)\b|ethogram|random forest|\bbouts?\b"
- r"|behaviou?rs? (?:such as|of interest|included|were)|automated|automatic"
- r"|defined as|was defined|were defined|definition of"
- r"|measur|calculat|comput(?:e|ed|ing)\b|time spent|duration (?:of|and)|frequency of"
- r"|analy[sz]ed (?:in|with|using)|readouts?\b")
- # A behaviour named inside a bibliography entry is someone else's study, not this one.
- # SIMBA_CITE only drops the SimBA citation itself; a window can still reach into the
- # neighbouring references, where "(2020). ... duration of attack ... eNeuro 7(5)" reads
- # as a behaviour. Only near-unambiguous reference markers: a DOI or a volume(issue)
- # citation. NOT "(2020)." -- that is also how ordinary methods prose ends a sentence.
- REF_ZONE = re.compile(r"doi\.org/|\bdoi:|\b\d{4};\s?\d+\(|\b\d+\(\d+\),\s?\d+")
- # label -> (surface forms, family). Families group the ethogram for the docs caption.
- BEHAV_AUTOMATED = {
- "Social interaction / approach":
- (r"social (?:interaction|investigat|approach|contact|behavio|preference|proximity)|allogroom|social novelty|crawling", "Social"),
- "Anogenital / body sniffing":
- (r"sniff|anogenital|ano.?genital|nose.?to.?nose|head.?to.?head|face.?to.?face|nosing", "Social"),
- # "following" is a preposition ("following model training") and a list introducer
- # ("the following behaviors:") far more often than it is the behaviour, so it only
- # counts with an explicit object or inside a classifier list.
- "Following / chasing / pursuit":
- (r"\bchasing\b|\bchase\b|pursuit"
- r"|(?<!the )(?<!these )(?<!as )following (?:and (?:circling|sniffing|chas)|classifiers?\b)"
- r"|follow(?:ing|ed) (?:the )?(?:conspecific|intruder|stimulus|demonstrator|partner|another|other mouse)", "Social"),
- "Mating / mounting":
- (r"\bmounting\b(?! (?:magnet|camera|the))|copulat|intromission|mating behavio|sexual behavio|\bthrust", "Social"),
- "Pup retrieval / maternal care":
- (r"pup retrieval|retriev\w* (?:the )?pups?|maternal (?:behavio|care)|nest building|nest attendance|dam.?pup|carrying|maternal approach|nest shift", "Social"),
- "Attack / fighting / biting":
- (r"\battack|fighting|\bbit(?:e|es|ing)\b|aggressive behavio|\bstrik(?:e|es|ing)\b|lateral threat"
- r"|\btussl|\blung(?:e|es|ing)\b|offensive|\bpinning\b|\bgrappling\b", "Aggression"),
- "Tail rattling / dominance display":
- (r"tail rattl|\bdominance\b|dominant (?:male|mice|mouse|animal)|submissi|threat display|\bboxing\b", "Aggression"),
- "Freezing": (r"freezing(?! (?:microtome|point))|\bfreeze\b", "Fear / defence"),
- # Darting is its own explicitly defined fear response ("movement across the chamber
- # at or exceeding 20 cm/s"), not a flavour of escape.
- "Darting": (r"\bdarting\b|\bdarts?\b(?= (?:were|was|behavio|bout))", "Fear / defence"),
- "Avoidance / escape / flight":
- (r"avoidance|\bescape|\bflee|fleeing|\brunaway\b|\bflight\b|\bretreat", "Fear / defence"),
- "Defensive posture / risk assessment":
- (r"defensive (?:behavio|postur|attack|burying)|\bupright\b|risk assessment"
- r"|stretch.?attend|head dip|\bdipping\b|\bcrouch", "Fear / defence"),
- # No leading \b: the corpus writes "selfgrooming" as one word. "allogrooming" is
- # social grooming and is counted under social interaction instead.
- "Grooming": (r"(?<!allo)(?<!allo-)groom", "Self-directed"),
- "Rearing": (r"\brear(?:ing|s|ed)?\b(?! (?:environment|paw|left|right|limb))", "Self-directed"),
- "Head-twitch response": (r"head.?twitch|\bhtr\b", "Self-directed"),
- "Digging / burrowing": (r"\bdigging\b|burrow|marble bury|\bburying\b", "Self-directed"),
- "Stereotypy (circling / pacing / Straub tail)":
- (r"\bcircling\b|straub|\btremor|catalep|uncoordinated walking|\bpacing\b|\bswaying\b", "Self-directed"),
- "Hind-limb clasping": (r"clasping", "Self-directed"),
- "Locomotion / distance travelled":
- (r"locomot|distance (?:travel|moved|travell)|total distance|movement distance|ambulat", "Locomotion / motor"),
- "Immobility / motionless":
- # "resting" is a scored state in the fish/rat ethograms, but "resting state"
- # is LFP/fMRI and "initial resting state" is the head-twitch baseline.
- (r"immobility|\bimmobile\b|motionless|\bresting\b(?! state)", "Locomotion / motor"),
- "Gait / balance beam":
- # "stride" alone also matched a convolution stride in a deep-learning methods section.
- # "walking behaviour" is scored directly; bare "walking" also matches a crab's
- # "walking appendages", so keep the noun.
- (r"\bgait\b|balance beam|beam walking|rotarod|walking (?:pattern|behavio|time)"
- r"|footfall|stride length|foot.?slip|pole test|wire hang", "Locomotion / motor"),
- "Climbing / jumping": (r"climbing|\bjump(?:ing|s)?\b", "Locomotion / motor"),
- "Wheel running": (r"wheel running", "Locomotion / motor"),
- # Aquatic species: swimming style, station-holding against flow, hovering in place.
- # Bare "swimming" is mostly the species ("swimming crab Portunus") or anatomy
- # ("swimming limbs"), so require a readout noun after it.
- "Swimming / rheotaxis / hovering":
- (r"swimming (?:behavio|time|activity|pattern|style|bout)|parallel swim"
- r"|\brheotaxis\b|station.?holding|\bhovering\b|bottom.?dwelling", "Locomotion / motor"),
- "Feeding / licking / drinking":
- (r"\blick(?:ing|s)?\b|feeding behavio|food intake|\beating\b|drinking behavio|appetitive|ingestion|\bnursing\b", "Feeding / reward"),
- "Foraging / food handling":
- (r"\bgnaw|\btearing\b|foraging|food handling|\bpecking\b|prey capture|\bhunting\b|predatory", "Feeding / reward"),
- "Operant / self-administration":
- (r"self.?administrat|operant|lever.?press|nose.?poke|place preference|reinstatement|drug.?seeking|drug.?taking", "Feeding / reward"),
- # Cleaner-fish mutualism: client "jolts" index cheating by the cleaner.
- "Cleaning interaction / jolts (fish)":
- (r"\bjolts?\b|cleaning (?:behavio|interaction)|client interaction", "Feeding / reward"),
- "Object exploration / novel object":
- (r"object (?:exploration|interaction|investigat|contact|approach)|object recognition(?! benchmark)|novel object|exploratory behavio", "Exploration"),
- "Zone / ROI occupancy":
- (r"region.?of.?interest|\brois?\b|time.?in.?zone|zone (?:occupancy|entr|time)|time in (?:the )?(?:cent(?:er|re)|corner)|\bcrossings?\b", "Exploration"),
- # Anchor the maze names: unanchored "y.?maze" also matches "anymaze", the tracking software.
- "Whisking / head scanning":
- (r"whisking|head scanning", "Exploration"),
- "Maze arm entries / spatial task":
- (r"arm entr|\by.?maze|\bt.?maze|water maze|barnes maze|plus.?maze|spatial (?:memory|learning) task", "Exploration"),
- }
- def flow(t):
- """pdftotext output -> single-line text: de-hyphenate line breaks, collapse space."""
- return re.sub(r"\s+", " ", re.sub(r"-\s*\n\s*", "", t.replace("", "")))
- def simba_context(t):
- """Concatenated windows around every SimBA mention that is not a bibliography entry.
- Edges snap outward to whitespace: a window cutting "classi|fications" in half hides
- the cue that the behaviour term next to it depends on."""
- wins = []
- for m in re.finditer(r"simba|simple behaviou?ral analysis", t):
- s = m.start()
- if SIMBA_CITE.search(t[max(0, s - 170):s + 170]):
- continue
- a, b = max(0, s - CTX_BEFORE), min(len(t), s + CTX_AFTER)
- a = t.rfind(" ", 0, a) + 1 if a else 0
- b = t.find(" ", b)
- wins.append(t[a:b if b != -1 else len(t)])
- return " | ".join(wins)
- def study_clusters(texts):
- """Group files that are the same study -- a preprint and its published version, or
- the same PDF saved twice -- so document frequency counts each study once.
- Containment of 9-word shingles; step 1 so a 1-2 word offset cannot de-align them."""
- def sh(t, k=9, cap=6000):
- w = re.findall(r"[a-z]+", t)[:cap]
- return {" ".join(w[i:i + k]) for i in range(max(0, len(w) - k))}
- S = [sh(t) for t in texts]
- par = list(range(len(texts)))
- def find(x):
- while par[x] != x:
- par[x] = par[par[x]]; x = par[x]
- return x
- for a, b in itertools.combinations(range(len(texts)), 2):
- if S[a] and S[b] and len(S[a] & S[b]) / min(len(S[a]), len(S[b])) > 0.25:
- ra, rb = find(a), find(b)
- if ra != rb:
- par[ra] = rb
- g = collections.defaultdict(list)
- for i in range(len(texts)):
- g[find(i)].append(i)
- return list(g.values())
- def behaviours_automated(texts):
- """-> ([[label, n_studies, family], ...] desc, n_studies_with_simba_context,
- {label: [paper_index, ...]}). The index is the study's representative paper."""
- flowed = [flow(t) for t in texts]
- counts, ex, n = collections.Counter(), collections.defaultdict(list), 0
- for group in study_clusters(flowed):
- blob = " | ".join(filter(None, (simba_context(flowed[i]) for i in group)))
- if not blob:
- continue
- n += 1
- for label, (pat, _) in BEHAV_AUTOMATED.items():
- for m in re.finditer(pat, blob):
- near = blob[max(0, m.start() - NEAR):m.start() + NEAR]
- if SCORE_CUE.search(near) and not REF_ZONE.search(near):
- counts[label] += 1
- ex[label].append(group[0])
- break
- rows = [[lab, c, BEHAV_AUTOMATED[lab][1]] for lab, c in counts.most_common()]
- return rows, n, {lab: pick_examples(lab, ex[lab]) for lab, _, _ in rows}
- def full_text(fp):
- """pdftotext -> lowercased full text, or None if the extraction itself failed.
- None (missing/old pdftotext, timeout, non-zero exit) is kept distinct from a
- genuinely text-free PDF so main() can refuse to overwrite a good corpus with a
- degenerate mine. capture_output= is 3.7+, so the pipes are named explicitly.
- """
- src, tmp = fp, None
- if any(ord(c) > 127 for c in fp):
- # pdftotext (mingw build) opens paths through the ANSI API and returns
- # "I/O Error: Couldn't open file" on the U+2010 hyphens that journal
- # exports put in filenames -- mine an ASCII-named copy instead.
- fd, tmp = tempfile.mkstemp(prefix="corpus_", suffix=".pdf")
- os.close(fd)
- shutil.copyfile(fp, tmp)
- src = tmp
- try:
- r = subprocess.run(["pdftotext", src, "-"], stdout=subprocess.PIPE,
- stderr=subprocess.PIPE, timeout=90)
- except Exception as e:
- say("[corpus] pdftotext failed on %s: %r" % (os.path.basename(fp), e))
- return None
- finally:
- if tmp and os.path.exists(tmp):
- os.remove(tmp)
- if r.returncode != 0:
- say("[corpus] pdftotext exit %s on %s: %s"
- % (r.returncode, os.path.basename(fp),
- r.stderr.decode("utf-8", "ignore").strip()[:120]))
- return None
- return r.stdout.decode("utf-8", "ignore").lower()
- # Enough of each paper's opening to contain its title once journal furniture
- # ("contents lists available at sciencedirect ...") is allowed for. The renderer
- # matches these against the sheet's TITLE column to name papers in tooltips.
- HEAD_CHARS = 700
- EXAMPLE_CAP = 4 # papers listed per label in a tooltip
- def paper_head(t):
- """Lowercased opening with punctuation collapsed to spaces. Spaces are kept so the
- renderer can both substring-match a title and fall back to word overlap."""
- return re.sub(r"[^a-z0-9]+", " ", flow(t)[:3000].lower()).strip()[:HEAD_CHARS]
- def pick_examples(label, idxs):
- """A deterministic per-label sample of the matching papers.
- Taking the first few by index meant the same paper headlined nearly every label
- (paper 0 mentions most things). Ordering by a hash of label+index decorrelates the
- choice across labels while staying stable across rebuilds."""
- return sorted(idxs, key=lambda i: hashlib.md5(f"{label}:{i}".encode()).hexdigest())[:EXAMPLE_CAP]
- def df_counts(texts, lex):
- """-> ([[label, count], ...] desc, {label: [paper_index, ...]}) -- the indices are
- a sample of the papers matching each label, for tooltip examples."""
- c = collections.Counter()
- hits = collections.defaultdict(list)
- for i, t in enumerate(texts):
- for label, pat in lex.items():
- if re.search(pat, t):
- c[label] += 1
- hits[label].append(i)
- rows = [[k, v] for k, v in sorted(c.items(), key=lambda kv: -kv[1]) if v]
- return rows, {k: pick_examples(k, hits[k]) for k, _ in rows}
- def main():
- if not os.path.isdir(PDF_DIR):
- print(f"[corpus] paper dir not found ({PDF_DIR}); keeping existing {OUT}."); return
- pdfs = [os.path.join(PDF_DIR, f) for f in os.listdir(PDF_DIR) if f.lower().endswith(".pdf")]
- if not pdfs:
- print(f"[corpus] no PDFs in {PDF_DIR}; keeping existing {OUT}."); return
- texts = [full_text(fp) for fp in pdfs]
- # examples/papers are positional indices into texts, so failures are dropped
- # from pdfs and texts together, before anything is counted.
- failed = [fp for fp, t in zip(pdfs, texts) if t is None]
- kept = [(fp, t) for fp, t in zip(pdfs, texts) if t is not None]
- if failed:
- say("[corpus] %d/%d PDFs yielded no text (first: %s)"
- % (len(failed), len(pdfs), os.path.basename(failed[0])))
- if len(kept) < 0.8 * len(pdfs):
- say("[corpus] ABORT: only %d/%d PDFs yielded text -- is pdftotext on PATH? "
- "Keeping existing %s." % (len(kept), len(pdfs), OUT))
- return 1
- pdfs = [fp for fp, _ in kept]
- texts = [t for _, t in kept]
- cloud = collections.Counter() # document frequency over the curated concept gazetteer
- for t in texts:
- for term, pat in CLOUD_TERMS.items():
- if re.search(pat, t):
- cloud[term] += 1
- behav_rows, n_behav_studies, behav_ex = behaviours_automated(texts)
- beh, beh_ex = df_counts(texts, BEHAVIORS)
- reg, reg_ex = df_counts(texts, REGIONS)
- met, met_ex = df_counts(texts, METHODS)
- dis, dis_ex = df_counts(texts, DISEASES)
- data = {
- "generated": date.today().strftime("%B %d, %Y"),
- "n_pdfs": len(pdfs),
- "behaviours_automated": behav_rows,
- "n_behaviour_studies": n_behav_studies,
- "behaviors": beh,
- "regions": reg,
- "methods": met,
- "diseases": dis,
- # Normalised paper openings, and which papers back each label. The renderer
- # resolves these to curated titles via the sheet; kept out of the label rows
- # so their shape stays [label, count(, family)].
- "papers": [paper_head(t) for t in texts],
- "examples": {"behaviours_automated": behav_ex, "behaviors": beh_ex,
- "regions": reg_ex, "methods": met_ex, "diseases": dis_ex},
- "wordcloud": [[term, n] for term, n in cloud.most_common(200) if n >= 5],
- }
- os.makedirs(os.path.dirname(OUT), exist_ok=True)
- with open(OUT, "w", encoding="utf-8") as f:
- json.dump(data, f, indent=1)
- print(f"[corpus] wrote {OUT}: {len(pdfs)} PDFs | "
- f"behaviours automated {len(behav_rows)} labels over {n_behav_studies} studies | "
- f"behaviors {len(data['behaviors'])} | regions {len(data['regions'])} | "
- f"methods {len(data['methods'])} | diseases {len(data['diseases'])} | "
- f"cloud {len(data['wordcloud'])} words")
- if __name__ == "__main__":
- sys.exit(main() or 0)
extract_corpus_stats.py at commit 8172109, under BSD-3-Clause · at the source
Overview
- Department of Neuroscience, Karolinska Institutet, 17165 Stockholm, Sweden
- Department of Molecular Neuroscience, Weizmann Institute of Science, Rehovot 7610001, Israel
- Department of Stress Neurobiology and Neurogenetics, Max Planck Institute of Psychiatry, Munich, Germany
Abstract
Chronic stress is a major risk factor for psychiatric disorders, yet the mechanisms underlying individual differences in vulnerability and treatment response remain poorly understood. Using the Social Box, a seminatural environment, we performed high-resolution, continuous tracking of group-housed male mice during 11 days, capturing behavior during both active and inactive phases. We found that social hierarchy within a group strongly shapes stress outcomes, with dominant individuals exhibiting amplified behavioral alterations following chronic stress, including rest fragmentation and disrupted social interactions. A single ketamine administration mitigated these effects, restoring baseline behavioral signatures in dominant individuals. Bulk mRNA sequencing was performed in the medial prefrontal cortex and ventral hippocampus. This revealed a hierarchy-dependent transcriptional response with 141 differentially expressed genes in the medial prefrontal cortex of dominant, ketamine-treated mice. Overall, this study provides a framework for examining stress and pharmacological interventions in group-housed mice, enabling high-resolution, longitudinal analyses under semi-naturalistic conditions.
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 4 matches between paragraphs and lines of code.
LopezLab-KI/Behavioral_analysis_SB
71eb8738569a1e000817402e97d988fe93a3a9e2, 23 June 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
20 files
- src/
ROIS/ , Jupyter, 86 linesROIS_exploration.ipynb - src/
ROIS/ , Jupyter, 134 linesROIS_feeding.ipynb - src/
ROIS/ , Jupyter, 145 lineseasyROI.ipynb - src/
ROIS/ , Python, 269 linesutils.py - src/
ROIS/ , Python, 153 linesworker_ROIS_exploration. py - src/
ROIS/ , Python, 154 linesworker_ROIS_feeding.py - src/
chases_and_hierarchy/ , Jupyter, 873 linesfastChases_hierarchy.ipy nb - src/
chases_and_hierarchy/ , Jupyter, 222 linespostprocessing_chases_si mba.ipynb - src/
locomotion/ , Jupyter, 102 lineslocomotion_generic.ipynb - src/
locomotion/ , Python, 209 lineslocomotion_processer.py - src/
motionless_and_speeding/ , Python, 369 linesmotionless_batch_process ing.py - src/
motionless_and_speeding/ , Python, 285 linesutils.py - src/
nest/ , Jupyter, 116 linesnest.ipynb - src/
nest/ , Python, 139 linesnest_processer.py - src/
nest/ , Python, 136 linesutils.py - src/
sniffing/ , Python, 90 linesprocesser_areas.py - src/
sniffing/ , Python, 109 linessniffing_batch_multiproc essing.py - src/
sniffing/ , Python, 882 linessniffing_utils.py - src/
sniffing/ , Python, 302 linesutils_proximity.py - README.md, Text, 37 lines
sgoldenlab/simba
8172109593bec4bcd6aa084286abdcc3ae39828e, 26 September 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
410 files
- App.py, Python, 5 lines
- __init__.py, Python, 1 line
- docs/
_scripts/ , Python, 67 linesnormalize_tutorial_image s.py - docs/
_scripts/ , Python, 82 linesnormalize_tutorial_video s.py - docs/
_static/ , JavaScript, 1,411 linescustom.js - docs/
_static/ , JavaScript, 1 linedemo_manifest.js - docs/
_static/ , JavaScript, 19 linesjs/ chart.umd.min.js - docs/
_static/ , JavaScript, 1 linejs/ jsvectormap-world.js - docs/
_static/ , JavaScript, 1 linejs/ jsvectormap.min.js - docs/
conf.py , Python, 1,635 lines - docs/
nb/ , Jupyter, 107 linesCLI Example 1.ipynb - docs/
nb/ , Jupyter, 58 linesUntitled.ipynb - docs/
nb/ , Jupyter, 2 linesUntitled1.ipynb - docs/
nb/ , Jupyter, 2 linesUntitled2.ipynb - docs/
nb/ , Jupyter, 30 linesVisualize pose-estimation.ipynb - docs/
nb/ , Jupyter, 103 linesadvanced_outlier_correct ion.ipynb - docs/
nb/ , Jupyter, 119 linesadvanced_smoothing_inter polation.ipynb - docs/
nb/ , Jupyter, 161 linesbg_remove.ipynb - docs/
nb/ , Jupyter, 80 linesblob_tracking.ipynb - docs/
nb/ , Jupyter, 80 linesblob_tracking_vis.ipynb - docs/
nb/ , Jupyter, 80 linesblob_tracking_visulizati on.ipynb - docs/
nb/ , Jupyter, 36 linesclassifier_validation_vi deos.ipynb - docs/
nb/ , Jupyter, 34 linesclf_results_plotting.ipy nb - docs/
nb/ , Jupyter, 50 linescreate_path_plot.ipynb - docs/
nb/ , Jupyter, 42 linesdefine_rois.ipynb - docs/
nb/ , Jupyter, 38 linesdistance_plotter.ipynb - docs/
nb/ , Jupyter, 123 linesegocentric_align.ipynb - docs/
nb/ , Jupyter, 35 linesgantt_plots.ipynb - docs/
nb/ , Jupyter, 76 linesgeometry_ex_3.ipynb - docs/
nb/ , Jupyter, 134 linesgeometry_example_1.ipynb - docs/
nb/ , Jupyter, 132 linesgeometry_example_2.ipynb - docs/
nb/ , Jupyter, 83 linesgeometry_example_3.ipynb - docs/
nb/ , Jupyter, 174 linesgeometry_example_5.ipynb - docs/
nb/ , Jupyter, 128 linesgeometry_example_6.ipynb - docs/
nb/ , Jupyter, 238 linesgeometry_example_7.ipynb - docs/
nb/ , Jupyter, 38 lineshatmap_location_plotter. ipynb - docs/
nb/ , Jupyter, 41 linesheatmap_clf.ipynb - docs/
nb/ , Jupyter, 65 linesimport_sleap_h5.ipynb - docs/
nb/ , Jupyter, 59 lineskleinberg_gridsearch.ipy nb - docs/
nb/ , Jupyter, 123 linesmulticlass.ipynb - docs/
nb/ , Jupyter, 83 linesoutlier_correction.ipynb - docs/
nb/ , Jupyter, 183 linespath_plots.ipynb - docs/
nb/ , Jupyter, 43 linespose_plotter_gpu.ipynb - docs/
nb/ , Jupyter, 39 linesprobability_plots.ipynb - docs/
nb/ , Jupyter, 63 linesroi_feature_visualizer.i pynb - docs/
nb/ , Jupyter, 58 linesshap_example_1.ipynb - docs/
nb/ , Jupyter, 62 linesshap_example_2.ipynb - docs/
nb/ , Jupyter, 62 linesshap_log_3.ipynb - docs/
nb/ , Jupyter, 73 linesthird_party_append.ipynb - docs/
nb/ , Jupyter, 42 linestrain_models.ipynb - docs/
nb/ , Jupyter, 69 linesyolo_ex_1.ipynb - docs/
nb/ , Jupyter, 78 linesyolo_ex_2.ipynb - docs/
py/ , Python, 13 linesmd_to_rst.py - docs/
py/ , Python, 21 linesmd_to_rst_batch.py - docs/
tutorials_rst/ , Python, 74 linesexample_1.py - misc/
1_UMAP_create_data_set_c , Python, 60 linesollapsed_091020.py - misc/
Caltech_2_DLC.py , Python, 63 lines - misc/
Caltech_2_DLC_LinLab.py , Python, 65 lines - misc/
Kleinberg_burst_analysis , Python, 159 lines_081120.py - misc/
MitraFeatureExtractor.py , Python, 194 lines - misc/
Visualize_clusters_09102 , Python, 120 lines0.py - misc/
append_targets.py , Python, 25 lines - misc/
bigquery_download_stats. , Python, 34 linespy - misc/
extract_corpus_stats.py , Python, 539 lines, 3 matches - misc/
fish_feature_extraction_ , Python, 226 lines092221.py - misc/
gantt_creator_mp.py , Python, 238 lines - misc/
geocode_institutions.py , Python, 303 lines, 1 match - misc/
geometry_feature_extract , Python, 84 linesion.py - misc/
install_hooks.py , Python, 50 lines - misc/
institution_coords.py , Python, 226 lines - misc/
mitra_tail_analyzer.py , Python, 166 lines - misc/
perform_pose.py , Python, 84 lines - misc/
simBA_dash_app.py , Python, 1,137 lines - misc/
usecase_map_stats.py , Python, 717 lines - misc/
usecase_table.py , Python, 224 lines - scripts/
__init__.py , Python, 1 line - scripts/
caltech_download.py , Python, 59 lines - scripts/
create_issues_report.py , Python, 98 lines - scripts/
dataverse_download.py , Python, 39 lines - scripts/
gitter_stats.py , Python, 37 lines - scripts/
make_qr_code.py , Python, 182 lines - scripts/
osf_download.py , Python, 44 lines - scripts/
upgrade_simba_keep_confi , Python, 115 linesgs.py - setup.py, Python, 64 lines
- simba/
SimBA.py , Python, 1,207 lines - simba/
__init__.py , Python, 23 lines - simba/
assets/ , Python, 1 line__init__.py - simba/
assets/ , Python, 1 linefonts/ __init__.py - simba/
assets/ , Python, 1 lineicons/ __init__.py - simba/
assets/ , Python, 1 lineicons/ concat_icons/ __init__.py - simba/
assets/ , Python, 1 lineicons_original_backup/ __init__.py - simba/
assets/ , Python, 1 lineicons_original_backup/ concat_icons/ __init__.py - simba/
assets/ , Python, 1 lineimg/ __init__.py - simba/
assets/ , Python, 1 linelookups/ __init__.py - simba/
assets/ , Python, 1 lineshap/ __init__.py - simba/
assets/ , Python, 1 lineshap/ feature_categories/ __init__.py - simba/
assets/ , Python, 1 linestl/ __init__.py - simba/
assets/ , Python, 1 linetracker_yml/ __init__.py - simba/
assets/ , Python, 1 lineunsupervised/ __init__.py - simba/
bounding_box_tools/ , Python, 1 line__init__.py - simba/
bounding_box_tools/ , Python, 204 linesagg_boundary_stats.py - simba/
bounding_box_tools/ , Python, 643 linesboundary_menus.py - simba/
bounding_box_tools/ , Python, 218 linesboundary_statistics.py - simba/
bounding_box_tools/ , Python, 151 linesfind_boundaries.py - simba/
bounding_box_tools/ , Python, 260 linesvisualize_boundaries.py - simba/
bounding_box_tools/ , Python, 1 lineyolo/ __init__.py - simba/
cue_light_tools/ , Python, 1 line__init__.py - simba/
cue_light_tools/ , Python, 243 linescue_light_analyzer.py - simba/
cue_light_tools/ , Python, 123 linescue_light_clf_statistics .py - simba/
cue_light_tools/ , Python, 121 linescue_light_main_popup.py - simba/
cue_light_tools/ , Python, 127 linescue_light_movement_stati stics.py - simba/
cue_light_tools/ , Python, 53 linescue_light_tools.py - simba/
cue_light_tools/ , Python, 216 linescue_light_visualizer.py - simba/
dash_app/ , Python, 1,678 linesSimBA_dash_app.py - simba/
dash_app/ , Python, 1 line__init__.py - simba/
dash_app/ , Python, 754 linesdash_app.py - simba/
dash_app/ , Python, 168 linesrun_dash_tkinter.py - simba/
data_processors/ , Python, 1 line__init__.py - simba/
data_processors/ , Python, 269 linesadvanced_interpolator.py - simba/
data_processors/ , Python, 215 linesadvanced_smoothing.py - simba/
data_processors/ , Python, 303 linesagg_clf_calculator.py - simba/
data_processors/ , Python, 322 linesagg_clf_counter_mp.py - simba/
data_processors/ , Python, 184 linesataxia_detector.py - simba/
data_processors/ , Python, 142 linesblob_location_computer.p y - simba/
data_processors/ , Python, 149 linesboolean_conditional_calc ulator.py - simba/
data_processors/ , Python, 168 linescircling_detector.py - simba/
data_processors/ , Python, 1 linecuda/ __init__.py - simba/
data_processors/ , Python, 333 linescuda/ bg_subtractor.py - simba/
data_processors/ , Python, 954 linescuda/ circular_statistics.py - simba/
data_processors/ , Python, 376 linescuda/ clahe_nvenc.py - simba/
data_processors/ , Python, 161 linescuda/ create_shap_log.py - simba/
data_processors/ , Python, 181 linescuda/ data.py - simba/
data_processors/ , Python, 275 linescuda/ egocentric_rotator_nvenc .py - simba/
data_processors/ , Python, 124 linescuda/ feature_extraction.py - simba/
data_processors/ , Python, 161 linescuda/ feature_extraction_suppl ement.py - simba/
data_processors/ , Python, 934 linescuda/ geometry.py - simba/
data_processors/ , Python, 505 linescuda/ geometry_plotter_nvenc.p y - simba/
data_processors/ , Python, 156 linescuda/ greyscale_nvenc.py - simba/
data_processors/ , Python, 1,889 linescuda/ image.py - simba/
data_processors/ , Python, 443 linescuda/ pose_plotter_nvenc.py - simba/
data_processors/ , Python, 1,897 linescuda/ statistics.py - simba/
data_processors/ , Python, 964 linescuda/ timeseries.py - simba/
data_processors/ , Python, 669 linescuda/ utils.py - simba/
data_processors/ , Python, 265 linescue_light_analyzer.py - simba/
data_processors/ , Python, 133 linescue_light_clf_statistics .py - simba/
data_processors/ , Python, 150 linescue_light_movement_stati stics.py - simba/
data_processors/ , Python, 259 linesdirecting_animal_to_body part.py - simba/
data_processors/ , Python, 265 linesdirecting_other_animals_ calculator.py - simba/
data_processors/ , Python, 246 linesdistance_calculator.py - simba/
data_processors/ , Python, 241 linesdistance_timbin_calculat or.py - simba/
data_processors/ , Python, 205 linesegocentric_aligner.py - simba/
data_processors/ , Python, 470 linesfind_animal_blob_locatio n.py - simba/
data_processors/ , Python, 218 linesfreezing_detector.py - simba/
data_processors/ , Python, 243 linesfreezing_detector_v2.py - simba/
data_processors/ , Python, 459 linesfsttc_calculator.py - simba/
data_processors/ , Python, 167 linesgibbs_sampler.py - simba/
data_processors/ , Python, 121 linesinterpolate.py - simba/
data_processors/ , Python, 167 linesinterpolate_pose.py - simba/
data_processors/ , Python, 825 linesinterpolation_smoothing. py - simba/
data_processors/ , Python, 231 lineskleinberg_calculator.py - simba/
data_processors/ , Python, 154 lineslight_dark_box_analyzer. py - simba/
data_processors/ , Python, 262 linesmovement_calculator.py - simba/
data_processors/ , Python, 199 linesmutual_exclusivity_corre ctor.py - simba/
data_processors/ , Python, 430 linespup_retrieval_calculator .py - simba/
data_processors/ , Python, 163 linespybursts_calculator.py - simba/
data_processors/ , Python, 182 linespybursts_calculator_numb a.py - simba/
data_processors/ , Python, 295 linesseverity_bout_based_calc ulator.py - simba/
data_processors/ , Python, 121 linesseverity_calculator.py - simba/
data_processors/ , Python, 304 linesseverity_frame_based_cal culator.py - simba/
data_processors/ , Python, 144 linessmoothing.py - simba/
data_processors/ , Python, 185 linesspontaneous_alternation_ calculator.py - simba/
data_processors/ , Python, 240 linestimebins_clf_calculator. py - simba/
data_processors/ , Python, 261 linestimebins_movement_calcul ator.py - simba/
data_processors/ , Python, 289 linestimebins_movement_calcul ator_mp.py - simba/
data_processors/ , Python, 221 linesyolo_track_cleaner.py - simba/
feature_extractors/ , Python, 1 line__init__.py - simba/
feature_extractors/ , Python, 190 linesaggression_feature_extra ctor.py - simba/
feature_extractors/ , Python, 1,643 linesamber_feature_extractor. py - simba/
feature_extractors/ , Python, 171 linesboundary_rearing_analyze r.py - simba/
feature_extractors/ , Python, 888 linescave_fish_featurizer.py - simba/
feature_extractors/ , Python, 1,213 linesfeature_extractor_14bp.p y - simba/
feature_extractors/ , Python, 1,296 linesfeature_extractor_16bp.p y - simba/
feature_extractors/ , Python, 463 linesfeature_extractor_4bp.py - simba/
feature_extractors/ , Python, 609 linesfeature_extractor_7bp.py - simba/
feature_extractors/ , Python, 673 linesfeature_extractor_8bp.py - simba/
feature_extractors/ , Python, 797 linesfeature_extractor_8bps_2 _animals.py - simba/
feature_extractors/ , Python, 801 linesfeature_extractor_9bp.py - simba/
feature_extractors/ , Python, 208 linesfeature_extractor_user_d efined.py - simba/
feature_extractors/ , Python, 402 linesfeature_subsets.py - simba/
feature_extractors/ , Python, 192 linesgerbil_featurizer.py - simba/
feature_extractors/ , Python, 76 linesmisc/ add_probability_cnt_feat ures.py - simba/
feature_extractors/ , Python, 70 linesmisc/ convex_hull_3_scratch_3. py - simba/
feature_extractors/ , Python, 197 linesmisc/ convex_hull_scratch_1.py - simba/
feature_extractors/ , Python, 72 linesmisc/ convex_hull_scratch_2.py - simba/
feature_extractors/ , Python, 42 linesmisc/ count_values_in_range.py - simba/
feature_extractors/ , Python, 55 linesmisc/ doctests.py - simba/
feature_extractors/ , Python, 181 linesmisc/ egocentrical_aligner.py - simba/
feature_extractors/ , Python, 403 linesmisc/ fish_feature_extractor_2 022.py - simba/
feature_extractors/ , Python, 637 linesmisc/ fish_feature_extractor_2 023_version_2.py - simba/
feature_extractors/ , Python, 705 linesmisc/ fish_feature_extractor_2 023_version_3.py - simba/
feature_extractors/ , Python, 878 linesmisc/ fish_feature_extractor_2 023_version_4.py - simba/
feature_extractors/ , Python, 878 linesmisc/ fish_feature_extractor_2 023_version_5.py - simba/
feature_extractors/ , Python, 61 linesmisc/ graph_3d_plotter.py - simba/
feature_extractors/ , Python, 136 linesmisc/ graph_creator.py - simba/
feature_extractors/ , Python, 55 linesmisc/ make_splash.py - simba/
feature_extractors/ , Python, 20 linesmisc/ mutual_exclusive.py - simba/
feature_extractors/ , Python, 70 linesmisc/ peaks.py - simba/
feature_extractors/ , Python, 76 linesmisc/ read_in_mp.py - simba/
feature_extractors/ , Python, 51 linesmisc/ time_stamp_calculator.py - simba/
feature_extractors/ , Python, 78 linesmisc/ video_color.py - simba/
feature_extractors/ , Python, 148 linesmisc/ video_rotator.py - simba/
feature_extractors/ , Python, 148 linesmisc/ video_rotator_mp.py - simba/
feature_extractors/ , Python, 263 linesmitra_feature_extractor. py - simba/
feature_extractors/ , Python, 160 linesperimeter_jit.py - simba/
feature_extractors/ , Python, 113 linesrat_social_featurizer.py - simba/
feature_extractors/ , Python, 743 linesriptortus_featurizer.py - simba/
feature_extractors/ , Python, 150 linesstraub_tail_analyzer.py - simba/
feature_extractors/ , Python, 189 lineswingwave_extractor.py - simba/
labelling/ , Python, 1 line__init__.py - simba/
labelling/ , Python, 109 linesextract_labelled_frames. py - simba/
labelling/ , Python, 99 linesextract_labelling_meta.p y - simba/
labelling/ , Python, 564 lineslabelling_advanced_inter face.py - simba/
labelling/ , Python, 421 lineslabelling_interface.py - simba/
labelling/ , Python, 88 linesmitra_style_appender.py - simba/
labelling/ , Python, 169 linesplay_annotation_video.py - simba/
labelling/ , Python, 88 linessingle_clf_appender_exce l.py - simba/
labelling/ , Python, 591 linesstandard_labeller.py - simba/
labelling/ , Python, 57 linestargeted_annotations_cli ps.py - simba/
mixins/ , Python, 26 lines__init__.py - simba/
mixins/ , Python, 20 linesabstract_classes.py - simba/
mixins/ , Python, 941 linesannotator_mixin.py - simba/
mixins/ , Python, 1,803 linescircular_statistics.py - simba/
mixins/ , Python, 971 linesconfig_reader.py - simba/
mixins/ , Python, 1,517 linesfeature_extraction_mixin .py - simba/
mixins/ , Python, 909 linesfeature_extraction_suppl ement_mixin.py - simba/
mixins/ , Python, 3,726 linesgeometry_mixin.py - simba/
mixins/ , Python, 2,432 linesimage_mixin.py - simba/
mixins/ , Python, 899 linesnetwork_mixin.py - simba/
mixins/ , Python, 2,681 linesplotting_mixin.py - simba/
mixins/ , Python, 527 linespop_up_mixin.py - simba/
mixins/ , Python, 497 linespose_importer_mixin.py - simba/
mixins/ , Python, 4,220 linesstatistics_mixin.py - simba/
mixins/ , Python, 2,942 linestimeseries_features_mixi n.py - simba/
mixins/ , Python, 2,947 linestrain_model_mixin.py - simba/
mixins/ , Python, 94 linesunsupervised_mixin.py - simba/
model/ , Python, 1 line__init__.py - simba/
model/ , Python, 331 linesgrid_search_multiclass_r f.py - simba/
model/ , Python, 244 linesgrid_search_rf.py - simba/
model/ , Python, 254 linesinference_batch.py - simba/
model/ , Python, 87 linesinference_multi_animal_b atch.py - simba/
model/ , Python, 97 linesinference_multiclass_bat ch.py - simba/
model/ , Python, 77 linesinference_validation.py - simba/
model/ , Python, 200 linesordinal_clf.py - simba/
model/ , Python, 1 lineregression/ __init__.py - simba/
model/ , Python, 143 linesregression/ metrics.py - simba/
model/ , Python, 226 linesregression/ model.py - simba/
model/ , Python, 130 linessam_inference.py - simba/
model/ , Python, 331 linestrain_multiclass_rf.py - simba/
model/ , Python, 165 linestrain_multilabel_rf.py - simba/
model/ , Python, 320 linestrain_rf.py - simba/
model/ , Python, 335 linesyolo_fit.py - simba/
model/ , Python, 310 linesyolo_inference.py - simba/
model/ , Python, 856 linesyolo_nvdec_inference.py - simba/
model/ , Python, 457 linesyolo_pose_inference.py - simba/
model/ , Python, 372 linesyolo_pose_track_inferenc e.py - simba/
model/ , Python, 205 linesyolo_seg_inference.py - simba/
outlier_tools/ , Python, 1 line__init__.py - simba/
outlier_tools/ , Python, 164 linesoutlier_corrector_locati on.py - simba/
outlier_tools/ , Python, 301 linesoutlier_corrector_locati on_advanced.py - simba/
outlier_tools/ , Python, 193 linesoutlier_corrector_locati on_mp.py - simba/
outlier_tools/ , Python, 155 linesoutlier_corrector_moveme nt.py - simba/
outlier_tools/ , Python, 270 linesoutlier_corrector_moveme nt_advanced.py - simba/
outlier_tools/ , Python, 183 linesoutlier_corrector_moveme nt_mp.py - simba/
outlier_tools/ , Python, 54 linesskip_outlier_correction. py - simba/
plotting/ , Python, 176 linesEzPathPlot.py - simba/
plotting/ , Python, 268 linesROI_feature_visualizer.p y - simba/
plotting/ , Python, 515 linesROI_feature_visualizer_m p.py - simba/
plotting/ , Python, 1 line__init__.py - simba/
plotting/ , Python, 308 linesannotation_videos.py - simba/
plotting/ , Python, 144 linesblob_plotter.py - simba/
plotting/ , Python, 203 linesblob_visualizer.py - simba/
plotting/ , Python, 157 linescircular_feature_overlay _plotter.py - simba/
plotting/ , Python, 204 linescircular_plotting.py - simba/
plotting/ , Python, 177 linesclf_validator.py - simba/
plotting/ , Python, 258 linesclf_validator_mp.py - simba/
plotting/ , Python, 309 linescompare_bbox_mdls.py - simba/
plotting/ , Python, 221 linescue_light_visualizer.py - simba/
plotting/ , Python, 222 linesdata_plotter.py - simba/
plotting/ , Python, 195 linesdirecting_animals_to_bod ypart_visualizer.py - simba/
plotting/ , Python, 263 linesdirecting_animals_visual izer.py - simba/
plotting/ , Python, 318 linesdirecting_animals_visual izer_mp.py - simba/
plotting/ , Python, 264 linesdistance_plotter.py - simba/
plotting/ , Python, 405 linesdistance_plotter_mp.py - simba/
plotting/ , Python, 230 linesez_path_plot.py - simba/
plotting/ , Python, 141 linesframe_mergerer_ffmpeg.py - simba/
plotting/ , Python, 223 linesgantt_creator.py - simba/
plotting/ , Python, 367 linesgantt_creator_mp.py - simba/
plotting/ , Python, 148 linesgantt_plotly.py - simba/
plotting/ , Python, 328 linesgeometry_plotter.py - simba/
plotting/ , Python, 173 linesheat_mapper_clf.py - simba/
plotting/ , Python, 380 linesheat_mapper_clf_mp.py - simba/
plotting/ , Python, 211 linesheat_mapper_location.py - simba/
plotting/ , Python, 387 linesheat_mapper_location_mp. py - simba/
plotting/ , Python, 254 linesinteractive_probability_ grapher.py - simba/
plotting/ , Python, 205 lineslight_dark_box_plotter.p y - simba/
plotting/ , Python, 399 linespath_plotter.py - simba/
plotting/ , Python, 527 linespath_plotter_mp.py - simba/
plotting/ , Python, 292 linesplot_clf_results.py - simba/
plotting/ , Python, 772 linesplot_clf_results_mp.py - simba/
plotting/ , Python, 139 linespose_plotter.py - simba/
plotting/ , Python, 281 linespose_plotter_mp.py - simba/
plotting/ , Python, 204 linesprobability_plot_creator .py - simba/
plotting/ , Python, 321 linesprobability_plot_creator _mp.py - simba/
plotting/ , Python, 354 linesroi_directing_visualizer .py - simba/
plotting/ , Python, 388 linesroi_plotter.py - simba/
plotting/ , Python, 549 linesroi_plotter_mp.py - simba/
plotting/ , Python, 116 linessam_plotter.py - simba/
plotting/ , Python, 229 linesshap_agg_stats_visualize r.py - simba/
plotting/ , Python, 359 linessingle_run_model_validat ion_video.py - simba/
plotting/ , Python, 392 linessingle_run_model_validat ion_video_mp.py - simba/
plotting/ , Python, 345 linesskeleton_video_creator.p y - simba/
plotting/ , Python, 325 linesspontaneous_alternation_ plotter.py - simba/
plotting/ , Python, 1 linetools/ __init__.py - simba/
plotting/ , Python, 248 linestools/ tkinter_tools.py - simba/
plotting/ , Python, 306 linesyolo_annotation_visualiz er.py - simba/
plotting/ , Python, 265 linesyolo_pose_track_visualiz er.py - simba/
plotting/ , Python, 435 linesyolo_pose_visualizer.py - simba/
plotting/ , Python, 181 linesyolo_seg_visualizer.py - simba/
plotting/ , Python, 310 linesyolo_visualize.py - simba/
pose_configurations/ , Python, 1 line__init__.py - simba/
pose_configurations/ , Python, 1 linebp_names/ __init__.py - simba/
pose_configurations/ , Python, 1 lineconfiguration_names/ __init__.py - simba/
pose_configurations/ , Python, 1 lineno_animals/ __init__.py - simba/
pose_importers/ , Python, 1 line__init__.py - simba/
pose_importers/ , Python, 133 linesdlc_importer_csv.py - simba/
pose_importers/ , Python, 122 linesfacemap_h5_importer.py - simba/
pose_importers/ , Python, 211 linesimport_mars.py - simba/
pose_importers/ , Python, 133 linesmadlc_importer.py - simba/
pose_importers/ , Python, 1 linemisc/ __init__.py - simba/
pose_importers/ , Python, 163 linesmisc/ apt_trk_importer.py - simba/
pose_importers/ , Python, 78 linesread_DANNCE_mat.py - simba/
pose_importers/ , Python, 148 linessimba_blob_importer.py - simba/
pose_importers/ , Python, 181 linessimba_yolo_importer.py - simba/
pose_importers/ , Python, 206 linessleap_csv_importer.py - simba/
pose_importers/ , Python, 219 linessleap_h5_importer.py - simba/
pose_importers/ , Python, 197 linessleap_slp_importer.py - simba/
pose_importers/ , Python, 198 linessuperanimal_import.py - simba/
pose_importers/ , Python, 174 linestrk_importer.py - simba/
pose_processors/ , Python, 1 line__init__.py - simba/
pose_processors/ , Python, 81 linespose_reset.py - simba/
pose_processors/ , Python, 131 linesremove_keypoints.py - simba/
pose_processors/ , Python, 160 linesreorganize_keypoint.py - simba/
pose_processors/ , Python, 143 linesreverse_pose.py - simba/
roi_tools/ , Python, 259 linesROI_analyzer.py - simba/
roi_tools/ , Python, 250 linesROI_directing_analyzer.p y - simba/
roi_tools/ , Python, 241 linesROI_feature_analyzer.py - simba/
roi_tools/ , Python, 216 linesROI_size_standardizer.py - simba/
roi_tools/ , Python, 158 linesROI_time_bin_calculator. py - simba/
roi_tools/ , Python, 1 line__init__.py - simba/
roi_tools/ , Python, 139 linesimport_roi_csvs.py - simba/
roi_tools/ , Python, 616 linesinteractive_modifier_ui. py - simba/
roi_tools/ , Python, 188 linesinteractive_roi_bufferer .py - simba/
roi_tools/ , Python, 646 linesinteractive_roi_modifier _tkinter.py - simba/
roi_tools/ , Python, 307 linesroi_aggregate_statistics _analyzer.py - simba/
roi_tools/ , Python, 338 linesroi_aggregate_stats_mp.p y - simba/
roi_tools/ , Python, 265 linesroi_clf_calculator.py - simba/
roi_tools/ , Python, 314 linesroi_clf_calculator_mp.py - simba/
roi_tools/ , Python, 197 linesroi_ruler.py - simba/
roi_tools/ , Python, 118 linesroi_selector_circle_tkin ter.py - simba/
roi_tools/ , Python, 133 linesroi_selector_polygon_tki nter.py - simba/
roi_tools/ , Python, 131 linesroi_selector_rectangle_t kinter.py - simba/
roi_tools/ , Python, 355 linesroi_time_bins_analyzer.p y - simba/
roi_tools/ , Python, 179 linesroi_ui.py - simba/
roi_tools/ , Python, 1,257 linesroi_ui_mixin.py - simba/
roi_tools/ , Python, 670 linesroi_utils.py - simba/
sandbox/ , Python, 94 linesCLAHE.py - simba/
sandbox/ , Python, 100 linesGeometry_7.py - simba/
sandbox/ , Python, 210 linesMitraFeatureExtractor.py - simba/
sandbox/ , Python, 229 linesROI_analyzer.py - simba/
sandbox/ , Python, 259 linesROI_plotter.py - simba/
sandbox/ , Python, 355 linesROI_plotter_mp.py - simba/
sandbox/ , Python, 1 line__init__.py - simba/
sandbox/ , Python, 100 linesabod.py - simba/
sandbox/ , Python, 37 linesadd_body_part.py - simba/
sandbox/ , Python, 76 linesadd_probability_cnt_feat ures.py - simba/
sandbox/ , Python, 71 linesadd_sheet_excel.py - simba/
sandbox/ , Python, 204 linesadvanced_interpolator.py - simba/
sandbox/ , Python, 185 linesadvanced_smoothing.py - simba/
sandbox/ , Python, 1,750 linesamber_featurizer.py - simba/
sandbox/ , Python, 65 linesangle_3pt.py - simba/
sandbox/ , Python, 42 linesannotations_mitra.py - simba/
sandbox/ , Python, 163 linesaverage_frm_popup.py - simba/
sandbox/ , Python, 56 linesbar_chart.py - simba/
sandbox/ , Python, 47 linesbatch_video_to_greyscale .py - simba/
sandbox/ , Python, 121 linesbg_remover.py - simba/
sandbox/ , Python, 163 linesbg_remover_cuda.py - simba/
sandbox/ , Python, 98 linesbg_remover_cupy.py - simba/
sandbox/ , Python, 135 linesbg_remover_popup.py - simba/
sandbox/ , Python, 329 linesbg_substraction.py - simba/
sandbox/ , Python, 41 linesbiweight_midcorrelation. py - simba/
sandbox/ , Python, 59 linesblank_img.py - simba/
sandbox/ , Python, 3 linesblank_vid.py - simba/
sandbox/ , Python, 60 linesblurbox.py - simba/
sandbox/ , Python, 68 linesbout_aggregator.py - simba/
sandbox/ , Python, 52 linesbrillouins_index.py - simba/
sandbox/ , Python, 6 linescalc_N_degree_direction_ switches.py - simba/
sandbox/ , Python, 45 linescalinski_harabasz.py - simba/
sandbox/ , Python, 140 linescb_frame.py - repository limit reached (2,000 files or 30 MB): the rest is at the source (560 files)
- LICENSE, License, 30 lines
- README.md, Text, 233 lines
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;
- 427 scripts, each with its path and the digest of its content;
- 4 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
- geo:GSE325386, at NCBI GEO; found in “Data”
Data and code availability
Data: Bulk RNA-seq data have been deposited at Gene Expression Omnibus (GEO) as “GEO: GSE325386 (https://
All data reported in this paper will be shared by the lead contact upon request.
Code: All original code has been deposited at GitHub and is publicly available at https://
Additional information: Any additional information required to reanalyze the data reported in this paper is available from the lead contact upon request.
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 Juan Pablo Lopez (0000-0002-5812-4220); removed Juan Pablo Lopez
Version 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 14 authors, 11 keywords, 3 funders, 43 references, 1 RRID.
Cite
This paper
Gasperoni, S., Ji, X., Sudre-Chinsky, C., Cáceres Pajuelo, E., Zolfaghari, F. S., Boldemann, O., Manla Hasan, M., Biagini, T., Umanski, D., Shemesh, Y., Kos, A., Fontanet, P., Chen, A., & Lopez, J. P. (2026). Social hierarchy shapes behavioral and transcriptional responses to chronic stress and ketamine in male mice. iScience, 29(8), 116825. https://
BibTeX
@article{gasperoni2026so
author = {Gasperoni, Serena and Ji, Xiuqi and Sudre-Chinsky, Choham and Cáceres Pajuelo, Eduardo and Zolfaghari, Fatemeh Sadat and Boldemann, Otto and Manla Hasan, Manar and Biagini, Tommaso and Umanski, Daniil and Shemesh, Yair and Kos, Aron and Fontanet, Paula and Chen, Alon and Lopez, Juan Pablo},
title = {{Social hierarchy shapes behavioral and transcriptional responses to chronic stress and ketamine in male mice}},
journal = {iScience},
year = {2026},
month = jul,
volume = {29},
number = {8},
pages = {116825},
publisher = {Elsevier},
issn = {2589-0042},
doi = {10.1016/
url = {https://
pmid = {42495548},
pmcid = {PMC13392862}
}
RIS
TY - JOUR
AU - Gasperoni, Serena
AU - Ji, Xiuqi
AU - Sudre-Chinsky, Choham
AU - Cáceres Pajuelo, Eduardo
AU - Zolfaghari, Fatemeh Sadat
AU - Boldemann, Otto
AU - Manla Hasan, Manar
AU - Biagini, Tommaso
AU - Umanski, Daniil
AU - Shemesh, Yair
AU - Kos, Aron
AU - Fontanet, Paula
AU - Chen, Alon
AU - Lopez, Juan Pablo
TI - Social hierarchy shapes behavioral and transcriptional responses to chronic stress and ketamine in male mice
T2 - iScience
J2 - iScience
PY - 2026
DA - 2026/
VL - 29
IS - 8
SP - 116825
SN - 2589-0042
PB - Elsevier
DO - 10.1016/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1016/
"type": "article-journal",
"title": "Social hierarchy shapes behavioral and transcriptional responses to chronic stress and ketamine in male mice",
"container-title": "iScience",
"author": [
{
"family": "Gasperoni",
"given": "Serena"
},
{
"family": "Ji",
"given": "Xiuqi"
},
{
"family": "Sudre-Chinsky",
"given": "Choham"
},
{
"family": "Cáceres Pajuelo",
"given": "Eduardo"
},
{
"family": "Zolfaghari",
"given": "Fatemeh Sadat"
},
{
"family": "Boldemann",
"given": "Otto"
},
{
"family": "Manla Hasan",
"given": "Manar"
},
{
"family": "Biagini",
"given": "Tommaso"
},
{
"family": "Umanski",
"given": "Daniil"
},
{
"family": "Shemesh",
"given": "Yair"
},
{
"family": "Kos",
"given": "Aron"
},
{
"family": "Fontanet",
"given": "Paula"
},
{
"family": "Chen",
"given": "Alon"
},
{
"family": "Lopez",
"given": "Juan Pablo"
}
],
"container-title-short":
"volume": "29",
"issue": "8",
"page": "116825",
"DOI": "10.1016/
"PMID": "42495548",
"PMCID": "PMC13392862",
"ISSN": "2589-0042",
"publisher": "Elsevier",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
7,
21
]
]
}
}
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/s42003-026-10957-8 [code]
- Brain defence by the extracellular matrix protein Cochlin.Journal: Communications biologyIn common: imbalanced-learn, CuPy, SHAP, 16 other tools, mouse
- [2] doi:10.1002/advs.76040
- Pharmacological Inhibition of FKBP51 Mitigates Early Life Adversity-Induced Social Deficits in Male Mice.Journal: Advanced science (Weinheim, Baden-Wurttemberg, Germany)In common: genetics / omics, mouse, 7 references, 2 authors
- [3] doi:10.1038/s41593-026-02232-0 [code]
- Entorhinal cortex represents task-relevant remote locations independently of CA1.Journal: Nature neuroscienceIn common: Pingouin, Numba, NetworkX, 12 other tools, systems, mouse, 2 references
- [4] doi:10.7554/elife.110588 [code]
- Opening the black box toward a modular approach to spike sorting.Journal: eLifeIn common: imbalanced-learn, XGBoost, UMAP, 12 other tools, mouse
- [5] doi:10.7554/elife.109717 [code]
- Retrosplenial cortex enables context-dependent goal-directed sensorimotor transformation.Journal: eLifeIn common: SHAP, XGBoost, Numba, 11 other tools, systems, mouse, 1 reference
- [6] doi:10.1126/sciadv.aed3650 [code]
- Truthful visualizations for mass spectrometry imaging enable high-spatial-resolution interactive &
lt;i& gt;m/ z& lt;/ i& gt; mapping and exploration. Journal: Science advancesIn common: SHAP, XGBoost, UMAP, 11 other tools, genetics / omics, mouse - [7] doi:10.1186/s13059-026-04125-8 [code]
- MLMarker: a machine learning framework for tissue inference and biomarker discovery.Journal: Genome biologyIn common: imbalanced-learn, SHAP, XGBoost, 11 other tools, genetics / omics
- [8] doi:10.1016/j.isci.2026.116055 [code]
- Mapping the transcriptional diversity of calcium signaling in the mouse and human brain.Journal: iScienceIn common: CuPy, UMAP, Numba, 11 other tools, genetics / omics, mouse
- [9] doi:10.1016/j.xcrm.2026.102766 [code]
- A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.Journal: Cell reports. MedicineIn common: UMAP, Numba, NetworkX, 11 other tools, genetics / omics, 1 reference
- [10] doi:10.3389/fnsys.2026.1822122 [code]
- Convergence-divergence circuits for multimodal integration of innate and learned opponent valences.Journal: Frontiers in systems neuroscienceIn common: UMAP, Numba, NetworkX, 11 other tools, systems
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: 2 repositories of the authors' code, each at its verified commit and with its license, 427 scripts, and 4 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:e8f832d162c76258…
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.
