OryzaProbe converts expression-matrix row names from three rice microarray platforms: GPL6864, GPL2025, and GPL8852. Version 0.2.0 preserves the input row order and records how each probe was resolved.
The two GPL6864 probes below map to the same RAP-DB gene. Supplying the platform explicitly is recommended for reproducible analysis.
expression <- matrix(
c(2, 4, 6, 8),
nrow = 2,
dimnames = list(c("36144", "37310"), c("sample_1", "sample_2"))
)
converted <- probe_convert(
expression,
platform = "GPL6864",
merge_by = "mean"
)
#> GPL6864: 2 input row(s) -> 1 output row(s); 2 RAP, 0 multi-mapped, 0 unmapped, 0 non-RAP, 0 dropped.
converted
#> sample_1 sample_2
#> Os01g0100700 3 7The result is a numeric matrix. The report links every input probe to its annotation, resolution policy, and output row.
probe_conversion_report(converted)
#> input_index probe_id target_id resolved_target_id status resolution
#> 1 1 36144 Os01g0100700 Os01g0100700 mapped_rap as_annotated
#> 2 2 37310 Os01g0100700 Os01g0100700 mapped_rap as_annotated
#> kept output_id
#> 1 TRUE Os01g0100700
#> 2 TRUE Os01g0100700
probe_conversion_summary(converted)
#> $platform
#> [1] "GPL6864"
#>
#> $input_rows
#> [1] 2
#>
#> $output_rows
#> [1] 1
#>
#> $mapped_rap
#> [1] 2
#>
#> $multi_mapped
#> [1] 0
#>
#> $unmapped
#> [1] 0
#>
#> $non_rap
#> [1] 0
#>
#> $dropped_input_rows
#> [1] 0
#>
#> $merge_by
#> [1] "mean"Automatic detection scores every input row. It therefore works for valid subsets that do not contain one particular sentinel probe.
subset_expression <- matrix(
c(13, 14),
ncol = 1,
dimnames = list(c("13", "14"), "sample")
)
probe_convert(subset_expression)
#> GPL6864: 2 input row(s) -> 2 output row(s); 2 RAP, 0 multi-mapped, 0 unmapped, 0 non-RAP, 0 dropped.
#> sample
#> Os01g0721700 13
#> Os06g0215600 14Detection raises an error if fewer than half of the probe IDs match a supported platform or if the result is ambiguous.
Platform annotations contain controls, miRNA identifiers, probes without a RAP target, and a few one-to-many mappings. These are not silently discarded.
The unmapped and non_rap arguments accept
"keep", "drop", or "error". The
multi_mapping argument accepts "keep",
"first", "expand", "drop", or
"error".
The GPL6864 and GPL2025 mappings are the tables published with OryzaProbe 0.1.0. They remain identifiable as a legacy snapshot rather than being presented as a current RAP-DB release.
probe_annotation_metadata()
#> platform source_url
#> 1 GPL6864 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GPL6864
#> 2 GPL2025 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GPL2025
#> 3 GPL8852 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GPL8852
#> annotation_snapshot snapshot_date
#> 1 OryzaProbe 0.1.0 legacy table 2022-10-15
#> 2 OryzaProbe 0.1.0 legacy table 2022-10-15
#> 3 Composite probe row name not applicable
#> mapping_method rows
#> 1 Exact probe-ID lookup 45151
#> 2 Exact probe-ID lookup 57381
#> 3 Text before the first pipe character 0
head(probe_annotation("GPL6864"))
#> probe_id target_id status
#> 1 1 1 unmapped
#> 2 2 2 unmapped
#> 3 3 3 unmapped
#> 4 4 4 unmapped
#> 5 5 5 unmapped
#> 6 6 6 unmappedThe original probeConvert() function remains available
for existing scripts, but new work should use
probe_convert() so mapping policies are visible.