OSCR

<i>In vivo</i> genome editing of central nervous system SIV reservoirs in ART-suppressed rhesus macaques.

Code ↔ Paper

4 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 4 matches
  1. [1] § Materials and methods › Nanopore sequence analysis ↔ bin/filter_reads.py, lines 222–230 · score 0.69 · internal deletion, deletion tolerant, mis, threshold, filter, query
  2. [2] § Materials and methods › Nanopore sequence analysis ↔ bin/parse_clusters.py, lines 389–464 · score 0.67 · pairwise edit distance, UMI tag, subclustering, filter, sequenced
  3. [3] § Materials and methods › Nanopore sequence analysis ↔ bin/parse_cluster_alignment.py, lines 32–116 · score 0.57 · reference sequence, CIGAR, flagged, segments, alignment, parsed
  4. [4] § Materials and methods › Amplicon barcode sequencing and clonal diversity analysis ↔ outerspace/cli/commands/collapse.py, lines 1–24 · score 0.52 · UMI tools, corrected barcodes, collapsed

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 · 413 lines · 12 KB · MPL-2.0 · 1 match

  1. """
  2. This is a modified version of the code present in:
  3. https://github.com/nanoporetech/pipeline-umi-amplicon/blob/master/lib/umi_amplicon_tools/filter_reads.py
  4. """
  5. import argparse
  6. import logging
  7. import os
  8. import sys
  9. import pysam
  10. def parse_args(argv):
  11. """
  12. Commandline parser
  13. :param argv: Command line arguments
  14. :type argv: List
  15. """
  16. usage = "Command line interface to telemap"
  17. parser = argparse.ArgumentParser(
  18. description=usage, formatter_class=argparse.RawDescriptionHelpFormatter
  19. )
  20. parser.add_argument(
  21. "-l",
  22. "--log",
  23. dest="log",
  24. choices=[
  25. "DEBUG",
  26. "INFO",
  27. "WARNING",
  28. "ERROR",
  29. "CRITICAL",
  30. "debug",
  31. "info",
  32. "warning",
  33. "error",
  34. "critical",
  35. ],
  36. default="INFO",
  37. help="Print debug information",
  38. )
  39. parser.add_argument(
  40. "-t", "--threads", dest="THREADS", type=int, default=1, help="Number of threads."
  41. )
  42. parser.add_argument(
  43. "--min_overlap",
  44. dest="MIN_OVERLAP",
  45. type=float,
  46. default=0.9,
  47. help="Min overlap with target region",
  48. )
  49. parser.add_argument(
  50. "--adapter_length",
  51. dest="ADAPTER_LENGTH",
  52. type=int,
  53. default=200,
  54. help="Length of adapter",
  55. )
  56. parser.add_argument(
  57. "--max_query_length",
  58. dest="MAX_QUERY_LENGTH",
  59. type=int,
  60. default=None,
  61. help=(
  62. "Maximum length to pass the long-read filter "
  63. "(default: region_length * (2 - min_overlap) + 2 * adapter_length). "
  64. "Use a higher value for long Nanopore amplicon reads."
  65. ),
  66. )
  67. parser.add_argument(
  68. "--include_secondary_reads",
  69. dest="INCL_SEC",
  70. action="store_true",
  71. help="Include secondary alignments",
  72. )
  73. parser.add_argument(
  74. "-o",
  75. "--output",
  76. dest="OUT",
  77. type=str,
  78. required=False,
  79. help="Output folder"
  80. )
  81. parser.add_argument(
  82. "--output_filename",
  83. dest="OUT_FILENAME",
  84. type=str,
  85. required=False,
  86. help="Output filename"
  87. )
  88. parser.add_argument(
  89. "--tsv",
  90. dest="TSV",
  91. action="store_true",
  92. help="Write tsv file containing filtering stats"
  93. )
  94. parser.add_argument("BED", type=str, nargs=1, help="BED file")
  95. parser.add_argument(
  96. "BAM", type=str, nargs="?", default="/dev/stdin", help="BAM file"
  97. )
  98. parser.add_argument(
  99. "--output_format",
  100. dest="OUT_FORMAT",
  101. type=str,
  102. help="Choose fastq or fasta",
  103. default="fasta"
  104. )
  105. parser.add_argument(
  106. "--split_read_filter_mode",
  107. dest="SPLIT_READ_FILTER_MODE",
  108. type=str,
  109. choices=["strict", "deletion_tolerant"],
  110. default="strict",
  111. help="strict: require query alignment span vs BED length; "
  112. "deletion_tolerant: require reference overlap with BED instead",
  113. )
  114. args = parser.parse_args(argv)
  115. return args
  116. def parse_bed(bed_regions):
  117. with open(bed_regions) as fh:
  118. for line in fh:
  119. line = line.strip()
  120. if not line:
  121. continue
  122. cols = line.split("\t")
  123. if len(cols) < 4:
  124. logging.warning("Ignoring BED entry: {}".format(line))
  125. continue
  126. region = {
  127. "chr": cols[0],
  128. "start": int(cols[1]),
  129. "end": int(cols[2]),
  130. "name": cols[3],
  131. }
  132. return region
  133. def write_read(read, output, type, format):
  134. output_fastx = os.path.join(
  135. output, "{}.{}".format(type, format)
  136. )
  137. # see if appending line is no problem by running it with nextflow (Otherwise delete files before appending for the first time)
  138. with open(output_fastx, "a") as out_f:
  139. if format == "fasta":
  140. write_fasta(read, out_f)
  141. elif format == "fastq":
  142. write_fastq(read, out_f)
  143. else:
  144. raise RuntimeError("specified format incorrect: {}".format(format))
  145. def write_fasta(read, out_f):
  146. read_strand = "-"
  147. if read.is_reverse:
  148. print(
  149. ">{};strand={}".format(read.query_name, read_strand), file=out_f
  150. )
  151. print(read.get_forward_sequence(), file=out_f)
  152. else:
  153. read_strand = "+"
  154. print(
  155. ">{};strand={}".format(read.query_name, read_strand), file=out_f
  156. )
  157. print(read.query_sequence, file=out_f)
  158. def write_fastq(read, out_f):
  159. read_strand = "-"
  160. if read.is_reverse:
  161. print(
  162. "@{};strand={}".format(read.query_name, read_strand), file=out_f
  163. )
  164. print(read.get_forward_sequence(), file=out_f)
  165. print("+", file=out_f)
  166. print(pysam.qualities_to_qualitystring(
  167. read.get_forward_qualities()), file=out_f)
  168. else:
  169. read_strand = "+"
  170. print(
  171. "@{};strand={}".format(read.query_name, read_strand), file=out_f
  172. )
  173. print(read.query_sequence, file=out_f)
  174. print("+", file=out_f)
  175. print(pysam.qualities_to_qualitystring(
  176. read.query_qualities), file=out_f)
  177. def bed_overlap_bp(read, region):
  178. """Reference bases of the alignment overlapping the BED interval."""
  179. if read.reference_start is None or read.reference_end is None:
  180. return 0
  181. overlap_start = max(read.reference_start, region["start"])
  182. overlap_end = min(read.reference_end, region["end"])
  183. return max(0, overlap_end - overlap_start)
  184. def is_short_read(read, region, region_length, min_overlap, filter_mode):
  185. if filter_mode == "deletion_tolerant":
  186. return bed_overlap_bp(read, region) < (region_length * min_overlap)
  187. return read.query_alignment_length < (region_length * min_overlap)
  188. def is_long_read(read, long_threshold, filter_mode):
  189. """
  190. strict: full query length vs long_threshold (often max_query_length override).
  191. deletion_tolerant: aligned span on the query only — not full read length,
  192. so internal-deletion ONT reads are not mis-binned as long.
  193. """
  194. if filter_mode == "deletion_tolerant":
  195. return read.query_alignment_length > long_threshold
  196. return read.query_length > long_threshold
  197. def filter_reads(args):
  198. bed_regions = args.BED[0]
  199. bam_file = args.BAM
  200. adapter_length = args.ADAPTER_LENGTH
  201. min_overlap = args.MIN_OVERLAP
  202. max_query_length = args.MAX_QUERY_LENGTH
  203. filter_mode = args.SPLIT_READ_FILTER_MODE
  204. incl_sec = args.INCL_SEC
  205. output = args.OUT
  206. out_format = args.OUT_FORMAT
  207. tsv = args.TSV
  208. output_filename = "{}_filtered".format(args.OUT_FILENAME)
  209. stats_out_filename = "{}_umi_filter_reads_stats".format(args.OUT_FILENAME)
  210. n_non_reads = 0
  211. n_unmapped = 0
  212. n_concatamer = 0
  213. n_short = 0
  214. n_ontarget = 0
  215. n_reads_region = 0
  216. n_supplementary = 0
  217. n_secondary = 0
  218. n_total = 0
  219. n_long = 0
  220. with pysam.AlignmentFile(bam_file, "rb") as bam:
  221. region = parse_bed(bed_regions)
  222. region_length = region["end"] - region["start"]
  223. long_threshold = (
  224. max_query_length
  225. if max_query_length is not None
  226. else region_length * (2 - min_overlap) + 2 * adapter_length
  227. )
  228. logging.info("Region: {}".format(region["name"]))
  229. logging.info("Long-read threshold: {} bp ({})".format(
  230. long_threshold, filter_mode))
  231. for read in bam.fetch(
  232. contig=region["chr"], start=region["start"], stop=region["end"], until_eof=True
  233. ):
  234. if (read.query_sequence is None):
  235. n_non_reads += 1
  236. continue
  237. n_total += 1
  238. if read.is_unmapped:
  239. n_unmapped += 1
  240. write_read(read, output, "unmapped", out_format)
  241. continue
  242. if read.is_secondary:
  243. n_secondary += 1
  244. if not incl_sec:
  245. write_read(read, output, "secondary", out_format)
  246. continue
  247. if read.is_supplementary:
  248. n_supplementary += 1
  249. write_read(read, output, "supplementary", out_format)
  250. continue
  251. n_ontarget += 1
  252. if read.query_alignment_length < (read.query_length - 2 * adapter_length):
  253. n_concatamer += 1
  254. write_read(read, output, "concatamer", out_format)
  255. continue
  256. if is_short_read(read, region, region_length, min_overlap, filter_mode):
  257. n_short += 1
  258. write_read(read, output, "short", out_format)
  259. continue
  260. if is_long_read(read, long_threshold, filter_mode):
  261. n_long += 1
  262. write_read(read, output, "long", out_format)
  263. continue
  264. n_reads_region += 1
  265. write_read(read, output, output_filename, out_format)
  266. if tsv:
  267. stats_out_filename = os.path.join(
  268. output, "{}.tsv".format(stats_out_filename))
  269. write_tsv(n_total, n_unmapped, n_secondary, n_supplementary, n_ontarget,
  270. n_concatamer, n_short, n_long, n_reads_region, incl_sec, stats_out_filename, region)
  271. def write_tsv(n_total, n_unmapped, n_secondary, n_supplementary, n_ontarget, n_concatamer, n_short, n_long, n_reads_region, incl_sec, stats_out_filename, region):
  272. concatermer_perc = 0
  273. short_perc = 0
  274. long_perc = 0
  275. if n_total > 0:
  276. if incl_sec:
  277. filtered_perc = 100 * n_reads_region // n_total
  278. else:
  279. filtered_perc = 100 * (n_secondary + n_reads_region) // n_total
  280. unmapped_perc = 100 * n_unmapped // n_total
  281. secondary_perc = 100 * n_secondary // n_total
  282. supplementary_perc = 100 * n_supplementary // n_total
  283. ontarget_perc = 100 * n_ontarget // n_total
  284. if ontarget_perc > 0:
  285. concatermer_perc = 100 * n_concatamer // n_ontarget
  286. short_perc = 100 * n_short // n_ontarget
  287. long_perc = 100 * n_long // n_ontarget
  288. with open(stats_out_filename, "a") as out_f:
  289. print(
  290. "format",
  291. "region",
  292. "reads_found",
  293. "reads_unmapped",
  294. "reads_secondary",
  295. "reads_supplementary",
  296. "reads_on_target",
  297. "reads_concatamer",
  298. "reads_short",
  299. "reads_long",
  300. "reads_filtered",
  301. "include_secondary",
  302. sep="\t",
  303. file=out_f
  304. )
  305. print(
  306. "count",
  307. region["name"],
  308. n_total,
  309. n_unmapped,
  310. n_secondary,
  311. n_supplementary,
  312. n_ontarget,
  313. n_concatamer,
  314. n_short,
  315. n_long,
  316. n_reads_region,
  317. incl_sec,
  318. sep="\t",
  319. file=out_f
  320. )
  321. print(
  322. "%",
  323. region["name"],
  324. "100",
  325. unmapped_perc,
  326. secondary_perc,
  327. supplementary_perc,
  328. ontarget_perc,
  329. concatermer_perc,
  330. short_perc,
  331. long_perc,
  332. filtered_perc,
  333. incl_sec,
  334. sep="\t",
  335. file=out_f
  336. )
  337. def main(argv=sys.argv[1:]):
  338. """
  339. Basic command line interface to telemap.
  340. :param argv: Command line arguments
  341. :type argv: list
  342. :return: None
  343. :rtype: NoneType
  344. """
  345. args = parse_args(argv=argv)
  346. numeric_level = getattr(logging, args.log.upper(), None)
  347. if not isinstance(numeric_level, int):
  348. raise ValueError("Invalid log level: %s" % args.log.upper())
  349. logging.basicConfig(level=numeric_level, format="%(message)s")
  350. filter_reads(args)
  351. if __name__ == "__main__":
  352. main()

