OSCR

Isoginkgetin protects against degeneration of ALS motor neurons via regulating the GSK-3β-TFEB signaling axis.

Code ↔ Paper

1 match 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 1 match
  1. [1] § Materials and methods › Receptor preparation ↔ Receptor Preparation and Structure-based Screeening.ipynb, lines 166 to 211 · score 0.71 · PDBFixer, missing atoms, hydrogen, residues, AlphaFold, Receptor · 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 · 493 lines · 14 KB · no license · 1 match

  1. # %% [markdown]
  2. # # Data preparation
  3. # %% [markdown]
  4. # ## download af structures via uniport id
  5. # %%
  6. import pandas as pd
  7. file = pd.read_csv('data/2_Autophagy_OR_Mitophagy.csv')
  8. print(file.shape)
  9. file = file.rename(columns={'Uniprot ID':'Uniprot'})
  10. file.head(2)
  11. # %%
  12. import requests
  13. from pathlib import Path
  14. from tqdm import tqdm
  15. ids = file.Uniprot.tolist()
  16. error_list = []
  17. output_dir = Path("alphafold_mouse")
  18. output_dir.mkdir(exist_ok=True)
  19. for uniprot_id in tqdm(ids):
  20. url = f"https://alphafold.ebi.ac.uk/files/AF-{uniprot_id}-F1-model_v6.pdb"
  21. out_path = output_dir / f"AF-{uniprot_id}-F1-model_v4.pdb"
  22. #print(f"Downloading {uniprot_id} ...")
  23. try:
  24. r = requests.get(url, timeout=10)
  25. r.raise_for_status()
  26. out_path.write_bytes(r.content)
  27. except Exception as e:
  28. print(f"Failed to download {uniprot_id}: {e}")
  29. error_list.append(uniprot_id)
  30. # %%
  31. ids = file.Uniprot.tolist()
  32. # %%
  33. import os
  34. import pandas as pd
  35. dir_path = 'alphafold_mouse'
  36. filenames = [f for f in os.listdir(dir_path) if os.path.isfile(os.path.join(dir_path, f))]
  37. df = pd.DataFrame(filenames, columns=['filename'])
  38. print(df.shape)
  39. df.head()
  40. # %%
  41. # %%
  42. df['name'] = df["filename"].str.split("-").str[1]
  43. ids_df = pd.DataFrame(ids, columns=["name"])
  44. print(ids_df.shape)
  45. ids_df = ids_df[~ids_df.name.isin(df['name'])]
  46. print(ids_df.shape)
  47. # %%
  48. df.to_csv('data/downloaded_AFpdb.csv',index=False)
  49. # %%
  50. ids_df.to_csv('data/missing_AFpdb.csv',index=False)
  51. # %%
  52. ids_df.shape
  53. # %% [markdown]
  54. # # Pocket prediction and fliter
  55. # %% [markdown]
  56. # ## use p2rank to seg pockets
  57. # %%
  58. import pandas as pd
  59. # %%
  60. df = pd.read_csv('data/downloaded_AFpdb.csv')
  61. # %%
  62. ds = f"protein_list.ds"
  63. with open(ds, "w") as out:
  64. for i in df.filename:
  65. out.write(f"alphafold_mouse/{i}\n")
  66. # %%
  67. shutil.unpack_archive('p2rank_23_archive.zip', 'p2rank_23')
  68. # %%
  69. import os
  70. import time
  71. start_time = time.time()
  72. p2rank = "p2rank_23/prank"
  73. cmd = f"{p2rank} predict {ds} -o af_workspace1/p2rank -threads 64"
  74. os.system(cmd)
  75. # Record end time
  76. end_time = time.time()
  77. # Calculate elapsed time
  78. p2rank_time = end_time - start_time
  79. # %%
  80. print(p2rank_time)
  81. # %% [markdown]
  82. # ## fliter none pocket proteins
  83. # %%
  84. import pandas as pd
  85. tmp = pd.read_csv("af_workspace/p2rank/AF-Q14005-F1-model_v4.pdb_predictions.csv")
  86. print(tmp[[' center_x', ' center_y', ' center_z']])
  87. tmp.head(2)
  88. # %%
  89. import pandas as pd
  90. import os
  91. import re
  92. from tqdm import tqdm
  93. workspace = "af_workspace/p2rank"
  94. non_empty_ids = []
  95. matching_files = [f for f in os.listdir(workspace) if re.match(r'AF-.+-F1-model_v4\.pdb_predictions\.csv', f)]
  96. matching_files.sort()
  97. for filename in tqdm(matching_files, desc="Checking files", unit="file"):
  98. match = re.match(r'AF-(.+)-F1-model_v4\.pdb_predictions\.csv', filename)
  99. if match:
  100. file_id = match.group(1)
  101. file_path = os.path.join(workspace, filename)
  102. try:
  103. df = pd.read_csv(file_path)
  104. if len(df) > 0:
  105. non_empty_ids.append(file_id)
  106. except pd.errors.EmptyDataError:
  107. continue
  108. result_df = pd.DataFrame({"non_empty_ids": non_empty_ids})
  109. print(f"Found {len(non_empty_ids)} non-empty files")
  110. # %%
  111. result_df.to_csv('data/downloaded_AFpdb_wpocket.csv',index=False)
  112. # %% [markdown]
  113. # # Docking
  114. # %% [markdown]
  115. # ## sample code for docking with predicted pocket info
  116. # %%
  117. import pandas as pd
  118. result_df = pd.read_csv('data/downloaded_AFpdb_wpocket.csv')
  119. df = pd.read_csv('data/downloaded_AFpdb.csv')
  120. df = df[df.name.isin(result_df.non_empty_ids)]
  121. # %%
  122. import pandas as pd
  123. from pdbfixer import PDBFixer
  124. from openmm.app import PDBFile
  125. from concurrent.futures import ProcessPoolExecutor, as_completed
  126. from pathlib import Path
  127. from tqdm import tqdm
  128. def add_h(protein_file, outpath):
  129. try:
  130. fixer = PDBFixer(protein_file)
  131. fixer.findMissingResidues()
  132. fixer.findNonstandardResidues()
  133. fixer.replaceNonstandardResidues()
  134. fixer.removeHeterogens(True)
  135. fixer.findMissingAtoms()
  136. fixer.addMissingAtoms()
  137. fixer.addMissingHydrogens(7.4)
  138. with open(outpath, "w") as f:
  139. PDBFile.writeFile(fixer.topology, fixer.positions, f)
  140. return (protein_file, True, "")
  141. except Exception as e:
  142. return (protein_file, False, str(e))
  143. def process_file(filename, prep_dir, out_dir):
  144. protein_path = f"{prep_dir}/{filename}"
  145. outpath = f"{out_dir}/{filename}"
  146. return add_h(protein_path, outpath)
  147. if __name__ == "__main__":
  148. outpath = 'alphafold_mouse'
  149. output_dir = Path(outpath)
  150. output_dir.mkdir(exist_ok=True)
  151. prep = 'alphafold_mouse'
  152. filenames = df.filename.tolist()
  153. # 并行处理
  154. results = []
  155. with ProcessPoolExecutor(max_workers=8) as executor:
  156. futures = [executor.submit(process_file, fname, prep, outpath) for fname in filenames]
  157. for future in tqdm(as_completed(futures), total=len(futures)):
  158. result = future.result()
  159. results.append(result)
  160. if not result[1]:
  161. print(f"❌ Failed: {result[0]}\nError: {result[2]}")
  162. # %%
  163. import subprocess
  164. from tqdm import tqdm
  165. from pathlib import Path
  166. outpath = 'debug'
  167. output_dir = Path(outpath)
  168. output_dir.mkdir(exist_ok=True)
  169. ligand_o = f'af_workspace/Keto.sdf'
  170. ligand_h = f'af_workspace/NAce.sdf'
  171. prep='alphafold_mouse'
  172. for i in tqdm(df.filename):
  173. try:
  174. df1 = pd.read_csv(f'af_workspace/p2rank/{i}_predictions.csv')
  175. protein_path = f'{prep}/{i}'
  176. i=i.split("-")[1]
  177. print(f'start docking {i}')
  178. out_dict_o = f'{outpath}/{i}/'
  179. out_dict_h = f'{outpath}/{i}/'
  180. #add_h(protein_path, protein_path)
  181. '''for j in range(df.shape[0]):
  182. x,y,z = df1.loc[j][[' center_x', ' center_y', ' center_z']].values
  183. subprocess.run(f'unidocktools unidock_pipeline -r {protein_path} -l {ligand_o} -sd {out_dict_o} -nm 10 -cx {x} -cy {y} -cz {z}', shell=True, check=True)
  184. subprocess.run(f'unidocktools unidock_pipeline -r {protein_path} -l {ligand_h} -sd {out_dict_h} -nm 10 -cx {x} -cy {y} -cz {z}', shell=True, check=True)
  185. '''
  186. x,y,z = df1[' center_x'][0],df1[' center_y'][0],df1[' center_z'][0]
  187. subprocess.run(f'unidocktools unidock_pipeline -r {protein_path} -l {ligand_o} -sd {out_dict_o} -nm 25 -cx {x} -cy {y} -cz {z}', shell=True, check=True)
  188. subprocess.run(f'unidocktools unidock_pipeline -r {protein_path} -l {ligand_h} -sd {out_dict_h} -nm 25 -cx {x} -cy {y} -cz {z}', shell=True, check=True)
  189. except Exception as e:
  190. print(e)
  191. print(i)
  192. # %%
  193. import tempfile
  194. import os
  195. import shutil
  196. def filter_pdb(input_file, output_file=None):
  197. if output_file is None or input_file == output_file:
  198. input_dir = os.path.dirname(os.path.abspath(input_file))
  199. temp_fd, temp_path = tempfile.mkstemp(
  200. suffix='.pdb',
  201. dir=input_dir
  202. )
  203. os.close(temp_fd)
  204. else:
  205. temp_path = None
  206. try:
  207. with open(input_file, 'r') as infile, open(temp_path or output_file, 'w') as outfile:
  208. for line in infile:
  209. if line.startswith(('ATOM', 'TER', 'END')): #, 'CONECT'
  210. outfile.write(line)
  211. if temp_path:
  212. os.replace(temp_path, input_file)
  213. #print(f"{input_file}")
  214. finally:
  215. if temp_path and os.path.exists(temp_path):
  216. os.remove(temp_path)
  217. for subdir in tqdm(list(docking_dir.iterdir()), desc="Collecting docking info"):
  218. if subdir.is_dir():
  219. pdb_id = subdir.name
  220. protein_file = protein_dir / f"AF-{pdb_id}-F1-model_v4.pdb"
  221. #print(protein_file)
  222. if not protein_file.exists():
  223. print(f"[Warning] Missing protein file: {protein_file}")
  224. continue
  225. filter_pdb(protein_file)
  226. # %% [markdown]
  227. # ## prepare ligand config
  228. # %%
  229. import pandas as pd
  230. ligand = pd.read_csv('data/1_first_stage_compound.csv')
  231. ligand['Source_idx'] = ligand['Source_idx'].astype(str)
  232. ligand['path'] = "af_workspace/"+ligand.Source_idx+'.sdf'
  233. print(ligand.shape)
  234. ligand.head(1)
  235. # %%
  236. import pandas as pd
  237. from rdkit import Chem
  238. from rdkit.Chem import AllChem, SDWriter
  239. from tqdm import tqdm
  240. def smiles_to_individual_sdf(df, smiles_col, name_col, out_dir="./sdf_files"):
  241. import os
  242. os.makedirs(out_dir, exist_ok=True)
  243. for idx, row in tqdm(df.iterrows(), total=len(df)):
  244. smi = row[smiles_col]
  245. name = str(row[name_col]) # 用 name_col 来命名
  246. mol = Chem.MolFromSmiles(smi)
  247. if mol is None:
  248. print(smi)
  249. continue
  250. mol = Chem.AddHs(mol)
  251. AllChem.EmbedMolecule(mol, AllChem.ETKDG())
  252. AllChem.UFFOptimizeMolecule(mol)
  253. mol_noH = Chem.RemoveHs(mol)
  254. mol_noH.SetProp("_Name", name)
  255. file_path = os.path.join(out_dir, f"{name}.sdf")
  256. with SDWriter(file_path) as writer:
  257. writer.write(mol_noH)
  258. #print(f"✅ {name}.sdf saved")
  259. smiles_to_individual_sdf(ligand, smiles_col="Smiles", name_col="Source_idx", out_dir="./af_workspace")
  260. # %%
  261. import os
  262. import pandas as pd
  263. folder = "af_workspace"
  264. sdf_files = [f for f in os.listdir(folder) if f.endswith(".sdf")]
  265. df1 = pd.DataFrame({"ligand": sdf_files})
  266. df1['ligand'] = "af_workspace/"+df1['ligand']
  267. df1.to_csv('data/ligands.csv',index=False, header=None)
  268. # %%
  269. import subprocess
  270. import pandas as pd
  271. import time
  272. start = time.time()
  273. file_path = 'alphafold_mouse/AF-O60356-F1-model_v4.pdb'
  274. df1 = pd.read_csv(f'af_workspace1/p2rank/AF-A1A4Y4-F1-model_v4.pdb_predictions.csv')
  275. df1.columns = [col.strip() for col in df1.columns]
  276. x, y, z = df1.loc[0][['center_x', 'center_y', 'center_z']].values
  277. x, y, z
  278. subprocess.run(f'unidock --receptor alphafold_mouse/AF-A1A4Y4-F1-model_v4.pdb --ligand 20883.sdf --search_mode balance --center_x {x} --center_y {y} --center_z {z} --size_x 25 --size_y 25 --size_z 25 --dir tmp', shell=True, check=True)
  279. end = time.time()
  280. # %%
  281. import glob
  282. import os
  283. import subprocess
  284. from tqdm import tqdm
  285. from pathlib import Path
  286. import time
  287. start = time.time()
  288. for i in tqdm(range(df.shape[0])):#
  289. file_path = 'alphafold_mouse/'+df.filename.iloc[i]
  290. df1 = pd.read_csv(f'af_workspace/p2rank/{df.filename.iloc[i]}_predictions.csv')
  291. df1.columns = [col.strip() for col in df1.columns]
  292. x, y, z = df1.loc[0][['center_x', 'center_y', 'center_z']].values
  293. outputdir = f"dock_record/{file_path.split('/')[-1][:-4]}"
  294. os.makedirs(outputdir, exist_ok=True)
  295. subprocess.run(f'unidock --receptor {file_path} --ligand_index ligands.csv --search_mode balance --center_x {x} --center_y {y} --center_z {z} --size_x 25 --size_y 25 --size_z 25 --dir {outputdir}', shell=True, check=True)
  296. base_path = './'
  297. output_folder = os.path.join(base_path, "files")
  298. os.makedirs(output_folder, exist_ok=True)
  299. save_name = f"{file_path.split('/')[-1][:-5]}.txt"
  300. file_save_path = os.path.join(output_folder, save_name)
  301. with open(file_save_path, "w", encoding="utf-8") as f:
  302. f.write('finished')
  303. end = time.time()
  304. # %% [markdown]
  305. # ## Check result
  306. # %%
  307. import os
  308. import glob
  309. import pandas as pd
  310. import re
  311. from concurrent.futures import ProcessPoolExecutor, as_completed
  312. from tqdm import tqdm
  313. base_dir = "dock_record"
  314. def get_target_folders(base_dir):
  315. pattern = os.path.join(base_dir, "AF-*")
  316. folders = [f for f in glob.glob(pattern) if os.path.isdir(f)]
  317. return folders
  318. def process_folder(folder):
  319. results = []
  320. folder_name = os.path.basename(folder)
  321. try:
  322. protein_id = folder_name.split('-')[1] # e.g., Q92985
  323. except IndexError:
  324. protein_id = "UNKNOWN"
  325. sdf_files = glob.glob(os.path.join(folder, "*.sdf"))
  326. for sdf_file in sdf_files:
  327. try:
  328. with open(sdf_file, "r") as f:
  329. content = f.read()
  330. except Exception as e:
  331. continue # silent skip or log if needed
  332. blocks = content.split("$$$$")
  333. for block in blocks:
  334. match = re.search(r"> <Uni-Dock RESULT>.*?ENERGY=\s*([-\d\.]+)", block, re.DOTALL)
  335. if match:
  336. try:
  337. energy = float(match.group(1))
  338. results.append({
  339. "file": os.path.basename(sdf_file),
  340. "energy": energy,
  341. "protein": protein_id,
  342. "folder": folder_name
  343. })
  344. except ValueError:
  345. pass
  346. break
  347. if not results:
  348. return pd.DataFrame()
  349. df = pd.DataFrame(results)
  350. df = df.sort_values(by="energy", ascending=True).reset_index(drop=True)
  351. df = df.drop_duplicates(subset=["file", "protein"], keep="first").reset_index(drop=True)
  352. return df
  353. def main():
  354. folders = get_target_folders(base_dir)
  355. print(f"Found {len(folders)} folders to process.")
  356. if not folders:
  357. print("No folders found. Check base_dir path.")
  358. return
  359. all_dfs = []
  360. with ProcessPoolExecutor(max_workers=min(16, os.cpu_count())) as executor:
  361. future_to_folder = {executor.submit(process_folder, folder): folder for folder in folders}
  362. with tqdm(total=len(future_to_folder), desc="Processing folders") as pbar:
  363. for future in as_completed(future_to_folder):
  364. try:
  365. df = future.result()
  366. if not df.empty:
  367. all_dfs.append(df)
  368. except Exception as e:
  369. folder = future_to_folder[future]
  370. print(f"\nError processing {folder}: {e}")
  371. finally:
  372. pbar.update(1)
  373. if all_dfs:
  374. final_df = pd.concat(all_dfs, ignore_index=True)
  375. final_df.to_csv("data/merged_docking_results1.csv", index=False)
  376. print(f"\n✅ Saved merged results to merged_docking_results.csv (total rows: {len(final_df)})")
  377. else:
  378. print("\n❌ No valid results found.")
  379. if __name__ == "__main__":
  380. main()
  381. final_df = pd.read_csv('data/merged_docking_results1.csv')
  382. final_df['ligand'] = final_df.file.str[:-8].astype('int')
  383. final_df = final_df[final_df['ligand']<30]
  384. final_df[['energy', 'protein', 'ligand']].to_csv('data/3_docking_results.csv',index=False)

