OSCR

Retroviral insertions contributed to the divergence of human and chimpanzee brains.

Code ↔ Paper

23 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 23 matches · 8 of them tie a paragraph to a whole file without given lines: weak matches, whose lines are not tinted
  1. [1] § MATERIALS AND METHODS › Single-nucleus RNA-seq › snRNA-seq analysis of human LINC00662-CRISPRi organoids ↔ LINC00662_CRISPRi_org/processing/LINC00662_CRISPRi_org_QC_celltype_gene_DEA.Rmd, lines 203 to 252 · score 0.89 · maxGSSize, minGSSize, pAdjustMethod, pvalueCutoff, gseGO, BH · Report a mismatch
  2. [2] § MATERIALS AND METHODS › Single-nucleus RNA-seq › snRNA-seq analysis of human LINC00662-CRISPRi organoids ↔ LINC00662_CRISPRi_org/processing/LINC00662_CRISPRi_org_scanpy.ipynb, lines 171 to 179 · score 0.87 · X_pca_harmony, init_pos, harmony integrate, external, UMAP, PAGA · Report a mismatch
  3. [3] § MATERIALS AND METHODS › Single-nucleus RNA-seq › snRNA-seq analysis of human LINC00662-CRISPRi organoids ↔ LINC00662_CRISPRi_org/processing/LINC00662_CRISPRi_org_scanpy.ipynb, lines 134 to 148 · score 0.86 · svd_solver, n_neighbors, n_pcs, arpack, flavor, igraph · Report a mismatch
  4. [4] § MATERIALS AND METHODS › ChOP mass spectrometry › ChOP-MS analysis ↔ LINC00662_chopMS/processing/src/R/02_LINC00662_chopMS_QC_norm_annot.R, the whole file · a weak match · score 0.80 · Human Protein Atlas, subcellular location, subtracted, background, lacZ, MS · Report a mismatch
  5. [5] § MATERIALS AND METHODS › Single-nucleus RNA-seq › snRNA-seq analysis of human LINC00662-CRISPRi organoids ↔ LINC00662_CRISPRi_org/processing/LINC00662_CRISPRi_org_scanpy.ipynb, lines 54 to 68 · score 0.75 · percent_top, qc metrics, log1p, Scrublet, Scanpy, gene · Report a mismatch
  6. [6] § MATERIALS AND METHODS › Identification of full-length PTERV1s and genomic location analysis ↔ PTERV1_genes/src/lift_PTERV1_overlapping_genes_to_hg38.sh, the whole file · a weak match · score 0.75 · UCSC LiftOver, pantro6, lifted, wa, BEDTools, RefSeq · Report a mismatch
  7. [7] § MATERIALS AND METHODS › Long-read direct RNA-seq › Long-read direct RNA analysis ↔ ONT_fetal/preprocessing/ONT_fetal_MN09_w9d0_ontRNA_human_basecall.sh, the whole file · a weak match · score 0.73 · rna004_130bps_sup, minimap2, v3, CUDA, splice, dorado · Report a mismatch
  8. [8] § MATERIALS AND METHODS › Long-read direct RNA-seq › Long-read direct RNA analysis ↔ ONT_fetal/preprocessing/ONT_fetal_MN09_w9d4_ontRNA_human_basecall.sh, the whole file · a weak match · score 0.73 · rna004_130bps_sup, minimap2, v3, CUDA, splice, dorado · Report a mismatch
  9. [9] § MATERIALS AND METHODS › Identification of full-length PTERV1s and genomic location analysis ↔ PTERV1_genes/src/lift_PTERV1_overlapping_genes_to_hg38.sh, the whole file · a weak match · score 0.69 · lifted coordinates, GENCODE v38, wo, BEDTools, intersected, hg38 · Report a mismatch
  10. [10] § MATERIALS AND METHODS › Long-read DNA sequencing › Long-read DNA analysis ↔ ONT_invitro/processing/methylartist_composite_retrotector.sh, the whole file · a weak match · score 0.67 · excl_ambig, panTro6, reference genome, segmeth, methylation, BAM · Report a mismatch
  11. [11] § MATERIALS AND METHODS › ChOP mass spectrometry › ChOP-MS analysis ↔ LINC00662_chopMS/processing/Main.Rmd, lines 101 to 131 · score 0.66 · StringDb, v11.5, background, MS, ChOP, proteins · Report a mismatch
  12. [12] § RESULTS › The expression of LINC00662 in chimpanzee is silenced by a PTERV1 insertion ↔ bulkRNA_org_human_chimp/processing/bulkRNA_org_human_chimp_gene_DEA.Rmd, lines 6 to 90 · score 0.65 · log2FC, log2FoldChange, bulk RNA, iPSC, Padj, DEA · Report a mismatch
  13. [13] § RESULTS › LINC00662 is a trans-acting lncRNA expressed during human brain development ↔ LINC00662_chopMS/processing/Main.Rmd, lines 101 to 131 · score 0.62 · StringDb, v11.5, ChOP MS, GO, proteins, LINC00662 · Report a mismatch
  14. [14] § MATERIALS AND METHODS › Single-nucleus RNA-seq › snRNA-seq analysis of human LINC00662-CRISPRi organoids ↔ LINC00662_CRISPRi_org/processing/LINC00662_CRISPRi_org_QC_celltype_gene_DEA.Rmd, lines 124 to 201 · score 0.60 · lfcShrink, DESeq2, Pseudobulks, Raw, matrices, summed · Report a mismatch
  15. [15] § MATERIALS AND METHODS › Single-nucleus RNA-seq › snRNA-seq analysis of human LINC00662-CRISPRi organoids ↔ LINC00662_CRISPRi_org/processing/LINC00662_CRISPRi_org_scanpy.ipynb, lines 54 to 68 · score 0.60 · filter_genes, min_cells, Scanpy, LINC00662 · Report a mismatch
  16. [16] § RESULTS › LINC00662 is a trans-acting lncRNA expressed during human brain development ↔ LINC00662_chopMS/processing/src/R/02_LINC00662_chopMS_QC_norm_annot.R, the whole file · a weak match · score 0.60 · ChOP MS, lncRNA, lacZ, binding, cytoplasm, brain · Report a mismatch
  17. [17] § MATERIALS AND METHODS › Long-read DNA sequencing › Long-read DNA analysis ↔ ONT_invitro/preprocessing/ONT_invitro_MN10_WT_Rep1_ontDNA_iPSC_JoC_chimp_basecall.sh, the whole file · a weak match · score 0.59 · dna_r10.4.1_e8.2_400bps_sup, reference genome, v4, POD5, Dorado, basecalled · Report a mismatch
  18. [18] § MATERIALS AND METHODS › Single-nucleus RNA-seq › snRNA-seq analysis of human LINC00662-CRISPRi organoids ↔ human_chimp_org/processing/human_chimp_org_QC_celltype.Rmd, lines 76 to 123 · score 0.56 · qc metrics, genes detected, Nuclei, human · Report a mismatch
  19. [19] § MATERIALS AND METHODS › Single-nucleus RNA-seq › snRNA-seq analysis of human and chimpanzee organoids ↔ human_chimp_org/processing/human_chimp_org_QC_celltype.Rmd, lines 237 to 247 · score 0.56 · Cell cycle scores, CellCycleScoring, genes, human · Report a mismatch
  20. [20] § MATERIALS AND METHODS › Unguided neural organoid culture ↔ human_chimp_org/preprocessing/human_chimp_org_preprocessing.py, lines 1 to 35 · score 0.56 · Organoid kit, bulk RNA, Cerebral, seq, Human · Report a mismatch
  21. [21] § RESULTS › The expression of LINC00662 in chimpanzee is silenced by a PTERV1 insertion ↔ bulkRNA_org_human_chimp/processing/bulkRNA_org_human_chimp_gene_DEA.Rmd, lines 6 to 90 · score 0.56 · log2FoldChange, bulk RNA, DESeq2, Padj, species, sequencing · Report a mismatch
  22. [22] § MATERIALS AND METHODS › Identification of full-length PTERV1s and genomic location analysis ↔ human_chimp_org/preprocessing/human_chimp_org_preprocessing.py, lines 1 to 35 · score 0.54 · GENCODE v38, Bulk RNA, hg38, seq, organoids, human · Report a mismatch
  23. [23] § MATERIALS AND METHODS › Single-nucleus RNA-seq › snRNA-seq analysis of human LINC00662-CRISPRi organoids ↔ LINC00662_CRISPRi_org/processing/LINC00662_CRISPRi_org_scanpy.ipynb, lines 239 to 244 · score 0.52 · score genes cell, Cell cycle, Scanpy, tl, LINC00662 · Report a mismatch

