Segment a single indel sequence using Rcpp interface
Value
A list with the following elements:
- unit
Repeat unit sequence (character)
- unit_length
Unit length (integer)
- internal_rep
Internal repeat region (character)
- internal_reps
Internal repeat count (integer)
- spacer
Spacer sequence (character)
- spacer_length
Spacer length (integer)
- prime3_rep
3' flanking repeat region (character)
- prime3_reps
3' flanking repeat count (integer)
- original_reps
Original repeat count (integer)
Details
This function segments an indel sequence by finding the optimal repeat unit that best explains the sequence structure. The algorithm tries all possible repeat unit sizes and selects the best segmentation based on:
Highest 3' flanking repeat count (most important)
Highest internal repeat count
Lowest spacer length (prefer clean repeats)
Lowest unit length (prefer simpler units)
Examples
# Simple AT repeat
result <- seg_simple("d", "ATATAT", "ATATGG")
print(result)
#> $unit
#> [1] "AT"
#>
#> $unit_length
#> [1] 2
#>
#> $internal_rep
#> [1] "ATAT"
#>
#> $internal_reps
#> [1] 2
#>
#> $spacer
#> [1] ""
#>
#> $spacer_length
#> [1] 0
#>
#> $prime3_rep
#> [1] "ATAT"
#>
#> $prime3_reps
#> [1] 2
#>
#> $original_reps
#> [1] 5
#>
# CG repeat
result <- seg_simple("d", "CGCGCG", "CGCGAA")
print(result)
#> $unit
#> [1] "CG"
#>
#> $unit_length
#> [1] 2
#>
#> $internal_rep
#> [1] "CGCG"
#>
#> $internal_reps
#> [1] 2
#>
#> $spacer
#> [1] ""
#>
#> $spacer_length
#> [1] 0
#>
#> $prime3_rep
#> [1] "CGCG"
#>
#> $prime3_reps
#> [1] 2
#>
#> $original_reps
#> [1] 5
#>