Receptor Preparation and Structure-based Screeening.ipynb at commit a53cfe6, no license · at the source

Overview

Authors: Ang Li1, Xianglu Xiao2, Guopan Liu3,4, Krinos Li2, Yixia Ling3, Shenglong Deng2, Chunzuan Xu1, Shu-Qin Cao5, Jing Wen1, Guang Lu6, Guang Yang2,7,8,9, Evandro F. Fang5,10, Dajiang Qin3,4, Huanxing Su1
ORCID iDs: Guang Lu, Huanxing Su
  1. State Key Laboratory of Mechanism and Quality of Chinese Medicine, Institute of Chinese Medical Sciences, University of Macau, Macao, China
  2. Bioengineering Department and Imperial-X, Imperial College London, London W12 7SL, United Kingdom
  3. Guangdong Engineering Technology Research Center of Biological Targeting Diagnosis, Therapy and Rehabilitation, The Fifth Affiliated Hospital, Guangzhou Medical University, No.621 Gangwan Road, Guangzhou, China
  4. Centre for Regenerative Medicine and Health, Hong Kong Institute of Science & Innovation, Chinese Academy of Sciences, Hong Kong, China
  5. Department of Clinical Molecular Biology, University of Oslo and Akershus University Hospital, Lørenskog 1478, Norway
  6. Department of Physiology, Zhongshan School of Medicine, Sun Yat-sen University, Guangzhou, China
  7. National Heart and Lung Institute, Imperial College London, London SW7 2AZ, United Kingdom
  8. Cardiovascular Research Centre, Royal Brompton Hospital, London SW3 6NP, United Kingdom
  9. School of Biomedical Engineering & Imaging Sciences, King's College London, London WC2R 2LS, United Kingdom
  10. The Norwegian Centre on Healthy Ageing (NO-Age) and the Norwegian National anti-Alzheimer’s Disease (NO-AD) Networks, Oslo, Norway