filter_reads.py at commit 19f7d47, under MPL-2.0 · at the source

Overview

Authors: Hong Liu1, Shuren Liao1, Chen Chen1, Wenwen Huo2, Zahra Safaei1, Angela Rocchi1, Yuru Huang1, Ilker K Sariyer1, Mackenzie E Collins3, Jill M Lawrence3, Will Dampier3, Michael R Nonnemacher3, Brian Wigdahl3, Tricia H Burdo4, Jennifer Gordon2, Mark Lewis5, Cheri A Lee5, Kamel Khalili1
  1. Center for Neurovirology and Gene Editing, Department of Microbiology, Immunology and Inflammation, Lewis Katz School of Medicine at Temple University, 3500 N. Broad Street, 7th Floor, Philadelphia, PA 19140, USA
  2. Excision BioTherapeutics, Inc., 499 Jackson Street, San Francisco, CA 94111, USA
  3. Center for Molecular Virology and Translational Neuroscience, Institute for Molecular Medicine and Infectious Disease, Department of Microbiology and Immunology, Drexel University College of Medicine, 2900 W Queen Ln, Philadelphia, PA 19129, USA
  4. Rutgers Institute for Translational Medicine and Science, Robert Wood Johnson Medical School, Rutgers, The State University of New Jersey, 89 French Street, Suite 4275, New Brunswick, NJ 08901, USA
  5. Bioqual, Inc., 9600 Medical Center Drive, #101, Rockville, MD 20850, USA