Paper

Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

Jupyter notebook · 281 lines · 13 KB · no license · 5 matches

  1. # %%
  2. import scanpy as sc
  3. import pandas as pd
  4. import statistics
  5. import sys
  6. import getopt
  7. import os
  8. import matplotlib.pyplot as mp
  9. import anndata as ad
  10. import time
  11. from matplotlib.backends.backend_pdf import PdfPages
  12. import seaborn as sns
  13. import matplotlib.pyplot as plt
  14. import statistics
  15. # %%
  16. sc.settings.figdir = "../results/figures/"
  17. print(ad.__version__)
  18. print(sc.__version__)
  19. # %%
  20. filenames = "input.txt"
  21. files = open(filenames, "r")
  22. files = [i.strip() for i in files]
  23. print(len(files))
  24. files
  25. # %%
  26. samplesheet = pd.read_table("samplesheet_QC_mn06_pterv_round2.txt")
  27. samplesheet = samplesheet.reset_index()
  28. samplesheet = samplesheet.set_index("sample_id")
  29. samplesheet
  30. # %%
  31. adatas = []
  32. i = 0
  33. for file in files:
  34. sample_name = file.split("/")[8]
  35. adata = sc.read_10x_mtx(file, var_names = "gene_symbols", cache = True)
  36. adata.obs["sample_name"] = sample_name
  37. adata.obs["condition"] = samplesheet.loc[sample_name]["condition"]
  38. adata.obs["day"] = samplesheet.loc[sample_name]["day"]
  39. adata.obs["rep"] = samplesheet.loc[sample_name]["rep"]
  40. adata.obs["batch"] = samplesheet.loc[sample_name]["batch"]
  41. adatas.append(adata)
  42. i = i+1
  43. print(str(i) + "/21")
  44. # %%
  45. # Number of cells
  46. sum([len(adata) for adata in adatas])
  47. # %%
  48. i = 0
  49. adatas_raw = adatas
  50. #adatas = adatas_raw
  51. for adata in adatas:
  52. adata.var_names_make_unique()
  53. sc.pp.filter_genes(adata, min_cells = 3)
  54. adata.var["mt"] = adata.var_names.str.startswith("MT-")
  55. adata.var["ribo"] = adata.var_names.str.startswith("RPS", "RPL")
  56. sc.pp.calculate_qc_metrics(adata, qc_vars = ["mt", "ribo"], percent_top = None, log1p = False, inplace = True)
  57. mean_counts = statistics.mean(adata.obs.n_genes_by_counts)
  58. sd_counts = statistics.stdev(adata.obs.n_genes_by_counts)
  59. sc.pp.scrublet(adata)
  60. i = i + 1
  61. print(str(i) + "/21 " + adata.obs.sample_name.unique().item() + " : " + str(len(adata)))
  62. # %%
  63. adata = ad.concat(adatas, keys = [adata.obs.sample_name[1] for adata in adatas], label = "sample_name", join="outer")
  64. adata.layers["counts"] = adata.X
  65. adata.obs_names_make_unique()
  66. # %%
  67. df = sc.get.obs_df(adata, ['sample_name','condition','day','rep','batch','n_genes_by_counts', "total_counts", "pct_counts_mt"])
  68. df["sample_name"] = df.sample_name.astype(str)
  69. df.to_csv('../results/tables/preQC_cellMeta.csv')
  70. df
  71. # %%
  72. import statistics
  73. with open("../results/tables/MN06_LINC00662_QC.txt","a") as fout:
  74. for i in range(0,len(adatas)):
  75. fout.write(str(i) + "/21 " + adatas[i].obs.sample_name.unique().item() + " pre QC: " + str(len(adatas[i].obs_names)) + "\n")
  76. fout.write(adatas[i].obs.sample_name.unique().item() + " pre QC: " + str(len(adatas[i])) + "\n")
  77. sc.pp.filter_cells(adatas[i], min_genes = 500, inplace = True)
  78. fout.write("Discading cells with less than 500 genes\n")
  79. fout.write(adatas[i].obs.sample_name.unique().item() + " with > 500 genes: " + str(len(adatas[i])) + "\n")
  80. mean_counts = statistics.mean(adatas[i].obs.total_counts)
  81. sd_counts = statistics.stdev(adatas[i].obs.total_counts)
  82. discarded = ((adatas[i].obs.total_counts < (mean_counts - (sd_counts * 2))) | (adatas[i].obs.total_counts > (mean_counts + (sd_counts * 2))))
  83. keep_cells = [cell for cell in (adatas[i].obs_names.to_list()) if cell not in discarded[discarded].index.to_list()]
  84. adatas[i] = adatas[i][keep_cells, :]
  85. fout.write("Discarding cells with < mean-2sd counts and > mean+2sd counts. Total: " + str(len(discarded[discarded].index.to_list())) + ". Kept: " + str(len(keep_cells)) + " or " + str(len(adatas[i])) + "\n")
  86. discarded = (adatas[i].obs.pct_counts_mt > 2)
  87. keep_cells = [cell for cell in (adatas[i].obs_names.to_list()) if cell not in discarded[discarded].index.to_list()]
  88. adatas[i] = adatas[i][keep_cells, :]
  89. fout.write("Discarding cells with >2 mt_counts: " + str(len(discarded[discarded].index.to_list())) + ". Kept: " + str(len(adatas[i])) + "\n")
  90. discarded = (adatas[i].obs.predicted_doublet == True)
  91. keep_cells = [cell for cell in (adatas[i].obs_names.to_list()) if cell not in discarded[discarded].index.to_list()]
  92. adatas[i] = adatas[i][keep_cells, :]
  93. fout.write("Discarding doublets: " + str(len(discarded[discarded].index.to_list())) + ". Kept: " + str(len(adatas[i])) + "\n")
  94. fout.write(adatas[i].obs.sample_name.unique().item() + " post QC: " + str(len(adatas[i])) + "\n")
  95. # %%
  96. print(len(adatas))
  97. adatas = [a for a in adatas if len(a) > 50]
  98. print(len(adatas))
  99. # %%
  100. adata = ad.concat(adatas, keys = [adata.obs.sample_name[1] for adata in adatas], label = "sample_name", join="outer")
  101. adata.layers["counts"] = adata.X
  102. adata.obs_names_make_unique()
  103. # %%
  104. from pathlib import Path
  105. from scipy import io
  106. adata.layers["raw_counts"] = adata.X
  107. adata.write_h5ad("./h5s/MN06_org_adata_preumap.h5")
  108. #io.mmwrite('./data_scanpy/counts_unscaled.mtx',adata.layers['counts'])
  109. # %%
  110. adata = ad.read_h5ad("./h5s/MN06_org_adata_preumap.h5")
  111. # %%
  112. sc.pp.normalize_total(adata, target_sum = 1e6)
  113. sc.pp.log1p(adata)
  114. adata.layers["normalized"] = adata.X
  115. sc.pp.highly_variable_genes(adata, n_top_genes=3000)
  116. # %%
  117. adata.obs.batch = adata.obs.batch.astype('category')
  118. adata.obs["batch_num"] = adata.obs.batch.cat.codes
  119. adata.obs.rep = adata.obs.rep.astype('category')
  120. adata.obs["rep_num"] = adata.obs.rep.cat.codes
  121. sc.pp.scale(adata, max_value = 10)
  122. adata.layers["scaled"] = adata.X
  123. sc.tl.pca(adata, svd_solver = "arpack")
  124. sc.pp.neighbors(adata, n_neighbors = 15, n_pcs = 20)
  125. sc.tl.leiden(adata, resolution = 0.1, random_state = 0, n_iterations = -1, directed = False, flavor = "igraph")
  126. sc.tl.paga(adata)
  127. sc.pl.paga(adata, plot = False)
  128. sc.tl.umap(adata, init_pos = "paga")
  129. # %%
  130. sc.pl.umap(adata, color = "leiden", save = "_nointegration_clusters.pdf")
  131. sc.pl.umap(adata, color = 'pct_counts_mt', save = "_nointegration_mt.pdf")
  132. sc.pl.umap(adata, color = 'condition', save = "_nointegration_condition.pdf")
  133. sc.pl.umap(adata, color = 'day', save = "_nointegration_day.pdf")
  134. sc.pl.umap(adata, color = 'rep', save = "_nointegration_rep.pdf")
  135. sc.pl.umap(adata, color = 'batch', save = "_nointegration_batch.pdf")
  136. sc.pl.umap(adata, color = 'total_counts', save = "_nointegration_counts.pdf")
  137. # %%
  138. with open("MN06_org_samples_mean_count_genes.tab", "w") as fout:
  139. for sample in adata.obs.sample_name.unique():
  140. fout.write(sample + "\t" + str(samplesheet.loc[sample]["condition"]) + "\t" + str(len(adata[adata.obs.sample_name.isin([str(sample)])].obs_names.unique())) + "\t" + str(adata[adata.obs.sample_name.isin([str(sample)])].obs.n_genes_by_counts.mean()) + "\t" + str(adata[adata.obs.sample_name.isin([str(sample)])].obs.total_counts.mean()) + "\n")
  141. # %%
  142. #adata = ad.read_h5ad("./h5s/MN06_org_adata_umap_integration.h5")
  143. adata.write_h5ad("./h5s/MN06_org_adata_umap_nointegration.h5")
  144. # %%
  145. samplesheet
  146. # %%
  147. sc.external.pp.harmony_integrate(adata = adata, key = ["batch"])
  148. sc.pp.neighbors(adata, n_neighbors = 15, n_pcs = 20, use_rep = 'X_pca_harmony')
  149. sc.tl.leiden(adata, resolution = 0.1, random_state = 0, n_iterations = -1, directed = False, flavor = "igraph")
  150. sc.tl.paga(adata)
  151. sc.pl.paga(adata, plot = False)
  152. sc.tl.umap(adata, init_pos = "paga")
  153. sc.pl.umap(adata, color = 'leiden')
  154. # %%
  155. sc.pl.umap(adata, color = 'leiden', save = "_integration_batch_clusters.pdf")
  156. sc.pl.umap(adata, color = "leiden", save = "_integration_clusters.pdf")
  157. sc.pl.umap(adata, color = 'pct_counts_mt', save = "_integration_mt.pdf")
  158. sc.pl.umap(adata, color = 'condition', save = "_integration_condition.pdf")
  159. sc.pl.umap(adata, color = 'day', save = "_integration_day.pdf")
  160. sc.pl.umap(adata, color = 'rep', save = "_integration_rep.pdf")
  161. sc.pl.umap(adata, color = 'batch', save = "_integration_batch.pdf")
  162. sc.pl.umap(adata, color = 'total_counts', save = "_integration_counts.pdf")
  163. # %%
  164. sc.pl.pca_variance_ratio(adata, log=True)
  165. adata.write_h5ad("h5s/MN06_adata_umap_integration.h5")
  166. # %%
  167. df = sc.get.obs_df(adata, ['leiden', 'sample_name','condition','day','rep','batch','LINC00662','n_genes_by_counts', "total_counts", "pct_counts_mt"])
  168. df.to_csv('../results/tables/MN06_QC.csv')
  169. cell_meta=adata.obs.copy()
  170. cell_meta['Barcode'] = cell_meta.index
  171. cell_meta['UMAP1'] = adata.obsm['X_umap'][:,0]
  172. cell_meta['UMAP2'] = adata.obsm['X_umap'][:,1]
  173. gene_meta=adata.var.copy()
  174. gene_meta['GeneName']=gene_meta.index
  175. cell_meta.to_csv('../results/tables/counts_cellMeta_integrated_umap.csv',index=None)
  176. gene_meta.to_csv('../results/tables/counts_geneMeta_integrated_umap.csv',index=None)
  177. # %%
  178. #adata = ad.read_h5ad("h5s/MN06_adata_umap_integration.h5")
  179. with open("input_postQC.txt", "a") as fout:
  180. fout.write('\n'.join(adata.obs.sample_name.unique()) + "\n")
  181. len(adata.obs.sample_name.unique())
  182. # %%
  183. adata = ad.read_h5ad("h5s/MN06_adata_umap_integration.h5")
  184. # %%
  185. markers = ["TJP1", "CUX2", "PAX6", "GLI3", "SOX2", "RBFOX3", "NCAM1", "DCX", "MKI67"]
  186. sc.pl.dotplot(adata, markers, 'leiden', save="_markers.pdf")
  187. #dp.add_totals().style(dot_edge_color='black', dot_edge_lw=0.5).show()
  188. # %%
  189. adata_dict_leiden_dea = {}
  190. sc.tl.rank_genes_groups(adata, groupby = 'leiden', method="wilcoxon", key_added = "wilcoxon")
  191. for i in adata.obs["leiden"].astype(str).unique():
  192. adata_dict_leiden_dea[i] = sc.get.rank_genes_groups_df(adata, group = i, key="wilcoxon")
  193. adata_dict_leiden_dea[i].index = adata_dict_leiden_dea[i].names
  194. print(i)
  195. sc.pl.rank_genes_groups(adata, n_genes=25, sharey=False, key="wilcoxon", save = "_markers.pdf")
  196. # %%
  197. adata
  198. # %%
  199. cell_cycle_genes = [x.strip() for x in open('./cellcycle.txt')]
  200. s_genes = cell_cycle_genes[:43]
  201. g2m_genes = cell_cycle_genes[43:]
  202. cell_cycle_genes = [x for x in cell_cycle_genes if x in adata.var_names]
  203. sc.tl.score_genes_cell_cycle(adata, s_genes=s_genes, g2m_genes=g2m_genes)
  204. # %%
  205. adata
  206. # %%
  207. sc.pl.dotplot(adata[adata.obs["day"] == 15], markers + ["S_score", "G2M_score"], 'leiden', vmin = -1, vmax=1.3, save="_day15_markers.pdf")
  208. sc.pl.dotplot(adata[adata.obs["day"] == 30], markers + ["S_score", "G2M_score"], 'leiden', vmin = -1, vmax=1.3, save="_day30_markers.pdf")
  209. # %%
  210. adata.obs["cellcycle_score"] = adata.obs["S_score"] + adata.obs["G2M_score"]
  211. # %%
  212. sc.pl.umap(adata[adata.obs["day"] == 15], color = ["cellcycle_score"], cmap = "coolwarm", vmax = 3, vmin = -0.5, save = "_cellcycle_day15.pdf")
  213. sc.pl.umap(adata[adata.obs["day"] == 30], color = ["cellcycle_score"], cmap = "coolwarm", vmax = 3, vmin = -0.5, save = "_cellcycle_day30.pdf")
  214. # %%
  215. df = sc.get.obs_df(adata, ['leiden', 'sample_name','condition','day','rep','batch', "EPHB2","VAV2","COL3A1","DAB2IP","BCR","CELSR1","SIPA1L3", "CDH4","CUX2","PRKCZ","ST8SIA2", "SHANK2","SLC9A1","SMAD7","KIRREL1", "TBCD","RAI1","SKI","CACNG4","CASTOR2", "TEAD2","KAZN","NXN","CMIP","SSBP3"])
  216. df.to_csv('../results/tables/MN06_upreg_genes_GSEA_core.csv')
  217. # %%
  218. adata
  219. # %%
  220. axon_genes = ["NIBAN2", "NOTCH1", "GLI2", "CDH4", "EPHB2", "PITPNA", "SEMA6B", "SEMA3F", "BCL2", "DNM2", "PTK7", "NECTIN1", "MARK2", "UNC5A", "NOTCH2", "NFASC", "SLIT1", "FGFR2", "PLEKHG4B", "TAOK2", "ARHGAP35", "RGMA", "ABL1", "NTN1", "SZT2", "STXBP1", "MEGF8", "TIAM1", "SEMA4D", "KIAA1755", "TRAK1", "UNC5B", "PLXNA2", "DSCAM", "APBB1", "SEMA4B", "NOVA2", "BAIAP2", "ECE1", "DISC1", "KALRN", "B4GALT5", "SMURF1", "VCL", "PTPRM", "RAB10", "IGF1R", "SPTBN4", "LIMK1", "FSTL4", "SMO", "MACF1", "APBB2", "MAP6", "DAG1", "EPHA10", "CYFIP2", "OPHN1", "TIAM2", "ADAM17", "SIN3A", "EXT1", "MAP2K1", "LHX2", "PSEN1", "SPG11", "SYNGAP1", "PARD3", "NUMBL", "TRIO", "SOS1", "PLXNA3", "NLGN3", "DPYSL5", "WDR47", "PTPN11", "AUTS2", "RAB21", "SEMA4A", "NCAM1", "BMPR2", "DIP2B", "FGF13", "PTK2", "VASP", "SIPA1L1", "GOLGA4", "SNAP25", "PAFAH1B1", "DSCAML1", "ADNP", "PTPRS", "TRIM46", "EPHB1", "SEMA6A", "PLXNC1", "DCLK1", "PRKCQ", "KLF7", "BCL11B", "CTNNA2", "SCN11A", "BRSK1", "SLIT3", "PLXNA4", "SEMA6D", "SEMA5A", "HDAC6", "KIF13B", "MAP1S", "ADARB1", "SEMA3D", "FLRT2", "PAK3", "NIN", "NUMB", "NTN4", "ATL1", "PAK1", "FYN", "USP9X", "LMX1A", "SPART", "TTL", "SPAST", "APLP2", "ARHGEF28", "RUFY3", "NTNG2", "DCC", "RPS6KA5", "ATP8A2", "CNTN6", "TBCE", "PALLD", "BMPR1B", "NTRK2", "RET", "NTNG1", "KIF5B", "ARHGAP4", "LRP4", "DRAXIN", "NEO1", "MAP3K13", "PLXNB1", "NEXN", "NOTCH3", "PICALM", "MAP1B", "PLXNA1", "FN1", "MCF2", "GLI3", "ERBB2", "CDKL5", "NELL2", "BRAF", "PTCH1", "NDEL1", "CNTNAP1", "CDH11", "WNT7B", "ADCY1", "RAB8A", "CNTN4", "TNR", "B4GALT6", "KIF5A", "STK25", "GBX1", "ROBO4", "USP33", "RTN4RL1", "FIGNL2", "NMNAT2", "VASH2", "PTPRF", "KREMEN1", "STK24", "LRIG2", "TBC1D24", "CTNNA1", "TSPAN2", "INPP5F", "CAMSAP2", "GRM7", "JAK2", "TRIM32", "BMP7", "TNC", "KIAA0319", "NRXN3", "EPHA3", "PTPRO", "ROBO1", "CHN1", "MAPK8IP3", "CNTN5", "LAMA2", "COBL", "NRXN1", "BOC", "LGI1", "DAB1", "GPM6B", "TNFRSF21", "NCAM2", "SEMA4G", "MATN2", "EDNRA", "UST", "ARHGEF40", "DRD2", "DHFR", "CNTN1", "UNC5D", "CHL1", "CFAP74", "ODAD4", "DNAAF1", "CCDC65", "ODAD1", "TTLL1", "CFAP46", "TTLL3", "DNAH1", "SPAG17", "CCDC40", "HYDIN", "NISCH", "RSPH9", "GAS8", "CFAP100", "DNAAF5", "CFAP44", "ARMC2", "STK36", "DRC1", "FSIP2", "CFAP58", "CLUAP1", "DNAH5", "TTC12", "LRGUK", "DNAI4", "ODAD2", "DNAI1", "DNAH7", "NEURL1", "CFAP91", "CFAP157", "SPEF2", "BBOF1", "DNAI2", "JHY", "CC2D2A", "DNAH2", "RSPH4A", "DNAI3", "CFAP73", "SPAG6", "DRC7", "DNAH17", "IQCG", "LRRC43", "DNAAF8", "TOGARAM1"]
  221. # %%
  222. adata
  223. # %%
  224. df = sc.get.obs_df(adata, ['leiden', 'sample_name','condition','day','rep','batch'] + axon_genes, layer="normalized")
  225. df.to_csv('../results/tables/MN06_axon_genes_GSEA_core.csv')
  226. # %%