Institutions: University of Macau (Macao SAR China); Imperial College London (United Kingdom); Chinese Academy of Sciences (China); Guangzhou Medical University (China); University of Oslo (Norway); Akershus University Hospital (Norway); Sun Yat-sen University (China); King's College London (United Kingdom); Royal Brompton Hospital (United Kingdom)
Journal: Pharmacological research, volume 227, article 108172
Dates: received 23 February 2026; accepted 24 March 2026; published online 28 March 2026; in print May 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1016/j.phrs.2026.108172 · PMID 41912102 · PMCID PMC13132972 · OpenAlex W7141807343
Open access: gold, a free copy (OpenAlex)
Status: code verified (how the code is found and verified)
Categories: human (organism), mouse (organism), other condition (population), cellular / molecular (subfield)
Methods: Statistics, Spectral & time-frequency, Evoked potentials
Keywords: Amyotrophic lateral sclerosis, GSK-3β–TFEB axis, Isoginkgetin, Lysosome, Artificial intelligence
MeSH: Amyotrophic Lateral Sclerosis*, Basic Helix-Loop-Helix Leucine Zipper Transcription Factors*, Glycogen Synthase Kinase 3 beta*, Motor Neurons*, Neuroprotective Agents*, Animals, Humans, Induced Pluripotent Stem Cells, Lysosomes, Mice, Signal Transduction (* major topic)
Topic: Amyotrophic Lateral Sclerosis Research (Clinical Neurology, Medicine), according to OpenAlex
Funding: Macau Science and Technology Development Fund (0093/2024/AFJ); Science and Technology Development Fund; SKL-QRCM(UM) (2023–2025, 001/2023/ALC, MYRG-GRG2023–00152-ICMS-UMDF); Guangdong Provincial Postdoctoral Research Matching Fund (RSK-602–06–04, B202600301); Guangzhou Municipal Science and Technology Project (2025B03J0160); Research Funds from Program launched by Innovation Technology Commission of the Hong Kong SAR; National Natural Science Foundation of China (82471386, 81971327); ERC IMI (101005122); UK Research and Innovation (MC/PC/21013, EP/Z002206/1, MR/U506710/1); Royal Society (IEC\NSFC\211235); Wellcome Leap Dynamic resilience program, Swiss National Science Foundation (220785); UKRI Future Leaders Fellowship (MR/V023799/1, UKRI2738); National Natural Science Foundation of China, Young Scientists Fund-Type C (32501096); Cure Alzheimer’s Fund (282952, 284930); Helse sør-øst (2020001, 2021021, 2023093); Norwegian Research Council (262175, 334361); Molecule AG/VITADAO (282942); NordForsk Foundation (119986); Akershus University Hospital (269901, 261973, 262960); Civitan Norges Forskningsfond for Alzheimers sykdom (281931); Czech Republic-Norway KAPPA programme (TO01000215); Rosa sløyfe/Norwegian Cancer Society & Norwegian Breast Cancer Society (207819); horizon-TMA-MSCA-DN (101073251); Wellcome Leap’s Dynamic Resilience Program (jointly funded by Temasek Trust) (104617); Alzheimer's Association (PTC-Gene-25–1439553); Nasjonalforeningen for Folkehelsen (43622)
Citations: cited by 6 papers (Europe PMC); 67 references in the paper