Institutions: Temple University (United States); Drexel University (United States); Rutgers, The State University of New Jersey (United States); Bioqual (United States)
Journal: Molecular therapy. Nucleic acids, volume 37, issue 3, article 103063
Dates: received 17 March 2026; accepted 12 August 2026; published online 14 August 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1016/j.omtn.2026.103063 · PMID 42724751 · PMCID PMC13560538 · OpenAlex W7203474733
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: non-human primate (organism), cellular / molecular (subfield)
Methods: Statistics
Keywords: MT: RNA/DNA editing, SIV, HIV, CRISPR-Cas9, excision, viral reservoirs, viral persistence, brain regions, ART, CNS infection
Topic: CRISPR and Genetic Engineering (Molecular Biology, Biochemistry, Genetics and Molecular Biology), according to OpenAlex
Funding: NIAID NIH HHS (UM1 AI164568); NIMH NIH HHS (P30 MH092177)
Citations: not cited yet (Europe PMC); 47 references in the paper

Abstract

Latent human immunodeficiency virus type 1 (HIV-1) reservoirs in the central nervous system (CNS) may sustain viral persistence and neuroinflammation contributing to HIV-associated neurocognitive disorders (HAND) despite suppressive ART. AAV9-delivered CRISPR has successfully edited SIV proviral DNA in peripheral tissues with acceptable safety profiles, but the extent of in vivo genome editing in the brain remains unclear. Using SIV-infected rhesus macaques, we mapped intact proviral DNA across CNS regions and tested systemic AAV9-CRISPR-Cas9 targeting conserved sites within Ψ packaging signal and Gag region. Ten adult rhesus macaques were infected with genetically barcoded SIVmac239, suppressed with ART, then randomized to receive intravenous AAV9-SaCas9 with dual gRNAs (Ψ + Gag) or a Cas9-only control. At necropsy after viral rebound, SIV genomes were detected in multiple brain regions as well as lymphoid tissues, confirming the CNS as a persistent reservoir during ART. Barcode analysis revealed region-specific patterns consistent with compartmentalized CNS persistence. In CRISPR-treated animals, proviral editing was measurable across anatomically distinct CNS sites. These findings demonstrate that intact and potentially replication-competent virus persists in the primate brain under ART and that systemic AAV9-CRISPR can reach and edit proviral DNA in this sanctuary, supporting genome editing as a strategy toward durable remission of CNS reservoirs.

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.

