OSCR

LncPNdeep: A long non-coding RNA classifier based on large language model with peptide and nucleotide embedding.

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 › Concatenated deep learning ↔ simulation_and_pretrain_code/utils.py, lines 38–80 · score 0.58 · cross entropy, binary classification, dense, loss
  2. [2] § Materials and methods › Nucleotide embedding ↔ simulation_and_pretrain_code/pre_dataset.py, lines 12–109 · score 0.55 · mask token, special token, pre, CLS, sequences, RNA
  3. [3] § Materials and methods › Nucleotide embedding ↔ predict_lncrna.py, lines 195–285 · score 0.52 · bigbird768, bigbird256, nucleotide embeddings, Longformer256, prediction, sequence
  4. [4] § Materials and methods › Concatenated deep learning ↔ predict_lncrna.py, lines 195–285 · score 0.51 · bigbird768, bigbird256, Longformer256, Fake, Max, nucleotide

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 · 359 lines · 12 KB · no license · 2 matches

  1. # -*- coding: utf-8 -*-
  2. """
  3. Full lncRNA / coding RNA prediction pipeline:
  4. 1. Input FASTA
  5. 2. Extract nucleotide embeddings (Longformer256, Bigbird256, Bigbird768)
  6. 3. Extract peptide embeddings (Average / Fake / Max)
  7. 4. Load h5 classifier and predict
  8. 5. Write results txt: sequence name + lncRNA probability + label
  9. Example:
  10. py predict_lncrna.py --input_fasta input.fasta --output_dir work/ --result_txt results.txt
  11. """
  12. from __future__ import annotations
  13. import argparse
  14. import os
  15. from pathlib import Path
  16. from typing import List, Tuple
  17. import numpy as np
  18. import pandas as pd
  19. import tensorflow as tf
  20. import torch
  21. from Bio import SeqIO
  22. from Bio.Seq import Seq
  23. from tqdm import tqdm
  24. from transformers import BertModel, BertTokenizer
  25. from extract_nucleotide_embeddings import (
  26. MODEL_CONFIGS,
  27. extract_embeddings_from_fasta,
  28. parse_fasta,
  29. )
  30. from download_weights import (
  31. get_nucleotide_embedding_dir,
  32. get_weights_pretrain_dir,
  33. missing_weight_files,
  34. weights_ready,
  35. )
  36. SCRIPT_DIR = Path(__file__).resolve().parent
  37. DEFAULT_MODEL_H5 = SCRIPT_DIR / "ProteinTransAllfeature_ResCNN2_07_08.h5"
  38. DEFAULT_WEIGHTS_DIR = get_weights_pretrain_dir(SCRIPT_DIR)
  39. _PROT_BERT_TOKENIZER = None
  40. _PROT_BERT_MODEL = None
  41. def _get_protein_bert(device: torch.device):
  42. global _PROT_BERT_TOKENIZER, _PROT_BERT_MODEL
  43. if _PROT_BERT_TOKENIZER is None or _PROT_BERT_MODEL is None:
  44. _PROT_BERT_TOKENIZER = BertTokenizer.from_pretrained(
  45. "Rostlab/prot_bert", do_lower_case=False
  46. )
  47. _PROT_BERT_MODEL = BertModel.from_pretrained("Rostlab/prot_bert").to(device)
  48. _PROT_BERT_MODEL.eval()
  49. return _PROT_BERT_TOKENIZER, _PROT_BERT_MODEL
  50. def get_bert_embedding(sequence: str, len_seq_limit: int, device: torch.device) -> np.ndarray:
  51. tokenizer, model = _get_protein_bert(device)
  52. sequence_w_spaces = " ".join(list(sequence))
  53. encoded_input = tokenizer(
  54. sequence_w_spaces,
  55. truncation=True,
  56. max_length=len_seq_limit,
  57. padding="max_length",
  58. return_tensors="pt",
  59. ).to(device)
  60. with torch.no_grad():
  61. output = model(**encoded_input)
  62. output_hidden = output["last_hidden_state"][:, 0][0].detach().cpu().numpy()
  63. if len(output_hidden) != 1024:
  64. raise ValueError(f"ProtBERT embedding dimension must be 1024, got {len(output_hidden)}")
  65. return output_hidden
  66. def extract_protein_embeddings_from_fasta(
  67. fasta_path: str,
  68. output_dir: str,
  69. prefix: str = "protein",
  70. device: str | None = None,
  71. ) -> Tuple[str, str, str]:
  72. """
  73. Extract three protein embedding variants from FASTA and save as npy files.
  74. Returns: (average_path, fake_path, max_path)
  75. """
  76. resolved_device = torch.device(
  77. device if device else ("cuda" if torch.cuda.is_available() else "cpu")
  78. )
  79. os.makedirs(output_dir, exist_ok=True)
  80. embed_average: List[np.ndarray] = []
  81. embed_fake: List[np.ndarray] = []
  82. embed_max: List[np.ndarray] = []
  83. for item in tqdm(SeqIO.parse(fasta_path, "fasta"), desc="Extracting protein embeddings"):
  84. reading_frames = [
  85. Seq(item.seq).translate(table="Standard", stop_symbol="*", to_stop=False, cds=False)
  86. for _ in range(3)
  87. ]
  88. peptides: List[str] = []
  89. lengths: List[int] = []
  90. frame_embeddings: List[np.ndarray] = []
  91. for frame in reading_frames:
  92. for peptide in frame.split("*"):
  93. if len(peptide) > 100:
  94. peptides.append(peptide)
  95. lengths.append(len(peptide))
  96. frame_embeddings.append(
  97. get_bert_embedding(
  98. sequence=str(peptide),
  99. len_seq_limit=1200,
  100. device=resolved_device,
  101. )
  102. )
  103. if len(peptides) == 0:
  104. fallback = get_bert_embedding(
  105. sequence=str(Seq(item.seq).translate()),
  106. len_seq_limit=1200,
  107. device=resolved_device,
  108. )
  109. embed_average.append(fallback)
  110. embed_fake.append(fallback)
  111. embed_max.append(fallback)
  112. else:
  113. embed_max.append(frame_embeddings[int(np.argmax(lengths))])
  114. embed_fake.append(
  115. get_bert_embedding(
  116. sequence=str(Seq(item.seq).translate()),
  117. len_seq_limit=1200,
  118. device=resolved_device,
  119. )
  120. )
  121. embed_average.append(np.sum(frame_embeddings, axis=0))
  122. average_path = os.path.join(output_dir, f"{prefix}_Average_Protein.npy")
  123. fake_path = os.path.join(output_dir, f"{prefix}_Fake_Protein.npy")
  124. max_path = os.path.join(output_dir, f"{prefix}_Max_Protein.npy")
  125. np.save(average_path, np.array(embed_average))
  126. np.save(fake_path, np.array(embed_fake))
  127. np.save(max_path, np.array(embed_max))
  128. return average_path, fake_path, max_path
  129. def load_embedding_txt(path: str) -> np.ndarray:
  130. data = pd.read_table(path, sep=" ", header=None)
  131. array = np.array(data, dtype=np.float32)
  132. return array.reshape(array.shape[0], 1, array.shape[1])
  133. def load_protein_npy(path: str) -> np.ndarray:
  134. array = np.load(path)
  135. return array.reshape(array.shape[0], 1, array.shape[1])
  136. def predict_lncrna_probability(
  137. model_h5: str,
  138. average_protein: np.ndarray,
  139. fake_protein: np.ndarray,
  140. max_protein: np.ndarray,
  141. bigbird256: np.ndarray,
  142. bigbird768: np.ndarray,
  143. longformer256: np.ndarray,
  144. ) -> np.ndarray:
  145. """Load h5 model and return softmax probabilities with shape (N, 2): col 0 = lncRNA, col 1 = coding RNA."""
  146. model = tf.keras.models.load_model(model_h5, compile=False)
  147. predictions = model.predict(
  148. [
  149. average_protein,
  150. fake_protein,
  151. max_protein,
  152. bigbird256,
  153. bigbird768,
  154. longformer256,
  155. ],
  156. verbose=0,
  157. )
  158. predictions = np.asarray(predictions, dtype=np.float32)
  159. if predictions.ndim == 2 and predictions.shape[1] == 2:
  160. return predictions
  161. raise ValueError(
  162. f"Expected model output shape (N, 2) softmax probabilities, got {predictions.shape}"
  163. )
  164. def run_pipeline(
  165. input_fasta: str,
  166. output_dir: str,
  167. result_txt: str,
  168. model_h5: str,
  169. weights_dir: str,
  170. vocab_path: str | None = None,
  171. device: str | None = None,
  172. attention_mode: str = "sliding_chunks",
  173. skip_nucleotide: bool = False,
  174. skip_protein: bool = False,
  175. ) -> None:
  176. if not weights_ready(SCRIPT_DIR):
  177. missing = "\n".join(f" - {path}" for path in missing_weight_files(SCRIPT_DIR))
  178. raise FileNotFoundError(
  179. "Required model weights are missing. Run this first:\n"
  180. " python download_weights.py\n\n"
  181. f"Missing files:\n{missing}"
  182. )
  183. os.makedirs(output_dir, exist_ok=True)
  184. nucleotide_dir = os.path.join(output_dir, "nucleotide")
  185. protein_dir = os.path.join(output_dir, "protein")
  186. records = parse_fasta(input_fasta)
  187. sequence_names = [name for name, _ in records]
  188. if not skip_nucleotide:
  189. nucleotide_paths = extract_embeddings_from_fasta(
  190. fasta_path=input_fasta,
  191. output_dir=nucleotide_dir,
  192. models=list(MODEL_CONFIGS.keys()),
  193. weights_dir=weights_dir,
  194. vocab_path=vocab_path,
  195. device=device,
  196. attention_mode=attention_mode,
  197. )
  198. else:
  199. nucleotide_paths = {
  200. name: os.path.join(nucleotide_dir, cfg["output_file"])
  201. for name, cfg in MODEL_CONFIGS.items()
  202. }
  203. for path in nucleotide_paths.values():
  204. if not os.path.isfile(path):
  205. raise FileNotFoundError(f"Missing nucleotide embedding file: {path}")
  206. if not skip_protein:
  207. average_path, fake_path, max_path = extract_protein_embeddings_from_fasta(
  208. fasta_path=input_fasta,
  209. output_dir=protein_dir,
  210. prefix="query",
  211. device=device,
  212. )
  213. else:
  214. average_path = os.path.join(protein_dir, "query_Average_Protein.npy")
  215. fake_path = os.path.join(protein_dir, "query_Fake_Protein.npy")
  216. max_path = os.path.join(protein_dir, "query_Max_Protein.npy")
  217. for path in (average_path, fake_path, max_path):
  218. if not os.path.isfile(path):
  219. raise FileNotFoundError(f"Missing protein embedding file: {path}")
  220. probabilities = predict_lncrna_probability(
  221. model_h5=model_h5,
  222. average_protein=load_protein_npy(average_path),
  223. fake_protein=load_protein_npy(fake_path),
  224. max_protein=load_protein_npy(max_path),
  225. bigbird256=load_embedding_txt(nucleotide_paths["Bigbird256"]),
  226. bigbird768=load_embedding_txt(nucleotide_paths["Bigbird768"]),
  227. longformer256=load_embedding_txt(nucleotide_paths["Longformer256"]),
  228. )
  229. if len(probabilities) != len(sequence_names):
  230. raise ValueError(
  231. f"Prediction count ({len(probabilities)}) does not match sequence count ({len(sequence_names)})"
  232. )
  233. os.makedirs(os.path.dirname(result_txt) or ".", exist_ok=True)
  234. with open(result_txt, "w", encoding="utf-8") as handle:
  235. handle.write(
  236. "sequence_name\tlncRNA_probability\tcodingRNA_probability\tis_lncRNA\n"
  237. )
  238. for name, prob_pair in zip(sequence_names, probabilities):
  239. lnc_prob = float(prob_pair[0])
  240. coding_prob = float(prob_pair[1])
  241. is_lnc = "lncRNA" if lnc_prob >= coding_prob else "codingRNA"
  242. handle.write(
  243. f"{name}\t{lnc_prob:.6f}\t{coding_prob:.6f}\t{is_lnc}\n"
  244. )
  245. print(f"Prediction finished for {len(sequence_names)} sequence(s)")
  246. print(f"Results written to: {result_txt}")
  247. def parse_args() -> argparse.Namespace:
  248. parser = argparse.ArgumentParser(description="Full lncRNA / coding RNA prediction pipeline")
  249. parser.add_argument("--input_fasta", required=True, help="Path to input FASTA file")
  250. parser.add_argument("--output_dir", required=True, help="Directory for intermediate embeddings and outputs")
  251. parser.add_argument(
  252. "--result_txt",
  253. default=None,
  254. help="Path to final results txt (default: output_dir/prediction_results.txt)",
  255. )
  256. parser.add_argument(
  257. "--model_h5",
  258. default=str(DEFAULT_MODEL_H5),
  259. help="Path to final classification model h5 file",
  260. )
  261. parser.add_argument(
  262. "--weights_dir",
  263. default=str(DEFAULT_WEIGHTS_DIR),
  264. help="Directory containing nucleotide pretrain weight files",
  265. )
  266. parser.add_argument(
  267. "--vocab_path",
  268. default=None,
  269. help="Optional path to pre_valid_kmer1.txt for vocabulary",
  270. )
  271. parser.add_argument("--device", default=None, choices=["cpu", "cuda"], help="Inference device (default: auto)")
  272. parser.add_argument(
  273. "--attention_mode",
  274. default="sliding_chunks",
  275. choices=["sliding_chunks", "n2", "tvm"],
  276. help="Longformer attention mode",
  277. )
  278. parser.add_argument(
  279. "--skip_nucleotide",
  280. action="store_true",
  281. help="Skip nucleotide embedding extraction (requires existing files in output_dir/nucleotide)",
  282. )
  283. parser.add_argument(
  284. "--skip_protein",
  285. action="store_true",
  286. help="Skip protein embedding extraction (requires existing npy files in output_dir/protein)",
  287. )
  288. parser.add_argument(
  289. "--download_weights",
  290. action="store_true",
  291. help="Download missing weights from Hugging Face before running",
  292. )
  293. return parser.parse_args()
  294. def main() -> None:
  295. args = parse_args()
  296. if args.download_weights:
  297. from download_weights import ensure_weights
  298. ensure_weights(base_dir=SCRIPT_DIR)
  299. result_txt = args.result_txt or os.path.join(args.output_dir, "prediction_results.txt")
  300. run_pipeline(
  301. input_fasta=args.input_fasta,
  302. output_dir=args.output_dir,
  303. result_txt=result_txt,
  304. model_h5=args.model_h5,
  305. weights_dir=args.weights_dir,
  306. vocab_path=args.vocab_path,
  307. device=args.device,
  308. attention_mode=args.attention_mode,
  309. skip_nucleotide=args.skip_nucleotide,
  310. skip_protein=args.skip_protein,
  311. )
  312. if __name__ == "__main__":
  313. main()

