RAIDNC - Random forest Assisted Identification and Discrimination of Non-Coding transcripts
Abstract
# RAIDNC: Random Forest Assisted Identification and Discrimination of Non-Coding transcripts Authors: Bonomo A., Rigano G., Giosa D., Giuffre L., Romeo O., Figini S., Ballante E. Reference: *RAIDNC: Random Forest Assisted Identification and Discrimination of Non-Coding transcripts* — manuscript in preparation. DOI: https://doi.org/10.5281/zenodo.19593998 --- ## Description RAIDNC is an alignment-free Random Forest classifier that discriminates long non-coding RNAs (lncRNAs) from protein-coding (PC) transcripts directly from FASTA sequences. It combines normalized trinucleotide (k=3) frequency profiles with twelve biological sequence features (see paper for more information). The classifier was trained on 60,000 sequences per class (human lncRNAs from NONCODE v6 and protein-coding transcripts from GENCODE v46), deduplicated at 90% sequence identity using CD-HIT. Hyperparameters were optimized with Optuna (200 trials). The final model achieves high lncRNA sensitivity with balanced precision across both classes. Two model configurations are provided: - config_both (recommended): protein-coding training set filtered to remove transcripts with CDS shorter than 100 nt and UTR-bearing transcripts with CDS shorter than 50 nt.- config_nofilter : no filtering applied to the protein-coding training set. --- ## Archive Contents ```RAIDNC/├── requirements.txt # Python dependencies├── scripts/│ ├── RAIDNC.py # Inference script│ ├── RAIDNC_reproduce_ncv6.py # Reproducibility pipeline (3 steps)│ └── extract_test_set_ncv6.py # Extract independent test set to FASTA├── model/│ ├── config_both/k3/60000/│ │ ├── rf_model.joblib # Pre-trained Random Forest│ │ ├── kmer_vectorizer.joblib # Fitted CountVectorizer (k=3)│ │ ├── hexamer_table.joblib # Hexamer log-likelihood table│ │ ├── model_config.json # Feature configuration (78 features)│ │ ├── feature_importances.csv # Feature importance scores│ │ ├── rf_metrics_cv.csv # 5-fold cross-validation metrics│ │ └── rf_metrics_independent.csv # Independent test set metrics│ └── config_nofilter/k3/60000/│ └── (same structure as config_both)├── data/│ ├── training/│ │ ├── cdhit09_noncodev6_lncRNA_human.fa # 133,031 human lncRNAs (NONCODE v6, CD-HIT 90%)│ │ └── cdhit09_gencode_pc_human_unique.fa # 66,831 human PC transcripts (GENCODE v46, CD-HIT 90%)│ ├── test_set/ # Populated by extract_test_set_ncv6.py│ └── benchmark_fasta/│ ├── noncodev6/ # Multi-species lncRNA FASTA (NONCODE v6)│ │ ├── NONCODEv6_human.fa│ │ ├── NONCODEv6_mouse.fa│ │ ├── NONCODEv6_ATH.fa│ │ ├── NONCODEv6_celegans.fa│ │ ├── NONCODEv6_fruitfly.fa│ │ └── NONCODEv6_yeast.fa│ └── gencode/ # GENCODE lncRNA FASTA (human v46, mouse vM37)│ ├── gencode.v46.lncRNA_transcripts.fa│ └── gencode.vM37.lncRNA_transcripts.fa``` --- ## Installation Python >= 3.8 is required. ```bashpip install -r requirements.txt``` --- ## Quick Start — Classify New Transcripts ```bashpython scripts/RAIDNC.py --fasta input.fa --output predictions.tsv``` Using a specific model configuration: ```bashpython scripts/RAIDNC.py --model_dir model/config_both/k3/60000/ --fasta input.fa --output predictions.tsv``` Batch mode (directory of FASTA files): ```bashpython scripts/RAIDNC.py --batch_dir ./fastas/ --output batch_out.tsv -t 4``` Output is a TSV file with columns: `Transcript_ID`, `Prediction` (`lncRNA` / `Protein_Coding`), `Prob_Protein_Coding`, `Prob_lncRNA`, `FASTA_File`. --- ## Reproducibility Pipeline `RAIDNC_reproduce_ncv6.py` reproduces the three experimental steps described in the paper. ```bashpython scripts/RAIDNC_reproduce_ncv6.py # all stepspython scripts/RAIDNC_reproduce_ncv6.py --step 1 # single step``` | Step | Description ||:----:|-------------|| 1 | Classifier comparison (SGD-SVM, Logistic Regression, Naive Bayes, Random Forest) — 5-fold CV, k=3 || 2 | Sample-size study (5k / 15k / 30k / 60k seq/class) + Optuna hyperparameter tuning (200 trials, F-beta=2) || 3 | Final model — 60k seq/class, optimized hyperparameters, 5-fold CV + independent test (3k seq/class) | Results are written to `results_reproduce_ncv6/`. --- ## Data Sources | Dataset | Source | Sequences ||---------|--------|-----------|| lncRNA | [NONCODE v6](http://v6.noncode.org) | 133,031 human lncRNAs || Protein-coding | [GENCODE v46](https://www.gencodegenes.org/) | 66,831 human PC transcripts | Both datasets were deduplicated at 90% sequence identity using CD-HIT. --- ## Citation If you use RAIDNC in your research, please cite: ```Bonomo, A., Rigano, G., Giosa, D., Giuffre, L., Romeo, O., Figini, S., & Ballante, E. (2025).RAIDNC: Random Forest Assisted Identification and Discrimination of Non-Coding transcripts.Manuscript in preparation. https://doi.org/10.5281/zenodo.18632923``` ---
Fields of Study & Subjects
Genomics and Phylogenetic Studies
Machine Learning in Bioinformatics
Cancer-related molecular mechanisms research
Publication details
- Journal / source
- Zenodo (CERN European Organization for Nuclear Research)
- Publication date
- 13 February 2026
- Language
- EN
- Document type
- Dataset