DamLabResources/umi-pipeline-nf-HIV

License: MPL-2.0
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 19f7d479d716e7152439fe6c05e3496b751b91c1, 4 June 2026
Languages: Python (11), Shell (2)
Size: 230 files, 13 scripts
Software Heritage: not archived
Found in: the text, “Nanopore sequence analysis”
Holds: README, license file, CITATION.cff, environment (Dockerfile, environment.yaml, environment.yml), tests, continuous integration, documentation
Tools: pysam (6 files), Matplotlib (2 files), Nextflow (2 files), pandas (2 files), NetworkX (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
15 files

DamLabResources/outerspace

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: df4a034411f4a767161f782922f2dcf0f0878b34, 20 January 2026
Languages: Python (75), Shell (2)
Size: 169 files, 77 scripts
Software Heritage: not archived
Found in: the text, “Amplicon barcode sequencing and clonal diversity”
Holds: README, environment (pyproject.toml, workflow/wrappers/collapse/environment.yaml, workflow/wrappers/count/environment.yaml, workflow/wrappers/findseq/environment.yaml, workflow/wrappers/merge/environment.yaml, workflow/wrappers/stats/environment.yaml), tests, documentation
Not found: license file, CITATION.cff, continuous integration
Tools: NumPy (15 files), pandas (10 files), Snakemake (7 files), pysam (2 files), SciPy (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
78 files

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

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

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

No dataset and no data link were found in the paper.

Data and code availability

The data supporting the findings of this study are available within the article and its supplemental materials. Additional data are available from the corresponding author upon reasonable 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 Chen Chen (0000-0001-8218-1965); Mackenzie E Collins (0009-0005-0519-9113); Tricia H Burdo (0000-0002-4224-7381); Mark Lewis (0000-0001-7852-0135); Cheri A Lee (0009-0004-2540-8245); Kamel Khalili (0000-0002-6819-5217); removed Chen Chen; Mackenzie E Collins; Tricia H Burdo; Mark Lewis; Cheri A Lee; Kamel Khalili

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 18 authors, 10 keywords, 2 funders, 46 references.

Cite

This paper

Liu, H., Liao, S., Chen, C., Huo, W., Safaei, Z., Rocchi, A., Huang, Y., Sariyer, I. K., Collins, M. E., Lawrence, J. M., Dampier, W., Nonnemacher, M. R., Wigdahl, B., Burdo, T. H., Gordon, J., Lewis, M., Lee, C. A., & Khalili, K. (2026). &lt;i&gt;In vivo&lt;/i&gt; genome editing of central nervous system SIV reservoirs in ART-suppressed rhesus macaques. Molecular therapy. Nucleic acids, 37(3), 103063. https://doi.org/10.1016/j.omtn.2026.103063

BibTeX

@article{liu2026lt,
author = {Liu, Hong and Liao, Shuren and Chen, Chen and Huo, Wenwen and Safaei, Zahra and Rocchi, Angela and Huang, Yuru and Sariyer, Ilker K and Collins, Mackenzie E and Lawrence, Jill M and Dampier, Will and Nonnemacher, Michael R and Wigdahl, Brian and Burdo, Tricia H and Gordon, Jennifer and Lewis, Mark and Lee, Cheri A and Khalili, Kamel},
title = {{\&lt;i\&gt;In vivo\&lt;/i\&gt; genome editing of central nervous system SIV reservoirs in ART-suppressed rhesus macaques}},
journal = {Molecular therapy. Nucleic acids},
year = {2026},
month = aug,
volume = {37},
number = {3},
pages = {103063},
publisher = {American Society of Gene \& Cell Therapy},
issn = {2162-2531},
doi = {10.1016/j.omtn.2026.103063},
url = {https://doi.org/10.1016/j.omtn.2026.103063},
pmid = {42724751},
pmcid = {PMC13560538}
}

RIS

TY - JOUR
AU - Liu, Hong
AU - Liao, Shuren
AU - Chen, Chen
AU - Huo, Wenwen
AU - Safaei, Zahra
AU - Rocchi, Angela
AU - Huang, Yuru
AU - Sariyer, Ilker K
AU - Collins, Mackenzie E
AU - Lawrence, Jill M
AU - Dampier, Will
AU - Nonnemacher, Michael R
AU - Wigdahl, Brian
AU - Burdo, Tricia H
AU - Gordon, Jennifer
AU - Lewis, Mark
AU - Lee, Cheri A
AU - Khalili, Kamel
TI - &lt;i&gt;In vivo&lt;/i&gt; genome editing of central nervous system SIV reservoirs in ART-suppressed rhesus macaques
T2 - Molecular therapy. Nucleic acids
J2 - Mol Ther Nucleic Acids
PY - 2026
DA - 2026/08/14
VL - 37
IS - 3
SP - 103063
SN - 2162-2531
PB - American Society of Gene & Cell Therapy
DO - 10.1016/j.omtn.2026.103063
UR - https://doi.org/10.1016/j.omtn.2026.103063
LA - en
ER -

CSL-JSON

{
"id": "10.1016/j.omtn.2026.103063",
"type": "article-journal",
"title": "&lt;i&gt;In vivo&lt;/i&gt; genome editing of central nervous system SIV reservoirs in ART-suppressed rhesus macaques",
"container-title": "Molecular therapy. Nucleic acids",
"author": [
{
"family": "Liu",
"given": "Hong"
},
{
"family": "Liao",
"given": "Shuren"
},
{
"family": "Chen",
"given": "Chen"
},
{
"family": "Huo",
"given": "Wenwen"
},
{
"family": "Safaei",
"given": "Zahra"
},
{
"family": "Rocchi",
"given": "Angela"
},
{
"family": "Huang",
"given": "Yuru"
},
{
"family": "Sariyer",
"given": "Ilker K"
},
{
"family": "Collins",
"given": "Mackenzie E"
},
{
"family": "Lawrence",
"given": "Jill M"
},
{
"family": "Dampier",
"given": "Will"
},
{
"family": "Nonnemacher",
"given": "Michael R"
},
{
"family": "Wigdahl",
"given": "Brian"
},
{
"family": "Burdo",
"given": "Tricia H"
},
{
"family": "Gordon",
"given": "Jennifer"
},
{
"family": "Lewis",
"given": "Mark"
},
{
"family": "Lee",
"given": "Cheri A"
},
{
"family": "Khalili",
"given": "Kamel"
}
],
"container-title-short": "Mol Ther Nucleic Acids",
"volume": "37",
"issue": "3",
"page": "103063",
"DOI": "10.1016/j.omtn.2026.103063",
"PMID": "42724751",
"PMCID": "PMC13560538",
"ISSN": "2162-2531",
"publisher": "American Society of Gene & Cell Therapy",
"URL": "https://doi.org/10.1016/j.omtn.2026.103063",
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
14
]
]
}
}

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.1016/j.celrep.2026.117073 [code]
Single-cell epigenomics uncovers heterochromatin instability and transcription factor dysfunction during mouse brain aging.
Journal: Cell reports
In common: Snakemake, pysam, NetworkX, 4 other tools, cellular / molecular
[2] doi:10.1186/s13059-026-04177-w [code]
Genomic sequence evolution underlying human neocortical interareal diversification.
Journal: Genome biology
In common: Snakemake, pysam, pandas, 3 other tools, non-human primate, cellular / molecular
[3] doi:10.1038/s44400-026-00094-8 [code]
Haplotype-resolved DNA methylation at the &lt;i&gt;APOE&lt;/i&gt; locus identifies allele-specific epigenetic signatures relevant to Alzheimer's disease risk.
Journal: NPJ dementia
In common: Snakemake, pysam, pandas, 3 other tools, cellular / molecular
[4] doi:10.1038/s41467-026-71790-5 [code]
Recurrent DNA break clusters drive replication-stress-induced copy number variants and genome diversification.
Journal: Nature communications
In common: Snakemake, pysam, pandas, 3 other tools, cellular / molecular
[5] doi:10.1016/j.celrep.2026.117110 [code]
Single-nucleus multiome analysis in the human prefrontal cortex identifies gene expression and cis-regulatory elements associated with aging.
Journal: Cell reports
In common: Snakemake, pysam, pandas, 3 other tools, cellular / molecular
[6] doi:10.21203/rs.3.rs-9927928/v1 [code]
Genome-wide and allele-resolved maps of the radial architecture of the mouse genome
Journal: Research Square (preprint)
In common: Nextflow, pysam, pandas, 3 other tools
[7] doi:10.1093/genetics/iyag107 [code]
Neural posterior estimation for population genetics.
Journal: Genetics
In common: Snakemake, pysam, pandas, 3 other tools
[8] doi:10.1016/j.xcrm.2026.102766 [code]
A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.
Journal: Cell reports. Medicine
In common: pysam, NetworkX, pandas, 3 other tools, cellular / molecular
[9] 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 communications
In common: pysam, NetworkX, pandas, 3 other tools
[10] doi:10.1038/s42003-026-10462-y [code]
SpaDC enables sequence-based integrative analysis and regulatory inference of spatial chromatin accessibility data.
Journal: Communications biology
In common: pysam, NetworkX, pandas, 3 other tools

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.

Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.