predict_lncrna.py at commit 0e20ea3, no license · at the source

Overview

  1. Department of Biostatistics, University of Michigan, 1415 Washington Heights, Ann Arbor, MI, 48109, USA
  2. Department of Oral and Maxillofacial Surgery, University of Michigan, 1011 N. University, Ave, Ann Arbor, MI, 48109, USA
  3. Experimental Rheumatology, Department of Rheumatology, Radboud University Medical Centre, Nijmegen, the Netherlands
Institutions: University of Michigan (United States); Radboud University Nijmegen (Netherlands); Radboud University Medical Center (Netherlands); Michigan Medicine (United States)
Journal: Non-coding RNA research, volume 20, pages 104-112
Dates: received 4 December 2025; accepted 29 June 2026; published online 13 August 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1016/j.ncrna.2026.06.004 · PMID 42621896 · PMCID PMC13488033 · OpenAlex W4389257810
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: methods / tools (subfield)
Methods: Connectivity, Statistics, Machine learning
Keywords: Long non-coding RNA, Deep learning, Feature embedding, Masked language model
Topic: Cancer-related molecular mechanisms research (Cancer Research, Biochemistry, Genetics and Molecular Biology), according to OpenAlex
Funding: NIH (K08DE030116)
Citations: not cited yet (Europe PMC); 44 references in the paper

