
Reverse sequences if needed (merge_methylation_with_metadata() helper)
Source: R/merge_with_metadata.R
reverse_sequence_if_needed.RdThis function takes a vector of DNA/RNA sequences and a vector of directions
(which must all be either "forward" or "reverse", not case-sensitive)
and returns a vector of forward DNA/RNA sequences.
Sequences in the vector that were forward to begin with are unchanged,
while sequences that were reverse are reverse-complemented via reverse_complement()
to produce the forward sequence.
Called by merge_methylation_with_metadata() to create a forward dataset, alongside
reverse_quality_if_needed(), reverse_locations_if_needed() and reverse_probabilities_if_needed().
Arguments
- sequence_vector
character vector. The DNA or RNA sequences to be reversed, e.g.c("ATCG", "GGCGGC", "AUUAUA"). Accepts DNA, RNA, or mixed input.- direction_vector
character vector. Whether each sequence is forward or reverse. Must contain only"forward"and"reverse", but is not case sensitive. Must be the same length assequence_vector.- output_mode
character. Whether reverse-complemented sequences should be converted to DNA (i.e. A complements to T), RNA (i.e. A complements to U), or not complemented at all. Must be"DNA"(default),"RNA", or"reverse_only"to reverse sequence order without complementing. Only affects reverse-complemented sequences. Sequences that were forward to begin with are not altered.
Examples
reverse_sequence_if_needed(
sequence_vector = c("TAAGGC", "TAAGGC"),
direction_vector = c("reverse", "forward")
)
#> [1] "GCCTTA" "TAAGGC"
reverse_sequence_if_needed(
sequence_vector = c("UAAGGC", "UAAGGC"),
direction_vector = c("reverse", "forward"),
output_mode = "RNA"
)
#> [1] "GCCUUA" "UAAGGC"
reverse_sequence_if_needed(
sequence_vector = c("TAAGGC", "TAAGGC"),
direction_vector = c("reverse", "forward"),
output_mode = "reverse_only"
)
#> [1] "CGGAAT" "TAAGGC"