Abstract

Lysosomal dysfunction is a core pathological driver of neurodegenerative diseases such as amyotrophic lateral sclerosis (ALS). Transcription factor EB (TFEB) serves as a master regulator of lysosomal biogenesis, and its pharmacological activation represents a strategy to restore lysosomal function in disease and aging. Here, using a series of artificial intelligence-powered computational virtual screening workflows, we have identified isoginkgetin (ISO), a small-molecule compound, as a potent TFEB activator that promotes mechanistic target of rapamycin complex 1 (mTORC1)–independent TFEB nuclear translocation to enhance lysosomal biogenesis and function. Mechanistically, ISO functions as an ATP-competitive inhibitor that binds to the key Lys85 residue within the ATP-binding pocket of glycogen synthase kinase 3β (GSK-3β), thereby regulating the GSK-3β–TFEB signaling axis to activate TFEB nuclear translocation. Functionally, ISO improves lysosomal function and protects motor neurons differentiated from induced pluripotent stem cells derived from patients with ALS from degeneration. Collectively, these results support the hypothesis that lysosomal dysfunction is a druggable target for ALS.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repository

Its files are read in the Code ↔ Paper reader above, with 1 match between paragraphs and lines of code.

XiangLuXiao/mTORIndependentCompoundScreen

License: none: the authors keep all their rights
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: a53cfe601a83501e47ff804dd49c62cf1fd51215, 20 January 2026
Languages: Jupyter (2)
Size: 9 files, 2 scripts
Software Heritage: not archived
Found in: the text, “Code, hardware, and runtime”
Holds: README, 2 notebooks
Not found: license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: pandas (2 files), RDKit (1 file)
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
3 files