LINC00662_CRISPRi_org_scanpy.ipynb at commit b2a557a, no license · at the source

Overview

  1. Laboratory of Molecular Neurogenetics, Department of Experimental Medical Science, Wallenberg Neuroscience Center and Lund Stem Cell Center, BMC A11, Lund University, 221 84 Lund, Sweden
  2. Department of Genetics, Cell Biology, and Development, Institute for Health Informatics and Bioinformatics and Computational Biology Graduate Program, University of Minnesota, Twin Cities, MN, USA
  3. Department of Medical Biochemistry and Cell Biology, Institute of Biomedicine, University of Gothenburg, SE-40530 Gothenburg, Sweden
  4. Department of Genome Sciences, University of Washington School of Medicine, Seattle, WA, USA
  5. Laboratory of Epigenetics and Chromatin Dynamics, Department of Experimental Medical Science, Wallenberg Neuroscience Center and Lund Stem Cell Center, BMC A11, Lund University, 221 84 Lund, Sweden
  6. Department of Medical Biochemistry and Microbiology, Uppsala University, Uppsala, Sweden
  7. Howard Hughes Medical Institute, University of Washington, Seattle, WA, USA
Institutions: Lund University (Sweden); University of Minnesota (United States); University of Gothenburg (Sweden); University of Washington (United States); Uppsala University (Sweden); Howard Hughes Medical Institute (United States)
Journal: Science advances, volume 12, issue 43, article eaeg5791
Dates: received 18 February 2026; accepted 17 September 2026; published online 23 October 2026; in print October 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1126/sciadv.aeg5791 · PMID 42913018 · PMCID PMC13693685 · OpenAlex W7223280415
Open access: gold, a free copy (OpenAlex)
Status: code verified (how the code is found and verified)
Categories: genetics / omics (modality), human (organism), non-human primate (organism), cellular / molecular (subfield)
Methods: Spectral & time-frequency, Statistics, Smoothing, state filtering, decompositions, Connectivity, Evoked potentials, Machine learning, fMRI & imaging
MeSH: Brain*, Endogenous Retroviruses*, Mutagenesis, Insertional*, Pan troglodytes*, Virus Integration*, Animals, DNA Methylation, Evolution, Molecular, Humans, Neurons, RNA, Long Noncoding, Species Specificity (* major topic)
Journal subjects: Biomedicine and Life Sciences, Evolutionary Biology
Topic: Chromosomal and Genetic Variations (Genetics, Biochemistry, Genetics and Molecular Biology), according to OpenAlex
Funding: national institutes of health (R01HG002385, R01HG010169, 5R00HG011041); Svenska Forskningsrådet Formas; Swedish Cancer Society (222185Pj); Hjärnfonden (FO2023-0232); IngaBritt och Arne Lundbergs Forskningsstiftelse; Swedish Research Council (2022-02673, 2024-03215); Marie Skłodowska-Curie Actions Postdoctoral Fellowship (101105804); Assar Gabrielsson’s Foundation (FB24-88); Crafoord Foundation; Segerfalk foundation; Royal Physiographic Society of Lund and Stiftelsen Lars Hiertas Minne; Swedish Cancer Research foundation; Barncancerfonden; ALF/ LUA; Swedish Government Initiative for Strategic Research Areas
Citations: not cited yet (Europe PMC); 101 references in the paper
Research resources: RRID:Addgene_170361, RRID:Addgene_170363, Gersbach RRID:Addgene_71237, Human embryonic kidney (HEK) 293T cells RRID:CVCL_0063, here referred to as HS1 RRID:CVCL_DQ11, here referred to as HS2 RRID:CVCL_DQ4, RRID:SCR_005223, RRID:SCR_006710, RRID:SCR_017344