Abstract

Accurate classification of long non-coding RNAs (lncRNAs) is essential for transcriptome annotation and understanding gene regulation. Existing computational methods predominantly rely on nucleotide sequence features, frequently overlooking biologically relevant peptide signals encoded within lncRNAs. To overcome this limitation, we developed LncPNdeep, an integrative deep learning framework that combines nucleotide and peptide embeddings extracted via masked language models, specifically utilizing contextual representations from BigBird, Longformer, and ProtTrans. By fusing both features in a concatenated neural architecture, LncPNdeep robustly captures complex sequence relationships and improves discrimination between lncRNAs and coding RNAs. Benchmarking on the human transcriptome achieved state-of-the-art performance with 97.1% accuracy, surpassing established lncRNA classification tools and baseline machine learning models. LncPNdeep also demonstrated superior generalization ability across cross-species datasets, maintaining consistently high accuracy and F1 scores. Permutation analysis highlighted the pivotal role of peptide embeddings, especially Average Peptide Embedding, in model performance, while t-SNE visualizations confirmed that integrating multiple embeddings markedly enhances the separation of lncRNAs from coding RNAs. These results position LncPNdeep as a versatile and powerful tool for transcriptomic research, facilitating lncRNA discovery, biomarker identification, and comparative genomics. The model and instructions are freely available at https://github.com/yatoka233/LncPNdeep.

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