Tracing map

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

What the map holds:

  • 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 2 scripts, each with its path and the digest of its content;
  • 1 match 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 availability

Data will be made available on request.

All raw data for the paper can be downloaded via the WeTransfer link.all the original data (https://we.tl/t-RLe7u06Ajr)

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, 30 September 2026: the first record

Recorded: type, language, journal, volume, pages, dates, 14 authors, 5 keywords, 11 MeSH terms, 26 funders, 67 references.

Cite

This paper

Li, A., Xiao, X., Liu, G., Li, K., Ling, Y., Deng, S., Xu, C., Cao, S.-Q., Wen, J., Lu, G., Yang, G., Fang, E. F., Qin, D., & Su, H. (2026). Isoginkgetin protects against degeneration of ALS motor neurons via regulating the GSK-3β-TFEB signaling axis. Pharmacological research, 227, 108172. https://doi.org/10.1016/j.phrs.2026.108172

BibTeX

@article{li2026isoginkgetin,
author = {Li, Ang and Xiao, Xianglu and Liu, Guopan and Li, Krinos and Ling, Yixia and Deng, Shenglong and Xu, Chunzuan and Cao, Shu-Qin and Wen, Jing and Lu, Guang and Yang, Guang and Fang, Evandro F. and Qin, Dajiang and Su, Huanxing},
title = {{Isoginkgetin protects against degeneration of ALS motor neurons via regulating the GSK-3β-TFEB signaling axis}},
journal = {Pharmacological research},
year = {2026},
month = mar,
volume = {227},
pages = {108172},
publisher = {Elsevier BV},
issn = {1043-6618},
doi = {10.1016/j.phrs.2026.108172},
url = {https://doi.org/10.1016/j.phrs.2026.108172},
pmid = {41912102},
pmcid = {PMC13132972}
}

RIS

TY - JOUR
AU - Li, Ang
AU - Xiao, Xianglu
AU - Liu, Guopan
AU - Li, Krinos
AU - Ling, Yixia
AU - Deng, Shenglong
AU - Xu, Chunzuan
AU - Cao, Shu-Qin
AU - Wen, Jing
AU - Lu, Guang
AU - Yang, Guang
AU - Fang, Evandro F.
AU - Qin, Dajiang
AU - Su, Huanxing
TI - Isoginkgetin protects against degeneration of ALS motor neurons via regulating the GSK-3β-TFEB signaling axis
T2 - Pharmacological research
J2 - Pharmacol Res
PY - 2026
DA - 2026/03/28
VL - 227
SP - 108172
SN - 1043-6618
PB - Elsevier BV
DO - 10.1016/j.phrs.2026.108172
UR - https://doi.org/10.1016/j.phrs.2026.108172
LA - en
ER -

CSL-JSON

{
"id": "10.1016/j.phrs.2026.108172",
"type": "article-journal",
"title": "Isoginkgetin protects against degeneration of ALS motor neurons via regulating the GSK-3β-TFEB signaling axis",
"container-title": "Pharmacological research",
"author": [
{
"family": "Li",
"given": "Ang"
},
{
"family": "Xiao",
"given": "Xianglu"
},
{
"family": "Liu",
"given": "Guopan"
},
{
"family": "Li",
"given": "Krinos"
},
{
"family": "Ling",
"given": "Yixia"
},
{
"family": "Deng",
"given": "Shenglong"
},
{
"family": "Xu",
"given": "Chunzuan"
},
{
"family": "Cao",
"given": "Shu-Qin"
},
{
"family": "Wen",
"given": "Jing"
},
{
"family": "Lu",
"given": "Guang"
},
{
"family": "Yang",
"given": "Guang"
},
{
"family": "Fang",
"given": "Evandro F."
},
{
"family": "Qin",
"given": "Dajiang"
},
{
"family": "Su",
"given": "Huanxing"
}
],
"container-title-short": "Pharmacol Res",
"volume": "227",
"page": "108172",
"DOI": "10.1016/j.phrs.2026.108172",
"PMID": "41912102",
"PMCID": "PMC13132972",
"ISSN": "1043-6618",
"publisher": "Elsevier BV",
"URL": "https://doi.org/10.1016/j.phrs.2026.108172",
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
28
]
]
}
}

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/s44321-025-00323-2
Isoginkgetin antagonizes ALS pathologies in its animal and patient iPSC models via PINK1-Parkin-dependent mitophagy.
Journal: EMBO molecular medicine
In common: other condition, mouse, 5 references, 2 authors
[2] doi:10.1126/sciadv.ady9811
NAD&lt;sup&gt;+&lt;/sup&gt; reverses Alzheimer's neurological deficits via regulating differential alternative RNA splicing of &lt;i&gt;EVA1C&lt;/i&gt;.
Journal: Science advances
In common: mouse, 2 references, author Guang Lu
[3] doi:10.1002/advs.202512374 [code]
The Mitochondrial Guardian α-Amyrin Mitigates Alzheimer's Disease Pathology via Modulation of the DLK-SARM1-ULK1 Axis.
Journal: Advanced science (Weinheim, Baden-Wurttemberg, Germany)
In common: mouse, cellular / molecular, 2 references, author Huanxing Su
[4] doi:10.1091/mbc.e25-07-0346
The hereditary spastic paraplegia type 21 (SPG21) protein is a RAB7A effector that promotes noncanonical mTORC1-catalyzed TFEB phosphorylation and cytoplasmic retention.
Journal: Molecular biology of the cell
In common: mouse, cellular / molecular, 4 references
[5] doi:10.1126/sciadv.adz9283 [code]
AI-driven discovery of dual antiaging and anti-AD therapeutics via PROTAC target deconvolution of a super-enhancer-regulated axis.
Journal: Science advances
In common: RDKit, pandas, mouse, 2 references
[6] doi:10.14336/ad.2023.0902
Schizophrenia-Like Behaviors Arising from Dysregulated Proline Metabolism Are Associated with Altered Neuronal Morphology and Function in Mice with Hippocampal PRODH Deficiency.
Journal: Aging and disease
In common: mouse, cellular / molecular, author Huanxing Su
[7] doi:10.1002/alz.71680
A combined artificial intelligence-wet lab approach identifies a pivotal role of the NAD&lt;sup&gt;+&lt;/sup&gt;-mitophagy axis on aging and neurodegeneration.
Journal: Alzheimer's & dementia : the journal of the Alzheimer's Association
In common: other condition, cellular / molecular, 3 references
[8] doi:10.1186/s13578-024-01303-8
Impact of c-JUN deficiency on thalamus development in mice and human neural models.
Journal: Cell & bioscience
In common: mouse, author Huanxing Su
[9] doi:10.1186/s13024-025-00796-2
Upregulated astrocyte HDAC7 induces Alzheimer-like tau pathologies via deacetylating transcription factor-EB and inhibiting lysosome biogenesis.
Journal: Molecular neurodegeneration
In common: mouse, cellular / molecular, 3 references
[10] doi:10.1091/mbc.e24-12-0539
Patient-derived induced pluripotent stem cells with a C9orf72 expansion as a model to study frontotemporal dementia pathologies.
Journal: Molecular biology of the cell
In common: 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.1016/j.phrs.2026.108172.svg)](https://openscicode.org/badge/doi/10.1016/j.phrs.2026.108172)
<!-- oscr-badge:end -->
reStructuredText
.. oscr-badge:start

.. image:: https://openscicode.org/badge/doi/10.1016/j.phrs.2026.108172.svg
   :target: https://openscicode.org/badge/doi/10.1016/j.phrs.2026.108172
   :alt: OSCR

.. oscr-badge:end
HTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1016/j.phrs.2026.108172"><img src="https://openscicode.org/badge/doi/10.1016/j.phrs.2026.108172.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.