Abstract

Over the past 5 to 7 million years, humans and chimpanzees have diverged in brain size, structure, and cognition despite high conservation of protein-coding genes. However, retroviral infections within host genomes have introduced numerous species-specific regulatory elements. Chimpanzees harbor lineage-specific PTERV1 endogenous retroviruses that are absent in humans, but their role in brain evolution has remained unclear. We performed an epigenomic analysis of PTERV1 insertions in chimpanzee neural organoids and found they are heavily DNA methylated, forming over 150 species-specific heterochromatin domains with the potential to influence gene regulation. We identified a chimpanzee-specific insertion on chromosome 19 that silences the long noncoding RNA LINC00662 through DNA methylation spreading. CRISPR-mediated deletion of this PTERV1 restored LINC00662 expression in chimpanzee induced pluripotent stem cells. We show that LINC00662, a human-specific transcript expressed during brain development, plays a role in neuronal maturation, axon outgrowth, and neural organoid development. These findings reveal a mechanism by which endogenous retroviral insertions contributed to human-chimpanzee brain divergence.

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 23 matches between paragraphs and lines of code.

PatricJernLab/RetroTector

License: MIT
State: the link answers, verified on 25 October 2026
Evidence: files inventoried
Commit: 38e353e558d37ea00f68be263351a88b18b954d9, 23 February 2024
Size: 3 files
Software Heritage: not archived
Found in: the text, “Identification of full-length PTERV1s and genomi”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 25 October 2026: the link answers
  • 25 October 2026: the link answers