yatoka233/LncPNdeep

License: none: the authors keep all their rights
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 0e20ea30f6f5d5e97f73823d8abbd5c056d8e574, 25 June 2026
Languages: Python (20)
Size: 25 files, 20 scripts
Software Heritage: not archived
Found in: the text, “Concatenated deep learning”
Holds: README, environment (requirements.txt)
Not found: license file, CITATION.cff, tests, continuous integration, documentation
Tools: PyTorch (18 files), NumPy (11 files), Hugging Face Transformers (9 files), Biopython (2 files), pandas (1 file), TensorFlow (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
21 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;
  • 20 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.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 3, 28 September 2026

  • Authors: added Zongrui Dai (0000-0002-7893-5004); Feiyang Deng (0009-0003-4274-7866); Hsiao H. Sung (0000-0001-6016-3838); removed Zongrui Dai; Feiyang Deng; Hsiao H. Sung

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, pages, dates, 3 authors, 4 keywords, 1 funder, 39 references.

Cite

This paper

Dai, Z., Deng, F., & Sung, H. H. (2026). LncPNdeep: A long non-coding RNA classifier based on large language model with peptide and nucleotide embedding. Non-coding RNA research, 20, 104-112. https://doi.org/10.1016/j.ncrna.2026.06.004

BibTeX

@article{dai2026lncpndeep,
author = {Dai, Zongrui and Deng, Feiyang and Sung, Hsiao H.},
title = {{LncPNdeep: A long non-coding RNA classifier based on large language model with peptide and nucleotide embedding}},
journal = {Non-coding RNA research},
year = {2026},
month = aug,
volume = {20},
pages = {104--112},
publisher = {KeAi Publishing},
issn = {2468-0540},
doi = {10.1016/j.ncrna.2026.06.004},
url = {https://doi.org/10.1016/j.ncrna.2026.06.004},
pmid = {42621896},
pmcid = {PMC13488033}
}

RIS

TY - JOUR
AU - Dai, Zongrui
AU - Deng, Feiyang
AU - Sung, Hsiao H.
TI - LncPNdeep: A long non-coding RNA classifier based on large language model with peptide and nucleotide embedding
T2 - Non-coding RNA research
J2 - Noncoding RNA Res
PY - 2026
DA - 2026/08/13
VL - 20
SP - 104
EP - 112
SN - 2468-0540
PB - KeAi Publishing
DO - 10.1016/j.ncrna.2026.06.004
UR - https://doi.org/10.1016/j.ncrna.2026.06.004
LA - en
ER -

CSL-JSON

{
"id": "10.1016/j.ncrna.2026.06.004",
"type": "article-journal",
"title": "LncPNdeep: A long non-coding RNA classifier based on large language model with peptide and nucleotide embedding",
"container-title": "Non-coding RNA research",
"author": [
{
"family": "Dai",
"given": "Zongrui"
},
{
"family": "Deng",
"given": "Feiyang"
},
{
"family": "Sung",
"given": "Hsiao H."
}
],
"container-title-short": "Noncoding RNA Res",
"volume": "20",
"page": "104-112",
"DOI": "10.1016/j.ncrna.2026.06.004",
"PMID": "42621896",
"PMCID": "PMC13488033",
"ISSN": "2468-0540",
"publisher": "KeAi Publishing",
"URL": "https://doi.org/10.1016/j.ncrna.2026.06.004",
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
13
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.1038/s42003-026-10957-8 [code]
Brain defence by the extracellular matrix protein Cochlin.
Journal: Communications biology
In common: Biopython, Hugging Face Transformers, TensorFlow, 3 other tools
[2] doi:10.1016/j.xops.2026.101249 [code]
A Disorder-Aware Computational Framework to Identify Structurally Tractable Targets in Proliferative Vitreoretinopathy.
Journal: Ophthalmology science
In common: Biopython, Hugging Face Transformers, TensorFlow, 3 other tools
[3] doi:10.1038/s43587-026-01207-x [code]
A microprotein atlas of the human frontal cortex in Alzheimer's disease.
Journal: Nature aging
In common: Biopython, pandas, NumPy, 2 references
[4] doi:10.1038/s41592-026-03057-2 [code]
CREsted: modeling genomic and synthetic cell-type-specific enhancers across tissues and species.
Journal: Nature methods
In common: Biopython, TensorFlow, PyTorch, 2 other tools, methods / tools
[5] doi:10.1038/s41586-026-10658-6 [code]
An AI system to help scientists write expert-level empirical software.
Journal: Nature
In common: Hugging Face Transformers, TensorFlow, PyTorch, 2 other tools, methods / tools
[6] doi:10.1371/journal.pone.0346575 [code]
Statistically valid explainable black-box machine learning: applications in sex classification across species using brain imaging.
Journal: PloS one
In common: Hugging Face Transformers, TensorFlow, PyTorch, 2 other tools, methods / tools
[7] doi:10.1093/nargab/lqag050 [code]
TSProm: deep learning framework to predict tissue-specific regulatory logic.
Journal: NAR genomics and bioinformatics
In common: Biopython, Hugging Face Transformers, PyTorch, 2 other tools
[8] doi:10.1093/bib/bbag339 [code]
scDeepAPA: a deep learning framework for single-cell alternative polyadenylation identification.
Journal: Briefings in bioinformatics
In common: Biopython, Hugging Face Transformers, PyTorch, 2 other tools
[9] doi:10.64898/2026.03.30.714220 [code]
An integrated single cell and spatial omics atlas of human prenatal development
Journal: bioRxiv (preprint)
In common: Biopython, Hugging Face Transformers, PyTorch, 2 other tools
[10] doi:10.1021/acsomega.5c09368 [code]
Structure-Based and AI-Assisted Identification of AGPS Inhibitors for Glioma via Integrated Docking, Molecular Dynamics, and Binding Affinity Screening.
Journal: ACS omega
In common: Biopython, Hugging Face Transformers, PyTorch, 2 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.