Spatial isoform sequencing at single-cell resolution reveals cell-type-specific spatial isoform variability in multiple brain cell types.
The 25 matches · 1 of them tie a paragraph to a whole file, not to given lines: a weak match, whose lines are not tinted
- [1] § Methods › Splicing event classification of expressed isoforms ↔ isoquant_lib/assignment/isoform_assignment.py, lines 128–268 · score 0.89 · Mutually exclusive exons, Alternative donor, acceptor sites, Intron retention, alternative TSS, Exon skipping
- [2] § Methods › Splicing event classification of expressed isoforms ↔ isoquant_lib/assignment/isoform_assignment.py, lines 128–268 · score 0.87 · mutually exclusive exons, alternative donor, acceptor site, intron retention, alternative TSS, exon skipping
- [3] § Methods › Spatially variable isoform tests using predefined regions ↔ R/DiffSplicingAnalysis.R, the whole file · a weak match · score 0.83 · minNumReads, numIsoforms, DiffSplicingAnalysis, Delta Pi, IsoQuant, ScisorSeqR
- [4] § Methods › Barcode detection for other spatial and single-cell protocols ↔ isoquant_lib/barcode_calling/callers/__init__.py, lines 7–68 · score 0.82 · universal barcode calling, linker sequence, custom molecule, barcode detection, Visium HD, single cell
- [5] § Methods › Stereo-seq barcode detection ↔ isoquant_lib/barcode_calling/callers/base.py, lines 153–218 · score 0.71 · alignment score, UMI sequence, Stereo seq, detecting barcode, linker, primer
- [6] § Methods › Spatially variable isoform tests using predefined regions ↔ tutorials/Tutorial - predefined regions.ipynb, lines 40–91 · score 0.64 · DiffSplicingAnalysis, cortical layers, hippocampal subregions, brain regions, pairwise, ScisorSeqR
- [7] § Methods › Read processing and UMI deduplication ↔ isoquant_lib/parallel_workers.py, lines 353–407 · score 0.64 · edit distance, UMI filtered, PCR duplicates, UMIs, transcript, barcode
- [8] § Methods › Spatially variable isoform tests using Moran’s I ↔ src/SplIsoFind/spatially_variable.py, lines 134–268 · score 0.64 · nearest neighbors, spatial weights, permutation, moran, variable, isoform
- [9] § Methods › Read processing and UMI deduplication ↔ isoquant_lib/dataset_processor.py, lines 546–600 · score 0.63 · edit distance, UMI filtered, PCR duplicates, UMIs, gene
- [10] § Methods › Barcode detection for other spatial and single-cell protocols ↔ isoquant_lib/barcode_calling/__init__.py, lines 63–121 · score 0.62 · molecule structure, barcode detection, barcode calling, Visium HD, Curio, linker
- [11] § Methods › Stereo-seq barcode detection ↔ isoquant_lib/barcode_calling/detect_barcodes.py, lines 118–258 · score 0.61 · cDNAs, multiple barcoded, complemented, TSO, seq, UMI
- [12] § Methods › Stereo-seq barcode detection ↔ isoquant_lib/barcode_calling/callers/curio.py, lines 197–330 · score 0.59 · known barcode, alignment score, candidate, linker, primer, matches
- [13] § Methods › Long-read processing ↔ isoquant_lib/utils/read_mapper.py, lines 313–441 · score 0.59 · junc bed, preset, yes, MD, minimap2, alignment
- [14] § Methods › Long-read processing ↔ simulation/assess_barcode_quality.py, lines 526–573 · score 0.58 · Visium HD spatial, Stereo seq, barcode calling, single cell, Curio, v3
- [15] § Methods › Read processing and UMI deduplication ↔ isoquant_lib/utils/read_mapper.py, lines 313–441 · score 0.58 · junc bed, yes, MD, minimap2, genome, alignment
- [16] § Methods › Barcode detection for other spatial and single-cell protocols ↔ simulation/assess_barcode_quality.py, lines 526–573 · score 0.57 · barcode lengths, Visium HD, Stereo seq, barcode calling, bp, Genomics
- [17] § Methods › Barcode detection for other spatial and single-cell protocols ↔ misc/assess_barcode_quality.py, lines 526–573 · score 0.56 · barcode lengths, Visium HD, Stereo seq, barcode calling, bp, Genomics
- [18] § Methods › Stereo-seq barcode detection ↔ isoquant_lib/barcode_calling/callers/base.py, lines 33–150 · score 0.56 · alignment score, barcode sequence, linker, primer, protocol, filter
- [19] § Methods › Long-read processing ↔ isoquant_lib/barcode_calling/callers/__init__.py, lines 7–68 · score 0.55 · universal barcode calling, Visium HD, Stereo seq, single cell, Curio, v3
- [20] § Methods › Stereo-seq barcode detection ↔ isoquant_lib/barcode_calling/callers/base.py, lines 153–218 · score 0.54 · UMI sequence, Stereo seq, linker, concatenated, primers, poly
- [21] § Methods › Cell-type-constrained permutations ↔ src/SplIsoFind/spatially_variable.py, lines 567–619 · score 0.53 · constrained permutations, doublet_certain, probabilities, singlet, cells
- [22] § Methods › Differential exon testing using predefined comparisons ↔ src/SplIsoFind/preprocess.py, lines 21–100 · score 0.53 · AllInfo, intron chain, mapped, spliced, exons, barcoded
- [23] § Results › Gene-expression patterns in coronal brain slices ↔ isoquant_lib/barcode_calling/detect_barcodes.py, lines 118–258 · score 0.51 · cDNAs, complementary, stranded, segment, UMI, seq
- [24] § Methods › Benchmarking Stereo-seq barcode detection ↔ simulation/assess_barcode_quality.py, lines 278–375 · score 0.51 · NanoSim, barcode calling, recall, precision, simulated, Stereo
- [25] § Results › Detecting spatially variable isoforms using predefined brain regions ↔ R/CSIDE.R, lines 283–430 · score 0.50 · Benjamini Hochberg, gene expression, BH, variable
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 · 496 lines · 18 KB · GPL-2.0 · 3 matches
- ############################################################################
- # Copyright (c) 2023-2026 University of Helsinki
- # # All Rights Reserved
- # See file LICENSE for details.
- ############################################################################
- """
- Base classes for barcode detection results.
- Provides result containers for barcode calling across different platforms.
- """
- from collections import defaultdict
- from typing import List, Optional, Dict, Iterable, Union
- def increase_if_valid(val: Optional[int], delta: int) -> Optional[int]:
- """
- Increment a coordinate value if it's valid.
- Args:
- val: Position value (-1 or None indicates invalid)
- delta: Amount to increment
- Returns:
- Incremented value if valid, otherwise original value
- """
- if val and val != -1:
- return val + delta
- return val
- class BarcodeDetectionResult:
- """
- Base class for barcode detection results.
- Stores detected barcode, UMI, and quality scores for a single read.
- Implements the BarcodeResult protocol.
- """
- NOSEQ = "*" # Sentinel for missing/undetected sequence
- def __init__(self, read_id: str, barcode: str = NOSEQ, UMI: str = NOSEQ,
- BC_score: int = -1, UMI_good: bool = False, strand: str = "."):
- """
- Initialize barcode detection result.
- Args:
- read_id: Read identifier
- barcode: Detected barcode sequence (NOSEQ if not found)
- UMI: Detected UMI sequence (NOSEQ if not found)
- BC_score: Barcode alignment score
- UMI_good: Whether UMI passes quality filters
- strand: Detected strand ('+', '-', or '.')
- """
- self.read_id: str = read_id
- self._barcode: str = barcode if barcode else BarcodeDetectionResult.NOSEQ
- self._umi: str = UMI if UMI else BarcodeDetectionResult.NOSEQ
- self.BC_score: int = BC_score
- self.UMI_good: bool = UMI_good
- self.strand: str = strand
- # Primary getters (preferred interface)
- def get_barcode(self) -> str:
- """Get the detected barcode sequence."""
- return self._barcode
- def get_umi(self) -> str:
- """Get the detected UMI sequence."""
- return self._umi
- # Backward-compatible property accessors
- @property
- def barcode(self) -> str:
- """Barcode sequence. Prefer get_barcode() for new code."""
- return self._barcode
- @barcode.setter
- def barcode(self, value: str) -> None:
- self._barcode = value if value else BarcodeDetectionResult.NOSEQ
- @property
- def UMI(self) -> str:
- """UMI sequence. Prefer get_umi() for new code."""
- return self._umi
- @UMI.setter
- def UMI(self, value: str) -> None:
- self._umi = value if value else BarcodeDetectionResult.NOSEQ
- def is_valid(self) -> bool:
- """Check if a valid barcode was detected."""
- return self._barcode != BarcodeDetectionResult.NOSEQ
- def has_barcode(self) -> bool:
- """Check if a barcode was detected (alias for is_valid())."""
- return self._barcode != BarcodeDetectionResult.NOSEQ
- def has_umi(self) -> bool:
- """Check if a valid UMI was detected."""
- return self._umi != BarcodeDetectionResult.NOSEQ
- def update_coordinates(self, delta: int) -> None:
- """
- Shift all genomic coordinates by delta.
- Used when processing read subsequences.
- Args:
- delta: Amount to shift coordinates
- """
- pass
- def more_informative_than(self, that: 'BarcodeDetectionResult') -> bool:
- """
- Compare two results to determine which is more informative.
- Args:
- that: Another detection result
- Returns:
- True if this result is more informative
- Raises:
- NotImplementedError: Must be implemented by subclasses
- """
- raise NotImplementedError()
- def get_additional_attributes(self) -> List[str]:
- """
- Get list of detected additional features (primer, linker, etc.).
- Returns:
- List of detected feature names. Empty list for base class.
- """
- return []
- def set_strand(self, strand: str) -> None:
- """Set the detected strand."""
- self.strand = strand
- def __str__(self) -> str:
- """Format result as TSV line."""
- return "%s\t%s\t%s\t%d\t%s\t%s" % (self.read_id, self._barcode, self._umi,
- self.BC_score, self.UMI_good, self.strand)
- @staticmethod
- def header() -> str:
- """Static header for class-level access."""
- return "read_id\tbarcode\tUMI\tBC_score\tvalid_UMI\tstrand"
- class LinkerBarcodeDetectionResult(BarcodeDetectionResult):
- """
- Detection result for platforms with double barcodes (e.g., Curio, Stereo-seq).
- Extends base result with positions of additional features:
- polyT tail, primer, and linker sequences.
- """
- def __init__(self, read_id: str, barcode: str = BarcodeDetectionResult.NOSEQ,
- UMI: str = BarcodeDetectionResult.NOSEQ,
- BC_score: int = -1, UMI_good: bool = False, strand: str = ".",
- polyT: int = -1, primer: int = -1, linker_start: int = -1, linker_end: int = -1):
- """
- Initialize double barcode detection result.
- Args:
- read_id: Read identifier
- barcode: Detected barcode (concatenated if split by linker)
- UMI: Detected UMI sequence
- BC_score: Barcode alignment score
- UMI_good: Whether UMI passes quality filters
- strand: Detected strand
- polyT: Position of polyT tail start (-1 if not found)
- primer: Position of primer end (-1 if not found)
- linker_start: Position of linker start (-1 if not found)
- linker_end: Position of linker end (-1 if not found)
- """
- BarcodeDetectionResult.__init__(self, read_id, barcode, UMI, BC_score, UMI_good, strand)
- self.primer: int = primer
- self.linker_start: int = linker_start
- self.linker_end: int = linker_end
- self.polyT: int = polyT
- def update_coordinates(self, delta: int) -> None:
- self.primer = increase_if_valid(self.primer, delta)
- self.linker_start = increase_if_valid(self.linker_start, delta)
- self.linker_end = increase_if_valid(self.linker_end, delta)
- self.polyT = increase_if_valid(self.polyT, delta)
- def more_informative_than(self, that: 'LinkerBarcodeDetectionResult') -> bool:
- if self.BC_score != that.BC_score:
- return self.BC_score > that.BC_score
- if self.linker_start != that.linker_start:
- return self.linker_start > that.linker_start
- if self.primer != that.primer:
- return self.primer > that.primer
- return self.polyT > that.polyT
- def get_additional_attributes(self) -> List[str]:
- attr = []
- if self.polyT != -1:
- attr.append("PolyT detected")
- if self.primer != -1:
- attr.append("Primer detected")
- if self.linker_start != -1:
- attr.append("Linker detected")
- return attr
- def __str__(self) -> str:
- return (BarcodeDetectionResult.__str__(self) +
- "\t%d\t%d\t%d\t%d" % (self.polyT, self.primer, self.linker_start, self.linker_end))
- @staticmethod
- def header() -> str:
- """Static header for class-level access."""
- return BarcodeDetectionResult.header() + "\tpolyT_start\tprimer_end\tlinker_start\tlinker_end"
- class TSOBarcodeDetectionResult(LinkerBarcodeDetectionResult):
- """Detection result for Stereo-seq with TSO detection."""
- def __init__(self, read_id: str, barcode: str = BarcodeDetectionResult.NOSEQ,
- UMI: str = BarcodeDetectionResult.NOSEQ,
- BC_score: int = -1, UMI_good: bool = False, strand: str = ".",
- polyT: int = -1, primer: int = -1, linker_start: int = -1,
- linker_end: int = -1, tso: int = -1):
- LinkerBarcodeDetectionResult.__init__(self, read_id, barcode, UMI, BC_score, UMI_good, strand,
- polyT, primer, linker_start, linker_end)
- self.tso5: int = tso
- def update_coordinates(self, delta: int) -> None:
- self.tso5 = increase_if_valid(self.tso5, delta)
- LinkerBarcodeDetectionResult.update_coordinates(self, delta)
- def __str__(self) -> str:
- return (LinkerBarcodeDetectionResult.__str__(self) +
- "\t%d" % self.tso5)
- def get_additional_attributes(self) -> List[str]:
- attr = []
- if self.polyT != -1:
- attr.append("PolyT detected")
- if self.primer != -1:
- attr.append("Primer detected")
- if self.linker_start != -1:
- attr.append("Linker detected")
- if self.tso5 != -1:
- attr.append("TSO detected")
- return attr
- def get_fasta_segment_start(self) -> int:
- """Start position of the FASTA segment to extract for this molecule."""
- return max(0, self.primer - 25, self.polyT - 75)
- def get_fasta_segment_end(self, seq_len: int) -> int:
- """End position of the FASTA segment to extract for this molecule."""
- if self.tso5 == -1:
- return seq_len
- return min(seq_len, self.tso5 + 25)
- def get_tso_position(self) -> int:
- """Return TSO position for use in require_tso checks."""
- return self.tso5
- @staticmethod
- def header() -> str:
- """Static header for class-level access."""
- return LinkerBarcodeDetectionResult.header() + "\tTSO5"
- class TenXBarcodeDetectionResult(BarcodeDetectionResult):
- """Detection result for 10x Genomics platforms."""
- def __init__(self, read_id: str, barcode: str = BarcodeDetectionResult.NOSEQ,
- UMI: str = BarcodeDetectionResult.NOSEQ,
- BC_score: int = -1, UMI_good: bool = False, strand: str = ".",
- polyT: int = -1, r1: int = -1):
- BarcodeDetectionResult.__init__(self, read_id, barcode, UMI, BC_score, UMI_good, strand)
- self.r1: int = r1
- self.polyT: int = polyT
- def update_coordinates(self, delta: int) -> None:
- self.r1 = increase_if_valid(self.r1, delta)
- self.polyT = increase_if_valid(self.polyT, delta)
- def more_informative_than(self, that: 'TenXBarcodeDetectionResult') -> bool:
- if self.polyT != that.polyT:
- return self.polyT > that.polyT
- if self.r1 != that.r1:
- return self.r1 > that.r1
- return self.BC_score > that.BC_score
- def get_additional_attributes(self) -> List[str]:
- attr = []
- if self.polyT != -1:
- attr.append("PolyT detected")
- if self.r1 != -1:
- attr.append("R1 detected")
- return attr
- def __str__(self) -> str:
- return (BarcodeDetectionResult.__str__(self) +
- "\t%d\t%d" % (self.polyT, self.r1))
- @staticmethod
- def header() -> str:
- """Static header for class-level access."""
- return BarcodeDetectionResult.header() + "\tpolyT_start\tR1_end"
- class TenXSplitBarcodeDetectionResult(TenXBarcodeDetectionResult):
- """Detection result for 10x split mode — includes TSO position for molecule boundary."""
- def __init__(self, read_id: str, barcode: str = BarcodeDetectionResult.NOSEQ,
- UMI: str = BarcodeDetectionResult.NOSEQ,
- BC_score: int = -1, UMI_good: bool = False, strand: str = ".",
- polyT: int = -1, r1: int = -1, tso: int = -1):
- TenXBarcodeDetectionResult.__init__(self, read_id, barcode, UMI, BC_score, UMI_good, strand, polyT, r1)
- self.tso: int = tso
- def update_coordinates(self, delta: int) -> None:
- TenXBarcodeDetectionResult.update_coordinates(self, delta)
- if self.tso != -1:
- self.tso += delta
- def get_fasta_segment_start(self) -> int:
- """Start position of FASTA segment: just before R1 linker."""
- return max(0, self.r1 - 10) if self.r1 != -1 else 0
- def get_fasta_segment_end(self, seq_len: int) -> int:
- """End position of FASTA segment: just past the TSO, or end of read."""
- if self.tso == -1:
- return seq_len
- return min(seq_len, self.tso + 35)
- def get_tso_position(self) -> int:
- """Return TSO position for use in require_tso checks."""
- return self.tso
- def __str__(self) -> str:
- return TenXBarcodeDetectionResult.__str__(self) + "\t%d" % self.tso
- @staticmethod
- def header() -> str:
- return TenXBarcodeDetectionResult.header() + "\ttso_start"
- class SplittingBarcodeDetectionResult:
- """Result container for read splitting modes (multiple barcodes per read)."""
- NOSEQ = BarcodeDetectionResult.NOSEQ # For consistency with protocol
- def __init__(self, read_id: str):
- self.read_id: str = read_id
- self.strand: str = "." # For protocol compatibility
- self.detected_patterns: List[Union[TSOBarcodeDetectionResult, TenXSplitBarcodeDetectionResult]] = []
- def append(self, barcode_detection_result: Union[TSOBarcodeDetectionResult, TenXSplitBarcodeDetectionResult]) -> None:
- self.detected_patterns.append(barcode_detection_result)
- def empty(self) -> bool:
- return not self.detected_patterns
- def filter(self) -> None:
- if not self.detected_patterns:
- return
- barcoded_results = []
- for r in self.detected_patterns:
- if r.is_valid():
- barcoded_results.append(r)
- if not barcoded_results:
- self.detected_patterns = [self.detected_patterns[0]]
- else:
- self.detected_patterns = barcoded_results
- def get_barcode(self) -> str:
- """Get barcode from first valid pattern, or NOSEQ if none."""
- for r in self.detected_patterns:
- if r.is_valid():
- return r.get_barcode()
- return self.NOSEQ
- def get_umi(self) -> str:
- """Get UMI from first valid pattern, or NOSEQ if none."""
- for r in self.detected_patterns:
- if r.is_valid():
- return r.get_umi()
- return self.NOSEQ
- def is_valid(self) -> bool:
- """Check if any pattern has a valid barcode."""
- return any(r.is_valid() for r in self.detected_patterns)
- def has_barcode(self) -> bool:
- """Check if any pattern has a valid barcode."""
- return any(r.has_barcode() for r in self.detected_patterns)
- def has_umi(self) -> bool:
- """Check if any pattern has a valid UMI."""
- return any(r.has_umi() for r in self.detected_patterns)
- def set_strand(self, strand: str) -> None:
- """Set strand for all patterns."""
- self.strand = strand
- for r in self.detected_patterns:
- r.set_strand(strand)
- def update_coordinates(self, delta: int) -> None:
- """Update coordinates for all patterns."""
- for r in self.detected_patterns:
- r.update_coordinates(delta)
- def more_informative_than(self, other: 'SplittingBarcodeDetectionResult') -> bool:
- """Compare by number of valid patterns."""
- self_valid = sum(1 for r in self.detected_patterns if r.is_valid())
- other_valid = sum(1 for r in other.detected_patterns if r.is_valid())
- return self_valid > other_valid
- def get_additional_attributes(self) -> List[str]:
- """Get combined attributes from all patterns."""
- attrs = set()
- for r in self.detected_patterns:
- attrs.update(r.get_additional_attributes())
- return list(attrs)
- def __str__(self) -> str:
- """Format all patterns as TSV lines."""
- return "\n".join(str(r) for r in self.detected_patterns)
- @staticmethod
- def header() -> str:
- """Get TSV header for result output."""
- return TSOBarcodeDetectionResult.header()
- class ReadStats:
- """
- Statistics tracker for barcode detection results.
- Accumulates counts of processed reads, detected barcodes, valid UMIs,
- and platform-specific features (primers, linkers, polyT tails, etc.).
- """
- def __init__(self):
- """Initialize empty statistics."""
- self.read_count: int = 0
- self.bc_count: int = 0
- self.umi_count: int = 0
- self.additional_attributes_counts: Dict[str, int] = defaultdict(int)
- def add_read(self, barcode_detection_result) -> None:
- """
- Add a read result to statistics.
- Args:
- barcode_detection_result: Detection result to accumulate (implements BarcodeResult protocol)
- """
- self.read_count += 1
- # Count detected features (primer, linker, etc.)
- for a in barcode_detection_result.get_additional_attributes():
- self.additional_attributes_counts[a] += 1
- # Count valid barcode
- if barcode_detection_result.has_barcode():
- self.bc_count += 1
- # Count valid UMI
- if barcode_detection_result.has_umi():
- self.umi_count += 1
- def add_custom_stats(self, stat_name: str, val: int) -> None:
- """
- Add custom statistic value.
- Args:
- stat_name: Name of statistic
- val: Count to add
- """
- self.additional_attributes_counts[stat_name] += val
- def __str__(self) -> str:
- """Format statistics as human-readable string."""
- human_readable_str = ("Total reads\t%d\nBarcode detected\t%d\nReliable UMI\t%d\n" %
- (self.read_count, self.bc_count, self.umi_count))
- for a in self.additional_attributes_counts:
- human_readable_str += "%s\t%d\n" % (a, self.additional_attributes_counts[a])
- return human_readable_str
- def __iter__(self) -> Iterable[str]:
- """Iterate over statistics as formatted strings."""
- yield "Total reads: %d" % self.read_count
- yield "Barcode detected: %d" % self.bc_count
- yield "Reliable UMI: %d" % self.umi_count
- for a in self.additional_attributes_counts:
- yield "%s: %d" % (a, self.additional_attributes_counts[a])
base.py at commit 4fcbd0d, under GPL-2.0 · at the source
Overview
- Feil Family Brain and Mind Research Institute, Weill Cornell Medicine, New York, NY USA
- Center for Neurogenetics, Weill Cornell Medicine, New York, NY USA
- Department of Systems and Computational Biomedicine, Weill Cornell Medicine of Cornell University, New York, NY USA
- Caryl and Israel Englander Institute for Precision Medicine, The Meyer Cancer Center, Weill Cornell Medicine, New York, NY USA
- Department of Computer Science, University of Helsinki, Helsinki, Finland
- Helen and Robert Appel Alzheimer’s Disease Research Institute, Weill Cornell Medicine, New York, NY USA
- Department for Endocrinology and Diabetology, Medical Faculty and University Hospital Düsseldorf, Düsseldorf, Germany
- German Diabetes Center (DDZ), Leibniz Institute for Diabetes Research, Düsseldorf, Germany
- Center for Digital Medicine, Heinrich Heine University Düsseldorf, Düsseldorf, Germany
Abstract
Spatial long-read technologies are increasingly common but usually lack single-cell resolution. This leaves unanswered whether spatially variable isoforms reflect variability within one cell type or differences in region-specific cell-type composition. Here, we developed Spl-ISO-Seq2 (500-nm resolution) and accompanying software, Spl-IsoQuant-2 and Spl-IsoFind, enabling long-read sequencing of >450 million barcodes versus 80,000 previously. Applying this to the adult mouse brain, we compared differential isoform abundance between known regions and spatial isoform patterns independent of predefined regions. Both identified overlapping hits, for example, Rps24 in oligodendrocytes. For known Snap25 spatial isoform variation, we show that it occurs in excitatory neurons. The region-agnostic approach also uncovered patterns missed by region-based comparisons, for example, for Ighm. Notably, many spatial isoform signals are not driven by cell-type composition alone. Finally, our software is applicable to many spatial and single-cell protocols, demonstrating reproducibility between platforms (for example, Visium HD/
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 25 matches between paragraphs and lines of code.
dmcable/spacexr
9f5dc33c8060f946c6072a138b70e189636e1435, 22 January 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
104 files
- AnalysisCSIDE/
Figures/ , R, 349 linesfigure2.Rmd - AnalysisCSIDE/
Figures/ , R, 180 linesfigure3.Rmd - AnalysisCSIDE/
Figures/ , R, 203 linesfigure4_j20.Rmd - AnalysisCSIDE/
Figures/ , R, 287 linesfigure4_merfish.Rmd - AnalysisCSIDE/
Figures/ , R, 315 linesfigure4_testes.Rmd - AnalysisCSIDE/
Figures/ , R, 206 linesfigure4_visium.Rmd - AnalysisCSIDE/
Figures/ , R, 254 linesfigure5_nonparametric.Rm d - AnalysisCSIDE/
Figures/ , R, 213 linesfigure5_parametric.Rmd - AnalysisCSIDE/
Figures/ , R, 478 linessupp1.Rmd - AnalysisCSIDE/
Figures/ , R, 215 linessupp2.Rmd - AnalysisCSIDE/
Figures/ , R, 180 linessupp3.Rmd - AnalysisCSIDE/
Figures/ , R, 92 linessupp4.Rmd - AnalysisCSIDE/
Figures/ , R, 364 linessupp5.Rmd - AnalysisCSIDE/
Figures/ , R, 81 linessupp6.Rmd - AnalysisCSIDE/
Figures/ , R, 212 linessupp7.Rmd - AnalysisCSIDE/
Figures/ , R, 166 linessupp8.Rmd - AnalysisCSIDE/
Preprocessing_and_RCTD/ , R, 90 linescer_reps.R - AnalysisCSIDE/
Preprocessing_and_RCTD/ , R, 33 linesrun_RCTD_testes.R - AnalysisCSIDE/
README.Rmd , R, 110 lines - AnalysisCSIDE/
helper_functions/ , R, 216 linesalzheimers_helper.R - AnalysisCSIDE/
helper_functions/ , R, 135 linesde_simulation_helper.R - AnalysisCSIDE/
helper_functions/ , R, 48 linesmerge_de_helper.R - AnalysisCSIDE/
helper_functions/ , R, 35 linespersonal_utils.R - AnalysisCSIDE/
helper_functions/ , R, 263 linestestes_helper.R - AnalysisCSIDE/
image_analysis/ , R, 110 lineshcr.R - AnalysisCSIDE/
image_analysis/ , R, 27 linesoverlay.R - AnalysisCSIDE/
j20/ , R, 58 linesalign_plaque_density.R - AnalysisCSIDE/
j20/ , R, 14 linescreate_pd.R - AnalysisCSIDE/
j20/ , R, 81 linespd_to_exvar.R - AnalysisCSIDE/
j20/ , R, 45 linespreprocess_j20.R - AnalysisCSIDE/
j20/ , R, 14 linesrun_CSIDE_j20_21.R - AnalysisCSIDE/
j20/ , R, 14 linesrun_CSIDE_j20_22.R - AnalysisCSIDE/
j20/ , R, 14 linesrun_CSIDE_j20_23.R - AnalysisCSIDE/
j20/ , R, 14 linesrun_CSIDE_j20_24.R - AnalysisCSIDE/
j20/ , R, 20 linesrun_RCTD_j20_21.R - AnalysisCSIDE/
j20/ , R, 20 linesrun_RCTD_j20_22.R - AnalysisCSIDE/
j20/ , R, 20 linesrun_RCTD_j20_23.R - AnalysisCSIDE/
j20/ , R, 20 linesrun_RCTD_j20_24.R - AnalysisCSIDE/
run_CSIDE/ , R, 49 linesrun_de_cer_08.R - AnalysisCSIDE/
run_CSIDE/ , R, 34 linesrun_de_cer_09.R - AnalysisCSIDE/
run_CSIDE/ , R, 34 linesrun_de_cer_11.R - AnalysisCSIDE/
run_CSIDE/ , R, 190 linesrun_de_merfish.R - AnalysisCSIDE/
run_CSIDE/ , R, 25 linesrun_de_nonparametric.R - AnalysisCSIDE/
run_CSIDE/ , R, 70 linesrun_de_testes.R - AnalysisCSIDE/
run_CSIDE/ , R, 138 linesrun_de_tumor.R - AnalysisPaper/
MainFigures/ , R, 69 linesUpdated-Compatability/ figure2-platform-effect. Rmd - AnalysisPaper/
MainFigures/ , R, 155 linesfigure1.Rmd - AnalysisPaper/
MainFigures/ , R, 72 linesfigure2-platform-effect. Rmd - AnalysisPaper/
MainFigures/ , R, 192 linesfigure2.Rmd - AnalysisPaper/
MainFigures/ , R, 285 linesfigure3.Rmd - AnalysisPaper/
MainFigures/ , R, 214 linesfigure4.Rmd - AnalysisPaper/
MainFigures/ , R, 213 linesfigure5-all.Rmd - AnalysisPaper/
MainFigures/ , R, 277 linesfigure5-interneurons.Rmd - AnalysisPaper/
MainFigures/ , R, 221 linesfigure6-astrocytes.Rmd - AnalysisPaper/
MainFigures/ , R, 224 linesfigure6-spatialgenes.Rmd - AnalysisPaper/
Plotting/ , R, 262 linesfigure_utils.R - AnalysisPaper/
README.Rmd , R, 70 lines - AnalysisPaper/
Rscripts/ , R, 61 linesdoubletsimulation.R - AnalysisPaper/
Rscripts/ , R, 19 linesdropSeqProcess.R - AnalysisPaper/
Rscripts/ , R, 30 linesprepareNMF.R - AnalysisPaper/
Rscripts/ , R, 20 linesprocessNMF.R - AnalysisPaper/
Rscripts/ , R, 33 linesprocessVisium.R - AnalysisPaper/
Rscripts/ , R, 91 linessubcluster.R - AnalysisPaper/
Rscripts/ , R, 30 linesweightDecompose.R - AnalysisPaper/
SuppFigures/ , R, 504 linessupp.Rmd - AnalysisPaper/
SuppFigures/ , R, 706 linessupp_part2.Rmd - R/
CSIDE.R , R, 748 lines, 1 match - R/
CSIDE_class.R , R, 153 lines - R/
CSIDE_helper.R , R, 223 lines - R/
CSIDE_plots.R , R, 524 lines - R/
CSIDE_population.R , R, 206 lines - R/
CSIDE_stats.R , R, 27 lines - R/
CSIDE_utils.R , R, 467 lines - R/
IRWLS.R , R, 106 lines - R/
RCTD_helper.R , R, 235 lines - R/
RCTDreplicates.R , R, 308 lines - R/
Reference.R , R, 118 lines - R/
SpatialRNA.R , R, 236 lines - R/
classes.R , R, 172 lines - R/
platform_effect_normaliz , R, 109 linesation.R - R/
plotting.R , R, 449 lines - R/
postProcessing.R , R, 137 lines - R/
prob_model.R , R, 209 lines - R/
processRef.R , R, 59 lines - R/
replintegrate.R , R, 59 lines - R/
repliterate.R , R, 30 lines - R/
runRCTD.R , R, 204 lines - R/
spacexr.R , R, 165 lines - R/
utils.R , R, 131 lines - README.Rmd, R, 148 lines
- documentation/
README.Rmd , R, 243 lines - vignettes/
CSIDE_celltocell_interac , R, 155 linestions.Rmd - vignettes/
CSIDE_pathology_interact , R, 154 linesions.Rmd - vignettes/
CSIDE_two_regions.Rmd , R, 157 lines - vignettes/
README.Rmd , R, 63 lines - vignettes/
differential-expression. , R, 143 linesRmd - vignettes/
merfish_nonparametric.Rm , R, 140 linesd - vignettes/
replicates.Rmd , R, 188 lines - vignettes/
spatial-transcriptomics. , R, 183 linesRmd - vignettes/
visium_CSIDE_celltocell_ , R, 86 linesinteractions.Rmd - vignettes/
visium_full_regions.Rmd , R, 178 lines - vignettes/
visium_multi.Rmd , R, 91 lines - LICENSE, License, 674 lines
- README.md, Text, 288 lines
noush-joglekar/scisorseqr
a7ce0bbf0b7694f47701249ebca1937453e2454e, 5 December 2022Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
41 files
- R/
DiffSplicingAnalysis.R , R, 74 lines, 1 match - R/
ExonQuant.R , R, 44 lines - R/
FilterBCoutput.R , R, 26 lines - R/
GO.Reference.R , R, 32 lines - R/
GetBarcodes.R , R, 56 lines - R/
InfoPerLongRead.R , R, 59 lines - R/
IsoQuant.R , R, 43 lines - R/
MMalign.R , R, 38 lines - R/
MakeMatrices.R , R, 71 lines - R/
MapAndFilter.R , R, 85 lines - R/
STARalign.R , R, 38 lines - R/
correctedBed2AllInfo.R , R, 39 lines - R/
sigSplitPie.R , R, 31 lines - R/
triHeatmap.R , R, 31 lines - R/
utils-pipe.R , R, 11 lines - README.Rmd, R, 96 lines
- inst/
RScript/ , R, 68 linesExonCounting.R - inst/
RScript/ , R, 149 linesExonTest.R - inst/
RScript/ , R, 79 linesGOAnalysisWithPlots.R - inst/
RScript/ , R, 76 linesIsoQuant.R - inst/
RScript/ , R, 178 linesIsoformTest.R - inst/
RScript/ , R, 75 linesPieChart_Viz.R - inst/
RScript/ , R, 56 linestriangleHeatmap_Viz.R - inst/
bash/ , Shell, 46 linesFilterBCReads.sh - inst/
bash/ , Shell, 48 linesSTARcomm.sh - inst/
bash/ , Shell, 41 linesbed12_toAllInfo.sh - inst/
bash/ , Shell, 130 linescagePolyA.sh - inst/
bash/ , Shell, 30 linesconcat_ParallelizedBC.sh - inst/
bash/ , Shell, 16 linesf2t.sh - inst/
bash/ , Shell, 42 linesisoQuant_ds.sh - inst/
bash/ , Shell, 115 lineslongReadInfo.sh - inst/
bash/ , Shell, 256 linesmapAndAlignReads.sh - inst/
bash/ , Shell, 30 linesminimap2comm.sh - inst/
bash/ , Shell, 18 linestoolCheck.sh - inst/
python/ , Python, 44 linesAllIsoformsXCell_sparseM atrix.py - inst/
python/ , Python, 376 linesBarcodeDeconvolution.py - inst/
python/ , Python, 36 linesGet_IsoformXClusterMat.p y - inst/
python/ , Python, 69 linesv0.2.executeInParallel.p y - vignettes/
scisorseqr-StandardWorkf , R, 329 lineslow.Rmd - LICENSE, License, 21 lines
- README.md, Text, 72 lines
algbio/spl-IsoQuant
4fcbd0dff9e0ac068af308b6a99e296a2b5d34a7, 5 August 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
176 files
- docs/
getversion.py , Python, 14 lines - isoquant_lib/
__init__.py , Python, 6 lines - isoquant_lib/
alignment/ , Python, 7 lines__init__.py - isoquant_lib/
alignment/ , Python, 147 linesalignment_info.py - isoquant_lib/
alignment/ , Python, 661 linesalignment_processor.py - isoquant_lib/
assignment/ , Python, 9 lines__init__.py - isoquant_lib/
assignment/ , Python, 310 linesassignment_aggregator.py - isoquant_lib/
assignment/ , Python, 747 linesassignment_io.py - isoquant_lib/
assignment/ , Python, 244 linesassignment_loader.py - isoquant_lib/
assignment/ , Python, 213 linesexon_corrector.py - isoquant_lib/
assignment/ , Python, 168 linesillumina_exon_corrector. py - isoquant_lib/
assignment/ , Python, 1,114 lines, 2 matchesisoform_assignment.py - isoquant_lib/
assignment/ , Python, 472 linesjunction_comparator.py - isoquant_lib/
assignment/ , Python, 830 lineslong_read_assigner.py - isoquant_lib/
assignment/ , Python, 281 lineslong_read_profiles.py - isoquant_lib/
assignment/ , Python, 218 linesmultimap_resolver.py - isoquant_lib/
assignment/ , Python, 732 linesread_groups.py - isoquant_lib/
barcode_calling/ , Python, 121 lines, 1 match__init__.py - isoquant_lib/
barcode_calling/ , Python, 114 lines, 2 matchescallers/ __init__.py - isoquant_lib/
barcode_calling/ , Python, 496 lines, 3 matchescallers/ base.py - isoquant_lib/
barcode_calling/ , Python, 330 lines, 1 matchcallers/ curio.py - isoquant_lib/
barcode_calling/ , Python, 333 linescallers/ extraction_result.py - isoquant_lib/
barcode_calling/ , Python, 282 linescallers/ molecule_structure.py - isoquant_lib/
barcode_calling/ , Python, 191 linescallers/ protocol.py - isoquant_lib/
barcode_calling/ , Python, 574 linescallers/ stereo.py - isoquant_lib/
barcode_calling/ , Python, 632 linescallers/ tenx.py - isoquant_lib/
barcode_calling/ , Python, 596 linescallers/ universal_extraction.py - isoquant_lib/
barcode_calling/ , Python, 459 linescommon.py - isoquant_lib/
barcode_calling/ , Python, 483 lines, 2 matchesdetect_barcodes.py - isoquant_lib/
barcode_calling/ , Python, 29 linesindexers/ __init__.py - isoquant_lib/
barcode_calling/ , Python, 253 linesindexers/ base.py - isoquant_lib/
barcode_calling/ , Python, 332 linesindexers/ shared_memory.py - isoquant_lib/
barcode_calling/ , Python, 221 linesindexers/ two_bit.py - isoquant_lib/
barcode_calling/ , Python, 628 linesumi_filtering.py - isoquant_lib/
common.py , Python, 951 lines - isoquant_lib/
dataset_processor.py , Python, 803 lines, 1 match - isoquant_lib/
fusion/ , Python, 1 line__init__.py - isoquant_lib/
fusion/ , Python, 1,249 linesfusion_detector.py - isoquant_lib/
fusion/ , Python, 140 linesfusion_metadata.py - isoquant_lib/
fusion/ , Python, 298 linesfusion_validator.py - isoquant_lib/
fusion/ , Python, 150 linesgenomic_interval_index.p y - isoquant_lib/
gene_info.py , Python, 958 lines - isoquant_lib/
gtf2db.py , Python, 420 lines - isoquant_lib/
model_construction/ , Python, 9 lines__init__.py - isoquant_lib/
model_construction/ , Python, 256 linesassignment_based_constru ctor.py - isoquant_lib/
model_construction/ , Python, 223 linescontext.py - isoquant_lib/
model_construction/ , Python, 394 linesend_processor.py - isoquant_lib/
model_construction/ , Python, 206 linesfl_graph_constructor.py - isoquant_lib/
model_construction/ , Python, 726 linesintron_graph.py - isoquant_lib/
model_construction/ , Python, 148 linesintron_path.py - isoquant_lib/
model_construction/ , Python, 197 linesmodel_construction.py - isoquant_lib/
model_construction/ , Python, 232 linesmodel_filter.py - isoquant_lib/
model_construction/ , Python, 181 linesmodel_read_counter.py - isoquant_lib/
model_construction/ , Python, 154 linesread_assigner.py - isoquant_lib/
model_construction/ , Python, 149 linestranscript_printer.py - isoquant_lib/
model_construction/ , Python, 237 linestranscript_splice_site_c orrector.py - isoquant_lib/
model_construction/ , Python, 125 linestranscript_to_gene_joine r.py - isoquant_lib/
modes.py , Python, 82 lines - isoquant_lib/
parallel_workers.py , Python, 407 lines, 1 match - isoquant_lib/
processed_read_manager.p , Python, 193 linesy - isoquant_lib/
quantification/ , Python, 7 lines__init__.py - isoquant_lib/
quantification/ , Python, 409 linesconvert_grouped_counts.p y - isoquant_lib/
quantification/ , Python, 1,129 lineslong_read_counter.py - isoquant_lib/
scripts/ , Python, 8 lines__init__.py - isoquant_lib/
scripts/ , Python, 113 linesbarcodes_seq_to_spot_id. py - isoquant_lib/
scripts/ , Python, 226 linesconvert_read_info.py - isoquant_lib/
scripts/ , Python, 106 linesexon_splice_site_to_grou p_lists.py - isoquant_lib/
scripts/ , Python, 102 linesinject_bam_tags.py - isoquant_lib/
scripts/ , Python, 175 linesprepare_visium_spot_ids. py - isoquant_lib/
terminal_prediction/ , Python, 8 lines__init__.py - isoquant_lib/
terminal_prediction/ , Python, 49 linescage_finder.py - isoquant_lib/
terminal_prediction/ , Python, 231 linespolya_finder.py - isoquant_lib/
terminal_prediction/ , Python, 390 linespolya_verification.py - isoquant_lib/
terminal_prediction/ , Python, 546 linesterminal_counter.py - isoquant_lib/
terminal_prediction/ , Python, 221 linesterminal_peaks.py - isoquant_lib/
utils/ , Python, 1 line__init__.py - isoquant_lib/
utils/ , Python, 79 lineserror_codes.py - isoquant_lib/
utils/ , Python, 197 linesfile_naming.py - isoquant_lib/
utils/ , Python, 85 linesfile_utils.py - isoquant_lib/
utils/ , Python, 91 linesid_policy.py - isoquant_lib/
utils/ , Python, 503 linesinput_data_storage.py - isoquant_lib/
utils/ , Python, 441 lines, 2 matchesread_mapper.py - isoquant_lib/
utils/ , Python, 177 linesserialization.py - isoquant_lib/
utils/ , Python, 77 linesstats.py - isoquant_lib/
utils/ , Python, 660 linesstring_pools.py - isoquant_lib/
utils/ , Python, 299 linestable_splitter.py - isoquant_lib/
visualizer/ , Python, 8 lines__init__.py - isoquant_lib/
visualizer/ , Python, 303 linesgene_model.py - isoquant_lib/
visualizer/ , Python, 263 linesplot_output.py - isoquant_lib/
visualizer/ , Python, 681 linespost_process.py - isoquant_lib/
visualizer/ , Python, 99 linesprocess_dict.py - isoquant_tests/
__init__.py , Python, 6 lines - isoquant_tests/
console_test.py , Python, 239 lines - isoquant_tests/
github/ , Python, 183 linescfg2yaml.py - isoquant_tests/
github/ , Python, 58 lineserror_codes.py - isoquant_tests/
github/ , Shell, 8 linesgenerate_resume_test.sh - isoquant_tests/
github/ , Python, 232 linesperformance_counter.py - isoquant_tests/
github/ , Python, 479 linesrun_barcode_test.py - isoquant_tests/
github/ , Python, 838 linesrun_pipeline.py - isoquant_tests/
github/ , Python, 55 linesrun_until.py - isoquant_tests/
github/ , Python, 180 linesupdate_defaults.py - isoquant_tests/
test_alignment_info.py , Python, 116 lines - isoquant_tests/
test_assess_assignment_q , Python, 92 linesuality.py - isoquant_tests/
test_barcode2barcode.py , Python, 493 lines - isoquant_tests/
test_barcode_callers.py , Python, 571 lines - isoquant_tests/
test_barcode_common.py , Python, 540 lines - isoquant_tests/
test_barcode_detectors.p , Python, 808 linesy - isoquant_tests/
test_ci_config.py , Python, 564 lines - isoquant_tests/
test_common.py , Python, 375 lines - isoquant_tests/
test_common_utilities.py , Python, 42 lines - isoquant_tests/
test_enum_stats.py , Python, 73 lines - isoquant_tests/
test_exon_splice_site_co , Python, 381 linesunter.py - isoquant_tests/
test_feature_count_dedup , Python, 122 lines.py - isoquant_tests/
test_file_naming.py , Python, 39 lines - isoquant_tests/
test_file_utils.py , Python, 74 lines - isoquant_tests/
test_fusion_detector.py , Python, 821 lines - isoquant_tests/
test_fusion_metadata.py , Python, 639 lines - isoquant_tests/
test_fusion_validator.py , Python, 703 lines - isoquant_tests/
test_gene_info.py , Python, 134 lines - isoquant_tests/
test_genomic_interval_in , Python, 369 linesdex.py - isoquant_tests/
test_get_path_to_program , Python, 60 lines.py - isoquant_tests/
test_graph_alt_ends.py , Python, 225 lines - isoquant_tests/
test_id_distributor.py , Python, 235 lines - isoquant_tests/
test_illumina_exon_corre , Python, 103 linesctor.py - isoquant_tests/
test_intron_graph.py , Python, 374 lines - isoquant_tests/
test_intron_graph_refine , Python, 80 lines.py - isoquant_tests/
test_iso_quant_mode.py , Python, 59 lines - isoquant_tests/
test_joint_exon_counter. , Python, 198 linespy - isoquant_tests/
test_junction_comparator , Python, 33 lines.py - isoquant_tests/
test_kmer_indexer.py , Python, 404 lines - isoquant_tests/
test_long_read_assigner. , Python, 660 linespy - isoquant_tests/
test_long_read_profile.p , Python, 155 linesy - isoquant_tests/
test_molecule_structure. , Python, 630 linespy - isoquant_tests/
test_output_formats.py , Python, 357 lines - isoquant_tests/
test_polya_cage_finder.p , Python, 120 linesy - isoquant_tests/
test_polya_prediction.py , Python, 404 lines - isoquant_tests/
test_read_groups.py , Python, 538 lines - isoquant_tests/
test_serialization.py , Python, 132 lines - isoquant_tests/
test_shared_mem_index.py , Python, 197 lines - isoquant_tests/
test_string_pools.py , Python, 599 lines - isoquant_tests/
test_terminal_peaks.py , Python, 89 lines - isoquant_tests/
test_transcript_splice_s , Python, 251 linesite_corrector.py - isoquant_tests/
test_umi_filtering.py , Python, 167 lines - isoquant_tests/
test_universal_extractio , Python, 1,102 linesn.py - make-targz.sh, Shell, 46 lines
- misc/
all_commands.sh , Shell, 106 lines - misc/
assess_allinfo_quality.p , Python, 191 linesy - misc/
assess_assignment_qualit , Python, 451 linesy.py - misc/
assess_barcode_quality.p , Python, 625 lines, 1 matchy - misc/
assess_fusion_quality.py , Python, 142 lines - misc/
assess_polya_prediction. , Python, 422 linespy - misc/
assess_quantification.py , Python, 258 lines - misc/
common.py , Python, 161 lines - misc/
copyrighter.py , Python, 170 lines - misc/
correction_only.py , Python, 109 lines - misc/
correction_stats.py , Python, 154 lines - misc/
create_stereo_test_subse , Python, 117 linests.py - misc/
create_test_barcodes.py , Python, 81 lines - misc/
denovo_analyse.py , Python, 116 lines - misc/
denovo_model_stats.py , Python, 128 lines - misc/
gtf_stats.py , Python, 231 lines - misc/
isoseq_quantification.py , Python, 183 lines - misc/
nanosim_quantification.p , Python, 208 linesy - misc/
prepare_simulated_reduce , Python, 114 linesd_db.py - misc/
quantification_stats.py , Python, 167 lines - misc/
reduced_db_gffcompare.py , Python, 79 lines - misc/
short_utils.py , Python, 32 lines - misc/
split_gffcompare.py , Python, 61 lines - misc/
tpm_stats_precision.py , Python, 170 lines - misc/
tpm_stats_recall.py , Python, 122 lines - misc/
train_polya_tss_model.py , Python, 118 lines - splisoquant.py, Python, 1,479 lines
- splisoquant_detect_barco
des.py , Python, 122 lines - splisoquant_visualize.py
, Python, 184 lines - LICENSE, License, 60 lines
- README.md, Text, 170 lines
tilgnerlab/Spl-IsoFind
8d2f9f7186e36e63991eeabea20a31060aa3438d, 16 March 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
13 files
- docs/
conf.py , Python, 25 lines - docs/
notebooks/ , Jupyter, 194 linesTutorial - moran's I.ipynb - docs/
notebooks/ , Jupyter, 156 linesTutorial - plot examples.ipynb - docs/
notebooks/ , Jupyter, 156 linesTutorial - predefined regions.ipynb - src/
SplIsoFind/ , Python, 15 lines__init__.py - src/
SplIsoFind/ , Python, 712 linesplotting.py - src/
SplIsoFind/ , Python, 723 lines, 1 matchpreprocess.py - src/
SplIsoFind/ , Python, 619 lines, 2 matchesspatially_variable.py - tutorials/
Tutorial - moran's I.ipynb , Jupyter, 194 lines - tutorials/
Tutorial - plot examples.ipynb , Jupyter, 156 lines - tutorials/
Tutorial - predefined regions.ipynb , Jupyter, 156 lines, 1 match - LICENSE, License, 21 lines
- README.md, Text, 22 lines
tilgnerlab/Spl-IsoFind_reproducibility
3523c8de326e884f213a3a412fe36163091f17be, 22 June 2026Availability: 1 check, the latest on 26 September 2026: the link answers
- 26 September 2026: the link answers
13 files
- figures/
Figure 1.ipynb , Jupyter, 275 lines - figures/
Figure 3.ipynb , Jupyter, 140 lines - figures/
Figure 4.ipynb , Jupyter, 641 lines - figures/
Figure 5.ipynb , Jupyter, 472 lines - figures/
fig2/ , Python, 48 linesplot_panel_f_prec_recall .py - figures/
fig2/ , Python, 43 linesplot_panels_de_barcodes_ stats.py - misc/
barcodes_seq_to_spot_id. , Python, 108 linespy - simulation/
assess_barcode_quality.p , Python, 625 lines, 3 matchesy - simulation/
assess_visium_barcodes.p , Python, 137 linesy - simulation/
bam2tsv.py , Python, 35 lines - simulation/
simulate_barcoded.py , Python, 213 lines - LICENSE, License, 21 lines
- README.md, Text, 42 lines
Code availability
Spl-IsoQuant-2 is an open source software available under GNU General Public License, v.2, and is openly available at https://
Reproduced under the paper's license (CC BY), from the paper cited above.
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:
- 5 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 337 scripts, each with its path and the digest of its content;
- 25 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
- bioproject:PRJNA1282707, at NCBI BioProject; found in “Data availability”
- sra:SRX8673336, at NCBI SRA; found in the text, “Comparison to Visium coronal brain slides”
- zenodo:19499423, at Zenodo; found in “Data availability”
- zenodo:19616234, at Zenodo; found in “Data availability”
Data availability
Sequencing data are available at the Sequencing Read Archive under BioProject ID PRJNA1282707 (http://
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 3, 28 September 2026
- Publisher: n/a → Nature Portfolio
Version 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 14 authors, 4 keywords, 8 MeSH terms, 8 funders, 78 references.
Cite
This paper
Michielsen, L., Prjibelski, A. D., Foord, C., Spiegelman, Y., Kim, T., Hu, W., Jarroux, J., Hsu, J., Pfeil, R., Zhang, X., Gan, L., Tomescu, A. I., Hajirasouliha, I., & Tilgner, H. U. (2026). Spatial isoform sequencing at single-cell resolution reveals cell-type-specific spatial isoform variability in multiple brain cell types. Nature methods, 23(9), 1869-1881. https://
BibTeX
@article{michielsen2026s
author = {Michielsen, Lieke and Prjibelski, Andrey D and Foord, Careen and Spiegelman, Yelizaveta and Kim, Taewoo and Hu, Wen and Jarroux, Julien and Hsu, Justine and Pfeil, Rebecca and Zhang, Xinyi and Gan, Li and Tomescu, Alexandru I and Hajirasouliha, Iman and Tilgner, Hagen U},
title = {{Spatial isoform sequencing at single-cell resolution reveals cell-type-specific spatial isoform variability in multiple brain cell types}},
journal = {Nature methods},
year = {2026},
month = sep,
volume = {23},
number = {9},
pages = {1869--1881},
publisher = {Nature Portfolio},
issn = {1548-7091},
doi = {10.1038/
url = {https://
pmid = {42697995},
pmcid = {PMC13545012}
}
RIS
TY - JOUR
AU - Michielsen, Lieke
AU - Prjibelski, Andrey D
AU - Foord, Careen
AU - Spiegelman, Yelizaveta
AU - Kim, Taewoo
AU - Hu, Wen
AU - Jarroux, Julien
AU - Hsu, Justine
AU - Pfeil, Rebecca
AU - Zhang, Xinyi
AU - Gan, Li
AU - Tomescu, Alexandru I
AU - Hajirasouliha, Iman
AU - Tilgner, Hagen U
TI - Spatial isoform sequencing at single-cell resolution reveals cell-type-specific spatial isoform variability in multiple brain cell types
T2 - Nature methods
J2 - Nat Methods
PY - 2026
DA - 2026/
VL - 23
IS - 9
SP - 1869
EP - 1881
SN - 1548-7091
PB - Nature Portfolio
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "Spatial isoform sequencing at single-cell resolution reveals cell-type-specific spatial isoform variability in multiple brain cell types",
"container-title": "Nature methods",
"author": [
{
"family": "Michielsen",
"given": "Lieke"
},
{
"family": "Prjibelski",
"given": "Andrey D"
},
{
"family": "Foord",
"given": "Careen"
},
{
"family": "Spiegelman",
"given": "Yelizaveta"
},
{
"family": "Kim",
"given": "Taewoo"
},
{
"family": "Hu",
"given": "Wen"
},
{
"family": "Jarroux",
"given": "Julien"
},
{
"family": "Hsu",
"given": "Justine"
},
{
"family": "Pfeil",
"given": "Rebecca"
},
{
"family": "Zhang",
"given": "Xinyi"
},
{
"family": "Gan",
"given": "Li"
},
{
"family": "Tomescu",
"given": "Alexandru I"
},
{
"family": "Hajirasouliha",
"given": "Iman"
},
{
"family": "Tilgner",
"given": "Hagen U"
}
],
"container-title-short":
"volume": "23",
"issue": "9",
"page": "1869-1881",
"DOI": "10.1038/
"PMID": "42697995",
"PMCID": "PMC13545012",
"ISSN": "1548-7091",
"publisher": "Nature Portfolio",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
9,
4
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1038/s41467-026-76675-1 [code]
- Long-read proteogenomic atlas of human neuronal differentiation reveals isoform diversity informing neurodevelopmental risk mechanisms.Journal: Nature communicationsIn common: pysam, Biopython, BEDTools, 15 other tools, genetics / omics, 3 references
- [2] doi:10.1038/s42003-026-10957-8 [code]
- Brain defence by the extracellular matrix protein Cochlin.Journal: Communications biologyIn common: Biopython, caret, XGBoost, 18 other tools, mouse
- [3] doi:10.1038/s41593-026-02293-1 [code]
- Optics-free spatial genomics for mapping mammalian brain aging by IRISeq.Journal: Nature neuroscienceIn common: Biopython, SAMtools, Numba, 12 other tools, genetics / omics, mouse, 6 references
- [4] doi:10.1016/j.celrep.2026.117073 [code]
- Single-cell epigenomics uncovers heterochromatin instability and transcription factor dysfunction during mouse brain aging.Journal: Cell reportsIn common: pysam, BEDTools, SAMtools, 15 other tools, genetics / omics, mouse
- [5] doi:10.1038/s41592-026-03194-8 [code]
- Beyond benchmarking: an expert-guided consensus approach to spatially aware clustering.Journal: Nature methodsIn common: Scanpy, Seurat, cowplot, 12 other tools, genetics / omics, 5 references
- [6] 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: pysam, Numba, clusterProfiler, 16 other tools, genetics / omics
- [7] doi:10.21203/rs.3.rs-9676637/v1 [code]
- A Comprehensive Benchmarking of Spatial Deconvolution and Domain Detection Methods across Diverse Tissues and Spatial Transcriptomic TechnologiesJournal: Research Square (preprint)In common: Scanpy, Seurat, cowplot, 11 other tools, genetics / omics, 6 references
- [8] doi:10.1186/s13059-026-04177-w [code]
- Genomic sequence evolution underlying human neocortical interareal diversification.Journal: Genome biologyIn common: pysam, BEDTools, SAMtools, 14 other tools, genetics / omics, mouse, 1 reference
- [9] doi:10.1002/imt2.70163 [code]
- Spatial multi-omics unveils sphingolipid metabolic reprogramming within the retinal pathological niche.Journal: iMetaIn common: clusterProfiler, Scanpy, Seurat, 13 other tools, genetics / omics, mouse, 3 references
- [10] doi:10.1038/s41467-026-71803-3 [code]
- Charting the transition from in vitro gliogenesis to the in vivo maturation of human glial progenitor cells transplanted into the hypomyelinated mouse brain.Journal: Nature communicationsIn common: BEDTools, SAMtools, Numba, 14 other tools, genetics / omics, mouse, 1 reference
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
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: 5 repositories of the authors' code, each at its verified commit and with its license, 337 scripts, and 25 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:e6b63ef2c71a2b7c…
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.