2 files

Molecular-Neurogenetics/LINC00662_PTERV_Gerdes2025

License: none: the authors keep all their rights
State: the link answers, verified on 25 October 2026
Evidence: files inventoried
Commit: b2a557a9469e9b58b5d7fb9bb1e481c4d10ad7c3, 7 July 2026
Languages: Shell (25), R (8), Python (2), Jupyter (1)
Size: 94 files, 36 scripts
Software Heritage: not archived
Found in: “Data, code, and materials availability:”
Holds: README, 7 notebooks
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: SAMtools (8 files), data.table (6 files), tidyverse (6 files), ggplot2 (4 files), pheatmap (4 files), ggpubr (3 files), DESeq2 (2 files), pandas (2 files), anndata (1 file), BEDTools (1 file), clusterProfiler (1 file), ComplexHeatmap (1 file), Matplotlib (1 file), Scanpy (1 file), SciPy (1 file), seaborn (1 file), Seurat (1 file)
Availability: 1 check, the latest on 25 October 2026: the link answers
  • 25 October 2026: the link answers
37 files

Zenodo 21493999

License: CC-BY-4.0
State: the link answers, verified on 25 October 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: “Data, code, and materials availability:”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: SAMtools (8 files), data.table (6 files), tidyverse (6 files), ggplot2 (4 files), pheatmap (4 files), ggpubr (3 files), DESeq2 (2 files), pandas (2 files), anndata (1 file), BEDTools (1 file), clusterProfiler (1 file), ComplexHeatmap (1 file), Matplotlib (1 file), Scanpy (1 file), SciPy (1 file), seaborn (1 file), Seurat (1 file)
Availability: 1 check, the latest on 25 October 2026: the link answers (HTTP 200)
  • 25 October 2026: the link answers (HTTP 200)
