Identifies non-coding RNAs (tRNA, rRNA, snoRNA, snRNA, riboswitches, sRNAs) using Infernal covariance-model search against Rfam, tRNAscan-SE 2.0 for tRNA, barrnap for rRNA, and ARAGORN for tmRNA, plus the small-RNA-seq boundary for miRNA and the transcript-assembly boundary for lncRNA. Covers the structure-conserved-not-sequence-conserved principle (why BLAST fails), GA-threshold and clan-competition correctness, tRNAscan-SE domain modes and pseudogene flags, rDNA copy-number collapse, and why homology annotation is a recall floor. Use when performing genome-wide ncRNA annotation, choosing the right tool for an RNA class, or interpreting ncRNA counts.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Identifies non-coding RNAs (tRNA, rRNA, snoRNA, snRNA, riboswitches, sRNAs) using Infernal covariance-model search against Rfam, tRNAscan-SE 2.0 for tRNA, barrnap for rRNA, and ARAGORN for tmRNA, plus the small-RNA-seq boundary for miRNA and the transcript-assembly boundary for lncRNA. Covers the structure-conserved-not-sequence-conserved principle (why BLAST fails), GA-threshold and clan-competition correctness, tRNAscan-SE domain modes and pseudogene flags, rDNA copy-number collapse, and why homology annotation is a recall floor. Use when performing genome-wide ncRNA annotation, choosing the right tool for an RNA class, or interpreting ncRNA counts.
Before using code patterns, verify installed versions match. If versions differ:
CLI: <tool> --version then <tool> --help to confirm flags
Python: pip show <package> then help(module.function) to check signatures
The Rfam release version drives results (Rfam 15 has ~4,200+ families); record it. The downloaded Rfam.cm ships pre-calibrated, so only cmpress is needed before cmscan. If code throws an error, introspect the installed tool and adapt rather than retrying.
Non-Coding RNA Annotation
"Find non-coding RNAs in my genome" -> Scan an assembly for structured ncRNA families using covariance models (sequence + secondary structure jointly), with specialist detectors for tRNA and the expression boundary for miRNA/lncRNA.
The Single Most Important Modern Insight -- ncRNA Homology Is Structure-Conserved, Not Sequence-Conserved
Protein annotation rides on sequence/ORF signal; structured-ncRNA annotation rides on base-pairing covariation. A G-C pair can become A-U across evolution while the structure is preserved - both positions mutate together (compensatory substitution). To a sequence-only tool these look like two mismatches; to a covariance model (a profile SCFG, the Rfam/Infernal engine) the correlated change is the strongest possible evidence of homology. Three consequences:
BLAST is categorically the wrong tool for structured ncRNA. Two RNase P RNAs may share <60% identity (BLAST sees noise) yet have unmistakable shared structure. Use Infernal covariance models, not BLAST. R-scape (Rivas 2017 Nat Methods 14:45) is the statistical test for whether a structure is actually conserved - it found no significant covariation support for the proposed structures of HOTAIR, SRA, and Xist-RepA.
A homology-based annotation is a recall floor, never a count. A CM can only exist for a family whose structure is conserved across enough divergent sequences to seed a model - so fast-evolving and lineage-specific ncRNAs are invisible by design, and the floor drops further for organisms far from the curation spotlight. Report "at least N conserved-family loci," never "the genome has N ncRNAs."
Whole classes need expression evidence, not genomic search. miRNAs are hypotheses until small-RNA-seq confirms the Dicer processing signature; lncRNAs are not annotatable by homology at all (no conserved structure) - they are transcript catalogs. Use specialist tools where the biology has a sharper signal (tRNAscan-SE, miRDeep2-with-reads).
Infernal cmscan vs full Rfam.cm (GA + clan competition)
structure-aware, family-typed
miRNA
demand small-RNA-seq; miRDeep2
genomic hairpin prediction is unreliable
lncRNA
transcript assembly + coding-potential
not structurally conserved; no CM
Claim a conserved structure
R-scape covariation test (report power)
thermodynamic fold != selected structure
Bacterial AMR/CRISPR arrays
-> prokaryotic-annotation / CRISPRCasFinder
array detection is a separate tool class
Infernal / cmscan (the General ncRNA Engine)
# Rfam ships pre-calibrated; press it once, then scan (cmscan = many models vs one genome)
cmpress Rfam.cm
cmscan -Z <dbsize_Mb> --cut_ga --rfam --nohmmonly \
--tblout out.tblout --fmt 2 --clanin Rfam.clanin \
Rfam.cm genome.fa > out.cmscan
grep -v " = " out.tblout > out.deoverlapped.tblout # drop within-clan overlaps
--cut_ga (gathering threshold): the single most important correctness flag. Each family has a curator-set, per-family bit-score threshold; a fixed E-value would treat a 70-nt tRNA model and a 2,900-nt LSU model identically, which is wrong. Overriding GA to "find more" imports the false positives the curator deliberately excluded.
--nohmmonly forces full CM (structure-aware) scoring so scores are GA-comparable.
-Z <dbsize_Mb> = total_residues x 2 / 1e6 (both strands), making E-values run-comparable.
--fmt 2 --clanin Rfam.clanin + the grep -v " = " deoverlap step is mandatory, not a nicety: clans group related families (the tRNA models, SSU/LSU rRNA), so one locus hits several models and the raw table double-counts (a 16S locus becomes "several rRNA genes").
Modes: -E eukaryotic (default), -B bacterial, -A archaeal, -G general (mixed/metagenome), -M mammal/-M vert mitochondrial, -O organellar (disables pseudogene checking). Domain choice is not cosmetic - the wrong mode mis-scores and miscalls isotypes; there is no auto-detect. Report the high-confidence set, not raw hits (raw counts include pseudogenes/SINEs and can be 2-10x inflated in eukaryotes). The pseudogene flag is reliable in eukaryotic nuclear genomes but false-positive-prone in organelles/odd mito-tRNAs (truncated arms read as "decayed") - hence -O/-D.
Reports partial rRNA at contig edges as (partial). rDNA copy number from an assembly is essentially always wrong - near-identical rRNA arrays collapse in short-read assemblies, so the annotated count is a floor (off by orders of magnitude in eukaryotes); use long reads or read depth for true copy number.
Parsing and Combining ncRNA Calls with Python
Goal: Merge Infernal and tRNAscan-SE into one ncRNA annotation, preferring the specialist for tRNA.
Approach: Parse the deoverlapped Infernal table, drop its tRNA rows (tRNAscan-SE is the authority for tRNA), and combine with the tRNAscan-SE high-confidence set; keep evidence provenance per class.
import pandas as pd
defparse_infernal_tbl(tbl_file):
rows = []
withopen(tbl_file) as f:
for line in f:
if line.startswith('#'):
continue
p = line.split()
iflen(p) < 18:
continue
rows.append({'rfam_name': p[1], 'seqid': p[3], 'strand': p[11],
'score': float(p[16]), 'evalue': float(p[17])})
df = pd.DataFrame(rows)
return df[~df['rfam_name'].str.contains('tRNA', case=False, na=False)] # tRNAscan-SE owns tRNA
The miRNA Disaster and lncRNA Non-Annotatability
Most computationally predicted miRNAs are false positives, and much of miRBase is contaminated. Any genome folds into astronomically many hairpins; foldability is not evidence of a miRNA. The discriminating signal - a precise homogeneous 5' end, a detectable star strand, a ~22 nt mode - is visible only in small-RNA-seq read pileups (miRDeep2 scores this geometry). Fromm 2015 found <1/3 of human and ~16% of metazoan miRBase entries are bona fide; closely related species differing by >1,000 miRNAs in miRBase is annotation noise, not biology. Animal-trained tools mis-call plant miRNAs (DCL1 biogenesis, 21/24 nt) - use plant-specific tools. Report homology-only hits as "miRNA candidates," never genes.
lncRNAs are not annotatable by homology in principle - no conserved structure (R-scape), poor sequence conservation. "lncRNA annotation" is transcript cataloguing (assemble RNA-seq, subtract coding potential), inheriting every transcript-assembly pathology, so catalog size tracks sequencing depth and filter policy. The same human genome "has" ~16,000 to >100,000 lncRNAs depending only on the annotation source (RefSeq vs GENCODE vs NONCODE) - these encode different answers to the transcription-vs-selection function debate (Graur 2013), not different biology. Never quote a bare lncRNA count without source + version.
Per-Method Failure Modes
BLAST for structured ncRNA
Trigger: using BLAST to find ncRNA homologs. Mechanism: BLAST scores sequence identity, blind to covariation. Symptom: misses structure-conserved homologs; ranks pseudogenes above real homologs. Fix: Infernal/Rfam covariance models.
Missing GA / clan competition
Trigger:cmscan without --cut_ga/--nohmmonly, or without --clanin/--fmt 2 deoverlap. Mechanism: wrong thresholds; HMM-only scores not GA-comparable; within-clan overlaps uncollapsed. Symptom: inflated/redundant family calls (one locus counted several times). Fix: the full canonical command + grep -v " = ".
Wrong tRNAscan-SE domain mode
Trigger:-E on a bacterium, or default on a metagenome. Mechanism: domain CMs differ; no auto-detect. Symptom: mis-scored/miscalled isotypes. Fix:-B/-A/-G per source; report the high-confidence set.
Counting raw tRNA/rRNA hits
Trigger: reporting raw tRNAscan-SE hits or genomic rRNA as copy number. Mechanism: SINEs/pseudogenes/NUMTs inflate tRNA; rDNA arrays collapse. Symptom: 150+ bacterial "tRNAs"; "5 copies of 18S". Fix: high-confidence set; treat copy numbers as floors; flag NUMT-type organellar tRNAs in the nucleus.
miRNA/lncRNA from genome alone
Trigger: calling miRNAs from hairpins or lncRNAs from CM search. Mechanism: no genomic signal suffices. Symptom: false-positive "genes". Fix: small-RNA-seq (miRNA); transcript assembly + coding-potential (lncRNA); label homology-only as candidates.
Quantitative Thresholds
Threshold
Source
Rationale
--cut_ga per-family GA threshold
Rfam curation
family-specific noise floor; never override genome-wide
-Z = residues x 2 / 1e6
Infernal
run-comparable E-values (both strands)
Bacterial tRNA ~28-90 (E. coli ~89; symbionts ~28-35)
GtRNAdb
150+ implies fragments/pseudogenes
Eukaryotic tRNA ~170-570 (amplified)
tRNA literature
raw hits far higher (SINEs/pseudogenes); use high-confidence set
Bacterial rRNA operons 1-15 (E. coli ~7)
copy-number norm
annotated count is a floor (rDNA collapse)
miRNA needs small-RNA-seq Dicer signature
Fromm 2015
foldability is not a miRNA; >1/3 miRBase is artifact
R-scape covariation + power before claiming structure
Rivas 2017/2020
thermodynamic fold != selected structure
Common Errors
Error / symptom
Cause
Solution
cmscan slow
full Rfam scan
--rfam preset; split genome; parallelize
Redundant overlapping calls
no clan competition
--fmt 2 --clanin; grep -v " = "
Missing expected ncRNAs
stale Rfam / cmpress not run
check Rfam version; verify .i1{f,i,m,p} files
Too many tRNA "pseudogenes"
normal in eukaryotes; false-positive in organelles
Ontiveros-Palacios N, et al. 2025. Rfam 15: RNA families database in 2025. Nucleic Acids Res 53:D258-D267.
Chan PP, et al. 2021. tRNAscan-SE 2.0: improved detection and functional classification of transfer RNA genes. Nucleic Acids Res 49:9077-9096.
Lowe TM, Eddy SR. 1997. tRNAscan-SE: a program for improved detection of transfer RNA genes in genomic sequence. Nucleic Acids Res 25:955-964.
Laslett D, Canback B. 2004. ARAGORN, a program to detect tRNA genes and tmRNA genes in nucleotide sequences. Nucleic Acids Res 32:11-16.
Lagesen K, et al. 2007. RNAmmer: consistent and rapid annotation of ribosomal RNA genes. Nucleic Acids Res 35:3100-3108.
Friedländer MR, et al. 2012. miRDeep2 accurately identifies known and hundreds of novel microRNA genes in seven animal clades. Nucleic Acids Res 40:37-52.
Lowe TM, Eddy SR. 1999. A computational screen for methylation guide snoRNAs in yeast (snoscan). Science 283:1168-1171.
Fromm B, et al. 2015. A uniform system for the annotation of vertebrate microRNA genes and the evolution of the human microRNAome (MirGeneDB). Annu Rev Genet 49:213-242.
Rivas E, Clements J, Eddy SR. 2017. A statistical test for conserved RNA structure shows lack of evidence for structure in lncRNAs (R-scape). Nat Methods 14:45-48.
Graur D, et al. 2013. On the immortality of television sets: "function" in the human genome according to the evolution-free gospel of ENCODE. Genome Biol Evol 5:578-590.