| Title: | Expression Atlas for Ornamental Plant Transcriptomics |
|---|---|
| Description: | The first R/Bioconductor package for ornamental plant transcriptomics. Provides a complete RNA-seq pipeline (download, QC, alignment, import), a curated Rosa chinensis expression atlas, a 64-gene floriculture trait database anchored to Arabidopsis orthologs, multi-tool import support (STAR, featureCounts, HTSeq, Salmon), auto-detection of three Rosa chinensis gene ID formats, and cross-species validation on Tagetes erecta. |
| Authors: | Lashika Meena [aut, cre] (ORCID: <https://orcid.org/0009-0003-0770-0261>) |
| Maintainer: | Lashika Meena <[email protected]> |
| License: | GPL-3 |
| Version: | 0.99.2 |
| Built: | 2026-10-15 11:49:02 UTC |
| Source: | https://github.com/BiocStaging/OrnTx |
Aligns FASTQ files to a reference genome using STAR and generates ReadsPerGene.out.tab count files compatible with importCustomAtlas(). Requires STAR to be installed.
alignReads( fastq_dir, index_dir, output_dir = "aligned", paired = TRUE, threads = 16L, ram_gb = 60, strandedness = "reverse" )alignReads( fastq_dir, index_dir, output_dir = "aligned", paired = TRUE, threads = 16L, ram_gb = 60, strandedness = "reverse" )
fastq_dir |
Directory containing cleaned FASTQ files. |
index_dir |
Path to STAR genome index directory. |
output_dir |
Directory for alignment output. |
paired |
Logical. TRUE for paired-end (default). |
threads |
Threads per sample (default 16). |
ram_gb |
RAM for BAM sorting in GB (default 60). |
strandedness |
Library strandedness (default "reverse"). |
Invisibly returns paths to count files.
checkTools() ## Not run: alignReads( fastq_dir = "clean_reads/", index_dir = "star_index/", output_dir = "aligned/" ) ## End(Not run)checkTools() ## Not run: alignReads( fastq_dir = "clean_reads/", index_dir = "star_index/", output_dir = "aligned/" ) ## End(Not run)
Adds locus names to DE results from runDE().
annotateDEResults(de_results, species = "Rosa chinensis")annotateDEResults(de_results, species = "Rosa chinensis")
de_results |
data.frame from runDE() with a gene_id column. |
species |
Character. Default "Rosa chinensis". |
data.frame with locus_name and gene_biotype columns added.
data("rosa_example", package = "OrnTx") de <- runDE(rosa_example, design = ~ tissue_simple, contrast = c("tissue_simple", "petal", "abscission zone")) head(annotateDEResults(de))data("rosa_example", package = "OrnTx") de <- runDE(rosa_example, design = ~ tissue_simple, contrast = c("tissue_simple", "petal", "abscission zone")) head(annotateDEResults(de))
Maps generic gene IDs (gene0, gene1, etc.) from the RchiOBHm-V2 reference genome to official Rosa chinensis locus names and gene biotype information.
annotateGenes(gene_ids, species = "Rosa chinensis")annotateGenes(gene_ids, species = "Rosa chinensis")
gene_ids |
Character vector of gene IDs to annotate (e.g., c("gene24707", "gene47555")). |
species |
Character. Currently supports "Rosa chinensis". |
A data.frame with columns:
gene_id — input gene ID
locus_name — official RchiOBHm-V2 locus name
gene_biotype — gene type (protein_coding, lncRNA, etc.)
ann <- annotateGenes(c("gene10715", "gene21520", "gene37167")) print(ann)ann <- annotateGenes(c("gene10715", "gene21520", "gene37167")) print(ann)
Adds functional product descriptions to DE results when gene IDs are in NCBI LOC format (e.g., LOC112190511). This complements annotateGenes() which works with RchiOBHm locus names.
annotateWithNCBI(de_results)annotateWithNCBI(de_results)
de_results |
A data.frame with a gene_id column containing NCBI LOC gene identifiers. |
The input data.frame with product column added.
data(rose_ncbi_annotation) head(rose_ncbi_annotation) data(rosa_ncbi_annotation) de <- data.frame(gene_id = rose_ncbi_annotation$ncbi_gene_id[1:5], log2FoldChange = rnorm(5)) annotateWithNCBI(de)data(rose_ncbi_annotation) head(rose_ncbi_annotation) data(rosa_ncbi_annotation) de <- data.frame(gene_id = rose_ncbi_annotation$ncbi_gene_id[1:5], log2FoldChange = rnorm(5)) annotateWithNCBI(de)
Identifies known floriculture trait genes in differential expression results.
annotateWithTraits( de_results, trait = "all", species = "all", gene_col = NULL, mapping = NULL )annotateWithTraits( de_results, trait = "all", species = "all", gene_col = NULL, mapping = NULL )
de_results |
A data.frame from runDE(). |
trait |
Trait categories to check, or 'all'. |
species |
Species for evidence filtering, or 'all'. |
gene_col |
Optional column name containing gene symbols. |
mapping |
Optional data.frame with gene_id and arabidopsis_id columns for ortholog-based matching. |
A data.frame with the original columns plus additional trait
annotation columns merged from the floriculture trait database.
color_genes <- getFlowerGenes(trait = 'flower_color') head(color_genes[, c('gene_symbol', 'pathway')]) de <- data.frame( gene_id = c('CHS', 'CHI', 'F3H', 'gene001'), log2FoldChange = c(2.1, 1.8, 1.5, -0.3), significant = c(TRUE, TRUE, TRUE, FALSE) ) annotateWithTraits(de, trait = 'flower_color', gene_col = 'gene_id')color_genes <- getFlowerGenes(trait = 'flower_color') head(color_genes[, c('gene_symbol', 'pathway')]) de <- data.frame( gene_id = c('CHS', 'CHI', 'F3H', 'gene001'), log2FoldChange = c(2.1, 1.8, 1.5, -0.3), significant = c(TRUE, TRUE, TRUE, FALSE) ) annotateWithTraits(de, trait = 'flower_color', gene_col = 'gene_id')
Build an expression atlas from count data
buildAtlas(se, group_var = "stage", assay_name = "counts")buildAtlas(se, group_var = "stage", assay_name = "counts")
se |
A SummarizedExperiment object from importRosaCounts() |
group_var |
Column name in colData for grouping samples |
assay_name |
Which assay to use (default "counts") |
A SummarizedExperiment with atlas slot
library(OrnTx) data(rosa_example) se_norm <- normalizeCounts(rosa_example, method = "CPM")library(OrnTx) data(rosa_example) se_norm <- normalizeCounts(rosa_example, method = "CPM")
Builds a STAR genome index from FASTA and GTF. Required once per genome. Requires STAR to be installed.
buildGenomeIndex( genome_fasta, gtf_file, index_dir = "star_index", threads = 16L, ram_gb = 60, sa_index_nbases = 13L )buildGenomeIndex( genome_fasta, gtf_file, index_dir = "star_index", threads = 16L, ram_gb = 60, sa_index_nbases = 13L )
genome_fasta |
Path to reference genome FASTA file. |
gtf_file |
Path to genome annotation GTF file. |
index_dir |
Output directory for genome index. |
threads |
Threads for index building (default 16). |
ram_gb |
Available RAM in GB (default 60). |
sa_index_nbases |
SA index parameter (default 13). |
Invisibly returns the index directory path.
checkTools() ## Not run: buildGenomeIndex( genome_fasta = "rosa_genome.fna", gtf_file = "rosa_annotation.gtf", index_dir = "star_index/" ) ## End(Not run)checkTools() ## Not run: buildGenomeIndex( genome_fasta = "rosa_genome.fna", gtf_file = "rosa_annotation.gtf", index_dir = "star_index/" ) ## End(Not run)
Build Rosa chinensis Expression Atlas
buildRosaAtlas( counts_dir, metadata_file, strandedness = "reverse", min_samples = 10 )buildRosaAtlas( counts_dir, metadata_file, strandedness = "reverse", min_samples = 10 )
counts_dir |
Path to directory containing ReadsPerGene.out.tab files |
metadata_file |
Path to SraRunTable.txt |
strandedness |
One of "reverse", "forward", "unstranded" |
min_samples |
Minimum samples a gene must be expressed in |
A SummarizedExperiment object
ann <- getRosaAnnotation() nrow(ann) ## Not run: se <- buildRosaAtlas( counts_dir = "path/to/counts", metadata_file = "path/to/SraRunTable.txt" ) ## End(Not run)ann <- getRosaAnnotation() nrow(ann) ## Not run: se <- buildRosaAtlas( counts_dir = "path/to/counts", metadata_file = "path/to/SraRunTable.txt" ) ## End(Not run)
Checks fastp, STAR, fasterq-dump availability.
checkTools()checkTools()
Named logical vector of tool availability.
checkTools()checkTools()
Downloads SRA files and converts to FASTQ using fasterq-dump or direct AWS S3 download.
downloadSRA( accessions, output_dir = "raw_reads", threads = 4L, compress = TRUE, method = c("aws", "fasterq-dump") )downloadSRA( accessions, output_dir = "raw_reads", threads = 4L, compress = TRUE, method = c("aws", "fasterq-dump") )
accessions |
Character vector of SRA run accessions. |
output_dir |
Directory to save FASTQ files. |
threads |
Threads for fasterq-dump (default 4). |
compress |
Compress output with gzip (default TRUE). |
method |
"fasterq-dump" or "aws" (direct S3, faster). |
Invisibly returns paths to downloaded FASTQ files.
checkTools() ## Not run: downloadSRA( accessions = c("SRR10160942", "SRR10160944"), output_dir = "raw_reads/", threads = 4 ) ## End(Not run)checkTools() ## Not run: downloadSRA( accessions = c("SRR10160942", "SRR10160944"), output_dir = "raw_reads/", threads = 4 ) ## End(Not run)
Maps gene symbols or Arabidopsis IDs to curated trait gene information.
findOrthologs(gene_ids, id_type = c("symbol", "arabidopsis"), species = "any")findOrthologs(gene_ids, id_type = c("symbol", "arabidopsis"), species = "any")
gene_ids |
Character vector of gene IDs to query. |
id_type |
One of "symbol" or "arabidopsis". |
species |
Source species (informational). |
A data.frame of matched trait genes.
findOrthologs(c("CHS", "DFR", "ANS"), id_type = "symbol")findOrthologs(c("CHS", "DFR", "ANS"), id_type = "symbol")
A curated database of 64 genes associated with economically important floriculture traits, anchored to Arabidopsis thaliana gene IDs to enable cross-species queries regardless of annotation quality. Covers flower color, floral scent, senescence/vase life, floral development, and transcriptional regulation.
data(floriculture_traits)data(floriculture_traits)
A data frame with 64 rows and 9 variables:
Gene symbol (e.g., "CHS", "DFR", "FT")
Arabidopsis thaliana AGI locus ID
Specific trait subcategory
Broad trait category
Biochemical pathway name
Evidence level in Rosa chinensis
Evidence level in Tagetes erecta
Key PubMed reference ID
A data.frame with 64 rows and columns including gene symbol,
trait category, Arabidopsis ortholog, and Rosa chinensis gene ID.
Literature-curated from published floriculture transcriptomics studies. See key_pmid column for references.
Returns curated gene sets anchored to Arabidopsis orthologs for cross-species trait analysis.
getFlowerGenes(trait = "all", species = "all", evidence = "all")getFlowerGenes(trait = "all", species = "all", evidence = "all")
trait |
Character. One of "flower_color", "scent", "senescence", "development", "regulatory", or "all". |
species |
Character. "Rosa chinensis", "Tagetes erecta", or "all". |
evidence |
Character. "Strong", "Moderate", "Weak", or "all". |
A data.frame of curated trait genes.
color_genes <- getFlowerGenes(trait = "flower_color") head(color_genes)color_genes <- getFlowerGenes(trait = "flower_color") head(color_genes)
Returns the complete built-in annotation table for Rosa chinensis RchiOBHm-V2 genome containing 51,302 genes.
getRosaAnnotation()getRosaAnnotation()
A data.frame with columns gene_id, locus_name, gene_biotype.
ann <- getRosaAnnotation() head(ann) nrow(ann)ann <- getRosaAnnotation() head(ann) nrow(ann)
Accepts count matrices from STAR, featureCounts, HTSeq, Salmon, or any pre-loaded matrix. Unlike importCustomAtlas() which reads STAR output files, this function works with already-loaded matrices or files from any quantification tool.
importCountMatrix( counts, metadata, species = "Unknown species", file_format = "auto", sample_col = NULL, min_count = 5L, min_samples = 3L )importCountMatrix( counts, metadata, species = "Unknown species", file_format = "auto", sample_col = NULL, min_count = 5L, min_samples = 3L )
counts |
File path or pre-loaded matrix/data.frame with genes as rows and samples as columns. |
metadata |
Data.frame with sample metadata. Row names or first column must match column names of counts. |
species |
Scientific name of the plant species. |
file_format |
One of "auto", "STAR", "featureCounts", "HTSeq", "Salmon", "matrix". Default "auto" detects format. |
sample_col |
Column in metadata containing sample IDs. |
min_count |
Minimum count for filtering (default 5). |
min_samples |
Minimum samples expressing gene (default 3). |
A SummarizedExperiment object.
counts <- matrix(rpois(500, 10), nrow=50, ncol=10) rownames(counts) <- paste0("gene", 1:50) colnames(counts) <- paste0("sample", 1:10) meta <- data.frame(Sample = colnames(counts), tissue = rep(c("petal","leaf"), 5)) se <- importCountMatrix(counts, meta, species = "Rosa chinensis", sample_col = "Sample")counts <- matrix(rpois(500, 10), nrow=50, ncol=10) rownames(counts) <- paste0("gene", 1:50) colnames(counts) <- paste0("sample", 1:10) meta <- data.frame(Sample = colnames(counts), tissue = rep(c("petal","leaf"), 5)) se <- importCountMatrix(counts, meta, species = "Rosa chinensis", sample_col = "Sample")
A universal import function that accepts STAR ReadsPerGene.out.tab
files from any plant species. Unlike buildRosaAtlas() which
is Rosa chinensis specific, this function works for any plant species
including ornamental flowers, fruit crops, vegetables, and model plants.
importCustomAtlas( counts_dir, metadata_file, species = "Unknown species", sample_col = NULL, strandedness = c("reverse", "forward", "unstranded"), min_count = 5L, min_samples = 3L, annotation_file = NULL, sep = "," )importCustomAtlas( counts_dir, metadata_file, species = "Unknown species", sample_col = NULL, strandedness = c("reverse", "forward", "unstranded"), min_count = 5L, min_samples = 3L, annotation_file = NULL, sep = "," )
counts_dir |
Character. Path to directory containing ReadsPerGene.out.tab files from STAR alignment. |
metadata_file |
Character. Path to a CSV or TSV file with sample metadata. Must have a column matching sample IDs. See Details. |
species |
Character. Scientific name of the plant species,
e.g., |
sample_col |
Character. Column name in metadata containing
sample IDs that match count file names (default |
strandedness |
Character. Library strandedness:
|
min_count |
Integer. Minimum count threshold for filtering (default 5). |
min_samples |
Integer. Minimum number of samples a gene must be expressed in (default 3). |
annotation_file |
Character. Optional path to GTF/GFF file for gene name annotation. If provided, gene IDs are mapped to gene names automatically. |
sep |
Character. Metadata file separator:
|
The metadata file should contain one row per sample with at minimum
a column of sample IDs matching the count file names. For example,
if count files are named Sample1_ReadsPerGene.out.tab and
Sample2_ReadsPerGene.out.tab, the metadata must have a column
containing Sample1 and Sample2.
Recommended metadata columns for ornamental plant studies:
tissue - tissue type (petal, leaf, root, etc.)
dev_stage - developmental stage
cultivar - cultivar or accession name
treatment - experimental treatment
replicate - biological replicate number
A SummarizedExperiment object with:
assays: raw counts matrix
colData: sample metadata
rowData: gene annotation (if GTF provided)
metadata: species name and import parameters
# Check available tools ann <- getRosaAnnotation() nrow(ann) ## Not run: # Example 1: Chrysanthemum morifolium se <- importCustomAtlas( counts_dir = "path/to/chrysanthemum/counts/", metadata_file = "chrysanthemum_metadata.csv", species = "Chrysanthemum morifolium", strandedness = "reverse" ) # Example 2: Tagetes erecta (marigold) se <- importCustomAtlas( counts_dir = "path/to/marigold/counts/", metadata_file = "marigold_metadata.csv", species = "Tagetes erecta", annotation_file = "marigold_genome.gtf" ) # Example 3: Any plant species se <- importCustomAtlas( counts_dir = "path/to/counts/", metadata_file = "metadata.csv", species = "Tulipa gesneriana" ) # After import - standard analysis works identically se_norm <- normalizeCounts(se, method = "CPM") plotPCA(se_norm, color_by = "tissue") runDE(se, design = ~ tissue, contrast = c("tissue", "petal", "leaf")) ## End(Not run)# Check available tools ann <- getRosaAnnotation() nrow(ann) ## Not run: # Example 1: Chrysanthemum morifolium se <- importCustomAtlas( counts_dir = "path/to/chrysanthemum/counts/", metadata_file = "chrysanthemum_metadata.csv", species = "Chrysanthemum morifolium", strandedness = "reverse" ) # Example 2: Tagetes erecta (marigold) se <- importCustomAtlas( counts_dir = "path/to/marigold/counts/", metadata_file = "marigold_metadata.csv", species = "Tagetes erecta", annotation_file = "marigold_genome.gtf" ) # Example 3: Any plant species se <- importCustomAtlas( counts_dir = "path/to/counts/", metadata_file = "metadata.csv", species = "Tulipa gesneriana" ) # After import - standard analysis works identically se_norm <- normalizeCounts(se, method = "CPM") plotPCA(se_norm, color_by = "tissue") runDE(se, design = ~ tissue, contrast = c("tissue", "petal", "leaf")) ## End(Not run)
Import STAR count files into OrnTx
importRosaCounts(file_paths, col_data, strandedness = "reverse")importRosaCounts(file_paths, col_data, strandedness = "reverse")
file_paths |
Named character vector of paths to ReadsPerGene.out.tab files. |
col_data |
A data.frame with sample metadata. |
strandedness |
One of "reverse", "forward", "unstranded". |
A SummarizedExperiment object.
ann <- getRosaAnnotation() head(ann) ## Not run: files <- c(Sample1 = "path/to/sample1/ReadsPerGene.out.tab") importRosaCounts(files, col_data = metadata) ## End(Not run)ann <- getRosaAnnotation() head(ann) ## Not run: files <- c(Sample1 = "path/to/sample1/ReadsPerGene.out.tab") importRosaCounts(files, col_data = metadata) ## End(Not run)
A curated mapping of Tagetes erecta gene IDs to carotenoid biosynthesis gene symbols and Arabidopsis orthologs. Based on differential expression analysis between orange (V-01) and yellow (V-01M) flower color genotypes.
data(marigold_carotenoid_genes)data(marigold_carotenoid_genes)
A data frame with 4 rows and 3 variables:
Tagetes erecta gene ID (QVD17 format)
Carotenoid gene symbol (CCS, BCH, LCYe, PSY)
Arabidopsis thaliana ortholog AGI ID
A data.frame containing carotenoid biosynthesis gene identifiers
and annotations for Tagetes erecta.
Differential expression analysis of NCBI BioProject PRJNA562616 using OrnTx runDE().
Normalize count data
normalizeCounts(se, method = c("CPM", "TMM", "DESeq2_vst"), design = ~1)normalizeCounts(se, method = c("CPM", "TMM", "DESeq2_vst"), design = ~1)
se |
A SummarizedExperiment object. |
method |
One of "CPM", "TMM", or "DESeq2_vst". |
design |
Optional formula for DESeq2 methods. |
SummarizedExperiment with normalized assay added.
data(rosa_example) se_norm <- normalizeCounts(rosa_example, method = "CPM")data(rosa_example) se_norm <- normalizeCounts(rosa_example, method = "CPM")
OrnTx ggplot2 theme
ornTheme(base_size = 12)ornTheme(base_size = 12)
base_size |
Base font size |
A ggplot2 theme
p <- ggplot2::ggplot(data.frame(x=1:5, y=1:5), ggplot2::aes(x, y)) + ornTheme() print(p)p <- ggplot2::ggplot(data.frame(x=1:5, y=1:5), ggplot2::aes(x, y)) + ornTheme() print(p)
Plot expression atlas heatmap
plotAtlas(atlas, top_n = 50, title = "Expression Atlas")plotAtlas(atlas, top_n = 50, title = "Expression Atlas")
atlas |
A SummarizedExperiment from buildAtlas() |
top_n |
Number of top variable genes to show |
title |
Plot title |
A ggplot2 heatmap object
data(rosa_example) se_norm <- normalizeCounts(rosa_example, method = 'CPM') atlas <- buildAtlas(se_norm, group_var = 'tissue_simple', assay_name = 'CPM') plotAtlas(atlas, top_n = 30, title = 'Rosa chinensis Atlas') data(rosa_example) se_norm <- normalizeCounts(rosa_example, method = "CPM") atlas <- buildAtlas(se_norm, group_var = "tissue_simple", assay_name = "CPM") plotAtlas(atlas, top_n = 30, title = "Rosa chinensis Atlas")data(rosa_example) se_norm <- normalizeCounts(rosa_example, method = 'CPM') atlas <- buildAtlas(se_norm, group_var = 'tissue_simple', assay_name = 'CPM') plotAtlas(atlas, top_n = 30, title = 'Rosa chinensis Atlas') data(rosa_example) se_norm <- normalizeCounts(rosa_example, method = "CPM") atlas <- buildAtlas(se_norm, group_var = "tissue_simple", assay_name = "CPM") plotAtlas(atlas, top_n = 30, title = "Rosa chinensis Atlas")
PCA plot of expression data
plotPCA( se, assay_name = "counts", color_by = "stage", shape_by = NULL, label_points = TRUE )plotPCA( se, assay_name = "counts", color_by = "stage", shape_by = NULL, label_points = TRUE )
se |
A SummarizedExperiment object |
assay_name |
Which assay to use |
color_by |
Column in colData for point color |
shape_by |
Column in colData for point shape |
label_points |
Show sample labels |
A ggplot2 PCA plot
data(rosa_example) se_norm <- normalizeCounts(rosa_example, method = "CPM")data(rosa_example) se_norm <- normalizeCounts(rosa_example, method = "CPM")
Volcano plot of DE results
plotVolcano( de_results, alpha = 0.05, lfc_threshold = 1, top_n = 20, title = "Volcano Plot" )plotVolcano( de_results, alpha = 0.05, lfc_threshold = 1, top_n = 20, title = "Volcano Plot" )
de_results |
Data.frame from runDE() |
alpha |
Significance threshold |
lfc_threshold |
LFC threshold |
top_n |
Number of genes to label |
title |
Plot title |
A ggplot2 volcano plot
data(rosa_example) results <- runDE(rosa_example, design = ~ tissue_simple, contrast = c('tissue_simple', 'petal', 'abscission zone')) plotVolcano(results, title = 'Petal vs AZ') data(rosa_example) results <- runDE(rosa_example, design = ~ tissue_simple, contrast = c("tissue_simple", "petal", "abscission zone")) plotVolcano(results, title = "Petal vs Abscission Zone")data(rosa_example) results <- runDE(rosa_example, design = ~ tissue_simple, contrast = c('tissue_simple', 'petal', 'abscission zone')) plotVolcano(results, title = 'Petal vs AZ') data(rosa_example) results <- runDE(rosa_example, design = ~ tissue_simple, contrast = c("tissue_simple", "petal", "abscission zone")) plotVolcano(results, title = "Petal vs Abscission Zone")
A curated annotation table mapping generic gene IDs from the RchiOBHm-V2 reference genome to official Rosa chinensis locus names and gene biotype classifications.
data(rosa_annotation)data(rosa_annotation)
A data frame with 51,302 rows and 3 variables:
Generic gene identifier (e.g., "gene0", "gene1")
Official RchiOBHm-V2 locus name
Gene biotype (protein_coding, lncRNA, etc.)
A data.frame with gene annotation data for Rosa chinensis,
including gene IDs, symbols, descriptions, and chromosomal coordinates.
NCBI RefSeq GCF_002994745.2 (RchiOBHm-V2)
Hibrand Saint-Oyant L, et al. (2018) Nature Plants 4: 473-484.
A small subset of the OrnTx Rosa chinensis expression atlas for use in package examples and testing. Contains 500 highly variable genes across 6 samples: 3 petal and 3 abscission zone.
data(rosa_example)data(rosa_example)
A SummarizedExperiment with 500 genes x 6 samples.
counts: raw read counts matrix
sample metadata including tissue_simple
A SummarizedExperiment object with
6 RNA-seq samples (3 petal, 3 abscission zone) from Rosa chinensis.
NCBI SRA BioProjects PRJNA562083 and PRJNA594099
Functional annotation for 30,924 Rosa chinensis genes from the NCBI RefSeq annotation of the RchiOBHm-V2 reference genome (GCF_002994745.2). Contains gene product descriptions extracted from the genomic GTF file. Gene IDs use NCBI LOC format (e.g., LOC112190511).
data(rose_ncbi_annotation)data(rose_ncbi_annotation)
A data frame with 30,924 rows and 2 variables:
NCBI gene identifier (LOC format)
Gene product description from NCBI annotation
A data.frame with NCBI-sourced gene annotation for
Rosa chinensis, including RefSeq IDs and functional descriptions.
NCBI RefSeq GCF_002994745.2 (RchiOBHm-V2) GTF annotation. https://www.ncbi.nlm.nih.gov/datasets/genome/GCF_002994745.2/
Differential Expression Analysis
runDE( se, design = ~tissue_clean, contrast = NULL, alpha = 0.05, lfc_threshold = 1 )runDE( se, design = ~tissue_clean, contrast = NULL, alpha = 0.05, lfc_threshold = 1 )
se |
A SummarizedExperiment object |
design |
Formula for experimental design |
contrast |
Character vector of length 3 |
alpha |
Significance threshold |
lfc_threshold |
Minimum log2 fold change |
A data.frame of DE results
data(rosa_example) results <- runDE(rosa_example, design = ~ tissue_simple, contrast = c("tissue_simple", "petal", "abscission zone"))data(rosa_example) results <- runDE(rosa_example, design = ~ tissue_simple, contrast = c("tissue_simple", "petal", "abscission zone"))
Convenience wrapper running the complete OrnTx pipeline: QC (fastp) -> Alignment (STAR) -> Import -> Normalize. For SRA download first, use downloadSRA() separately. Requires fastp and STAR installed (Linux/macOS/HPC only).
runFullPipeline( fastq_dir, genome_fasta, gtf_file, metadata_file, species = "Unknown species", work_dir = "ornAtlas_pipeline", threads = 16L, strandedness = "reverse", paired = TRUE, skip_qc = FALSE, skip_index = FALSE )runFullPipeline( fastq_dir, genome_fasta, gtf_file, metadata_file, species = "Unknown species", work_dir = "ornAtlas_pipeline", threads = 16L, strandedness = "reverse", paired = TRUE, skip_qc = FALSE, skip_index = FALSE )
fastq_dir |
Directory containing raw FASTQ files. |
genome_fasta |
Path to reference genome FASTA. |
gtf_file |
Path to genome annotation GTF. |
metadata_file |
Path to sample metadata CSV/TSV. |
species |
Scientific name of the plant species. |
work_dir |
Working directory for intermediate files. |
threads |
Threads for alignment (default 16). |
strandedness |
Library strandedness (default "reverse"). |
paired |
Logical. Paired-end data (default TRUE). |
skip_qc |
Logical. Skip fastp QC step (default FALSE). |
skip_index |
Logical. Skip index building if built. |
A CPM-normalized SummarizedExperiment.
checkTools() ## Not run: se <- runFullPipeline( fastq_dir = "raw_reads/", genome_fasta = "rosa_genome.fna", gtf_file = "rosa_annotation.gtf", metadata_file = "metadata.csv", species = "Rosa chinensis", threads = 16 ) plotPCA(se, color_by = "tissue") ## End(Not run)checkTools() ## Not run: se <- runFullPipeline( fastq_dir = "raw_reads/", genome_fasta = "rosa_genome.fna", gtf_file = "rosa_annotation.gtf", metadata_file = "metadata.csv", species = "Rosa chinensis", threads = 16 ) plotPCA(se, color_by = "tissue") ## End(Not run)
Runs fastp QC on FASTQ files. Supports paired and single-end data. Requires fastp to be installed.
runQC( input_dir, output_dir = "clean_reads", paired = TRUE, threads = 4L, min_length = 36L, quality = 20L )runQC( input_dir, output_dir = "clean_reads", paired = TRUE, threads = 4L, min_length = 36L, quality = 20L )
input_dir |
Directory containing raw FASTQ files. |
output_dir |
Directory for clean FASTQ output. |
paired |
Logical. TRUE for paired-end (default). |
threads |
Threads per sample (default 4). |
min_length |
Minimum read length after trimming (default 36). |
quality |
Minimum base quality score (default 20). |
Invisibly returns paths to cleaned FASTQ files.
checkTools() ## Not run: runQC(input_dir="raw_reads/", output_dir="clean_reads/") ## End(Not run)checkTools() ## Not run: runQC(input_dir="raw_reads/", output_dir="clean_reads/") ## End(Not run)
Harmonizes inconsistent developmental stage names across studies into a controlled vocabulary. Solves the problem of "bud", "Bud", "floral bud", "Stage 1" all meaning the same thing in different publications.
standardizeStage(stage_vector)standardizeStage(stage_vector)
stage_vector |
Character vector of stage names to standardize. |
Character vector of standardized stage names.
raw_stages <- c("bud", "Bud", "floral bud", "Stage 1", "open flower", "OF", "full bloom", "senescent") standardizeStage(raw_stages)raw_stages <- c("bud", "Bud", "floral bud", "Stage 1", "open flower", "OF", "full bloom", "senescent") standardizeStage(raw_stages)