37 files

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

Tracing map

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

What the map holds:

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

All data and code needed to evaluate and reproduce the results in the paper are present in the paper and/or the Supplementary Materials. This study did not generate new materials. The sequencing data presented in this study have been deposited in the European Nucleotide Archive (ENA) under accession no. PRJEB104347 (https://ebi.ac.uk/ena/browser/view/PRJEB104347). Proteomic data have been deposited in the ProteomeXchange Consortium via the PRIDE partner repository under the identifier PXD071764 (https://ebi.ac.uk/pride/archive/projects/PXD071764). Original code has been deposited at GitHub: https://github.com/Molecular-Neurogenetics/LINC00662_PTERV_Gerdes2025 and is archived at Zenodo: https://zenodo.org/records/21493999.

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 1, 25 October 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 23 authors, 12 MeSH terms, 15 funders, 101 references, 9 RRIDs.

Cite

This paper

Gerdes, P., Karlsson, O., Garza, R., Atacho, D. A. M., Hsieh, P., Prajapati, B., Yoo, D., Muralidharan, C., Adami, A., Davis-Hansson, C., Johansson, E. M., Sharma, Y., Castilla-Vallmanya, L., West, W., Vinod, M., Domitrovic, L., Johansson, P. A., Johansson, J., Douse, C. H., . . . Jakobsson, J. (2026). Retroviral insertions contributed to the divergence of human and chimpanzee brains. Science advances, 12(43), eaeg5791. https://doi.org/10.1126/sciadv.aeg5791

BibTeX

@article{gerdes2026retroviral,
author = {Gerdes, Patricia and Karlsson, Ofelia and Garza, Raquel and Atacho, Diahann A. M. and Hsieh, PingHsun and Prajapati, Bharat and Yoo, DongAhn and Muralidharan, Chandramouli and Adami, Anita and Davis-Hansson, Carrie and Johansson, Emily M. and Sharma, Yogita and Castilla-Vallmanya, Laura and West, Wiktor and Vinod, Meghna and Domitrovic, Lucian and Johansson, Pia A. and Johansson, Jenny and Douse, Christopher H. and Kanduri, Chandrasekhar and Jern, Patric and Eichler, Evan E. and Jakobsson, Johan},
title = {{Retroviral insertions contributed to the divergence of human and chimpanzee brains}},
journal = {Science advances},
year = {2026},
month = oct,
volume = {12},
number = {43},
pages = {eaeg5791},
publisher = {American Association for the Advancement of Science},
issn = {2375-2548},
doi = {10.1126/sciadv.aeg5791},
url = {https://doi.org/10.1126/sciadv.aeg5791},
pmid = {42913018},
pmcid = {PMC13693685}
}

RIS

TY - JOUR
AU - Gerdes, Patricia
AU - Karlsson, Ofelia
AU - Garza, Raquel
AU - Atacho, Diahann A. M.
AU - Hsieh, PingHsun
AU - Prajapati, Bharat
AU - Yoo, DongAhn
AU - Muralidharan, Chandramouli
AU - Adami, Anita
AU - Davis-Hansson, Carrie
AU - Johansson, Emily M.
AU - Sharma, Yogita
AU - Castilla-Vallmanya, Laura
AU - West, Wiktor
AU - Vinod, Meghna
AU - Domitrovic, Lucian
AU - Johansson, Pia A.
AU - Johansson, Jenny
AU - Douse, Christopher H.
AU - Kanduri, Chandrasekhar
AU - Jern, Patric
AU - Eichler, Evan E.
AU - Jakobsson, Johan
TI - Retroviral insertions contributed to the divergence of human and chimpanzee brains
T2 - Science advances
J2 - Sci Adv
PY - 2026
DA - 2026/10/23
VL - 12
IS - 43
SP - eaeg5791
SN - 2375-2548
PB - American Association for the Advancement of Science
DO - 10.1126/sciadv.aeg5791
UR - https://doi.org/10.1126/sciadv.aeg5791
LA - en
ER -

CSL-JSON

{
"id": "10.1126/sciadv.aeg5791",
"type": "article-journal",
"title": "Retroviral insertions contributed to the divergence of human and chimpanzee brains",
"container-title": "Science advances",
"author": [
{
"family": "Gerdes",
"given": "Patricia"
},
{
"family": "Karlsson",
"given": "Ofelia"
},
{
"family": "Garza",
"given": "Raquel"
},
{
"family": "Atacho",
"given": "Diahann A. M."
},
{
"family": "Hsieh",
"given": "PingHsun"
},
{
"family": "Prajapati",
"given": "Bharat"
},
{
"family": "Yoo",
"given": "DongAhn"
},
{
"family": "Muralidharan",
"given": "Chandramouli"
},
{
"family": "Adami",
"given": "Anita"
},
{
"family": "Davis-Hansson",
"given": "Carrie"
},
{
"family": "Johansson",
"given": "Emily M."
},
{
"family": "Sharma",
"given": "Yogita"
},
{
"family": "Castilla-Vallmanya",
"given": "Laura"
},
{
"family": "West",
"given": "Wiktor"
},
{
"family": "Vinod",
"given": "Meghna"
},
{
"family": "Domitrovic",
"given": "Lucian"
},
{
"family": "Johansson",
"given": "Pia A."
},
{
"family": "Johansson",
"given": "Jenny"
},
{
"family": "Douse",
"given": "Christopher H."
},
{
"family": "Kanduri",
"given": "Chandrasekhar"
},
{
"family": "Jern",
"given": "Patric"
},
{
"family": "Eichler",
"given": "Evan E."
},
{
"family": "Jakobsson",
"given": "Johan"
}
],
"container-title-short": "Sci Adv",
"volume": "12",
"issue": "43",
"page": "eaeg5791",
"DOI": "10.1126/sciadv.aeg5791",
"PMID": "42913018",
"PMCID": "PMC13693685",
"ISSN": "2375-2548",
"publisher": "American Association for the Advancement of Science",
"URL": "https://doi.org/10.1126/sciadv.aeg5791",
"language": "en",
"issued": {
"date-parts": [
[
2026,
10,
23
]
]
}
}

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.1126/sciadv.adh9543 [code]
LINE-1 retrotransposons drive human neuronal transcriptome complexity and functional diversification.
Journal: Science advances
In common: anndata, clusterProfiler, DESeq2, 7 other tools, genetics / omics, 16 references, 11 authors
[2] doi:10.1126/sciadv.aed2952 [code]
Activation of transposable elements is linked to a region- and cell type-specific interferon response in Parkinson's disease.
Journal: Science advances
In common: BEDTools, SAMtools, anndata, 13 other tools, cellular / molecular, 14 references, 7 authors
[3] doi:10.1038/s41594-024-01320-8 [code]
Mini-heterochromatin domains constrain the cis-regulatory impact of SVA transposons in human brain development and disease.
Journal: Nature structural & molecular biology
In common: clusterProfiler, DESeq2, pheatmap, 4 other tools, genetics / omics, cellular / molecular, 21 references, 4 authors
[4] doi:10.1016/j.xgen.2025.100979 [code]
LINE-1 retrotransposons mediate cis-acting transcriptional control in human pluripotent stem cells and regulate early brain development.
Journal: Cell genomics
In common: anndata, clusterProfiler, DESeq2, 7 other tools, 21 references, 2 authors
[5] doi:10.1002/advs.202506109 [code]
Human Brain Cell-Type-Specific Aging Clocks Based on Single-Nuclei Transcriptomics.
Journal: Advanced science (Weinheim, Baden-Wurttemberg, Germany)
In common: anndata, clusterProfiler, Scanpy, 9 other tools, genetics / omics, cellular / molecular, 1 reference, 7 authors
[6] doi:10.1038/s41467-024-50765-4 [code]
DNA methylation governs the sensitivity of repeats to restriction by the HUSH-MORC2 corepressor.
Journal: Nature communications
In common: genetics / omics, 12 references, 5 authors
[7] doi:10.1093/nar/gkag100 [code]
Loss of SETDB1-mediated H3K9me3 in human neural progenitor cells leads to transcriptional activation of L1 retrotransposons.
Journal: Nucleic acids research
In common: genetics / omics, 21 references, author Johan Jakobsson
[8] doi:10.1126/sciadv.adk1296 [code]
The annotation of &lt;i&gt;GBA1&lt;/i&gt; has been concealed by its protein-coding pseudogene &lt;i&gt;GBAP1&lt;/i&gt;.
Journal: Science advances
In common: DESeq2, Seurat, ggpubr, 6 other tools, genetics / omics, cellular / molecular, 2 references, 5 authors
[9] doi:10.1016/j.xgen.2026.101194 [code]
Genetic diversity and regulatory features of human-specific NOTCH2NL duplications.
Journal: Cell genomics
In common: BEDTools, SAMtools, ggpubr, 7 other tools, cellular / molecular, 2 references, 2 authors
[10] doi:10.1186/s13059-026-04177-w [code]
Genomic sequence evolution underlying human neocortical interareal diversification.
Journal: Genome biology
In common: BEDTools, SAMtools, anndata, 12 other tools, non-human primate, genetics / omics, cellular / molecular, 3 references

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.

Add the badge to the code's README

OSCR: the badge of this paper

If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.

Markdown
<!-- oscr-badge:start -->
[![OSCR](https://openscicode.org/badge/doi/10.1126/sciadv.aeg5791.svg)](https://openscicode.org/badge/doi/10.1126/sciadv.aeg5791)
<!-- oscr-badge:end -->
reStructuredText
.. oscr-badge:start

.. image:: https://openscicode.org/badge/doi/10.1126/sciadv.aeg5791.svg
   :target: https://openscicode.org/badge/doi/10.1126/sciadv.aeg5791
   :alt: OSCR

.. oscr-badge:end
HTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1126/sciadv.aeg5791"><img src="https://openscicode.org/badge/doi/10.1126/sciadv.aeg5791.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->

On GitHub, open the README, choose Edit (the pencil), paste the snippet under the title, then "Commit changes".

If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge 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: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.

Report a mismatch between the code and the paper · Report a code error (signed in)

Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.

Report a reproduction failure (signed in)

Versions of its code: the releases of its code tied to a version of this paper (the preprint, the accepted manuscript, the version of record…), each with the tracing map versioned with it.

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