From a35dfcf7ce8c77b5aaf5cabd1304f23267f66434 Mon Sep 17 00:00:00 2001 From: Charles Plessy Date: Wed, 2 Sep 2026 16:38:00 +0900 Subject: [PATCH] =?UTF-8?q?The=20inversion=20clown=E2=80=A6=20find=20it=20?= =?UTF-8?q?in=20your=20data.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- R/StructuralVariants.R | 6 ++++-- data-raw/StructuralVariants.R | 13 ++++++++++++- data/exampleClownInversion.rda | Bin 0 -> 676 bytes man/StructuralVariants.Rd | 2 ++ vignettes/StructuralVariants.Rmd | 8 ++++++++ 5 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 data/exampleClownInversion.rda diff --git a/R/StructuralVariants.R b/R/StructuralVariants.R index 1f19ada3..d7354e7f 100644 --- a/R/StructuralVariants.R +++ b/R/StructuralVariants.R @@ -20,11 +20,12 @@ #' @aliases exampleDoubleInversion1 exampleDoubleInversion2 #' @aliases exampleDoubleInversion3 exampleDoubleInversion4 #' @aliases exampleTwinInversions exampleNotTwinInversions -#' @aliases exampleInversionGarg2019 exampleInversionBader2001 -#' @aliases exampleInversionHP1999fig4a exampleInversionHP1999fig4b +#' @aliases exampleInversionGarg2019 exampleInversionBader2001 +#' @aliases exampleInversionHP1999fig4a exampleInversionHP1999fig4b #' @aliases exampleInversionBergeron2005a exampleInversionBergeron2005b #' @aliases exampleTranslocation exampleTranslocation2 #' @aliases exampleInsertion exampleDeletion +#' @aliases exampleClownInversion #' #' @family Structural variants #' @@ -37,6 +38,7 @@ #' exampleInversion5uncollapsed #' exampleNestedInversions #' exampleDoubleInversion1 +#' exampleClownInversion #' exampleTwinInversions #' exampleInversionGarg2019 #' exampleInversionBader2001 diff --git a/data-raw/StructuralVariants.R b/data-raw/StructuralVariants.R index 2448c06f..1b20cc67 100644 --- a/data-raw/StructuralVariants.R +++ b/data-raw/StructuralVariants.R @@ -95,6 +95,16 @@ exampleDoubleInversion4 <- GBreaks(exampleDoubleInversion4) seqlengths(exampleDoubleInversion4) <- seqlengths(exampleDoubleInversion4$query) <- 600 isSorted(exampleDoubleInversion4) +# Clown inversion based on exampleDoubleInversion4 +# ABC/cba -> ABC/cAB -> ABC/aCB => 1-, 3+, 2+ + +exampleClownInversion <- GRanges(c("chrA:100-190", "chrA:200-290", "chrA:300-340", "chrA:341-370","chrA:371-390", "chrA:400-490", "chrA:500-590")) +strand(exampleClownInversion) <- c( "-", "-", "+", "-", "+", "+", "-" ) +exampleClownInversion$query <- GRanges(c("chrB:500-590", "chrB:200-290", "chrB:400-440", "chrB:441-470","chrB:471-490", "chrB:300-390", "chrB:100-190")) +exampleClownInversion <- GBreaks(exampleClownInversion) +seqlengths(exampleClownInversion) <- seqlengths(exampleClownInversion$query) <- 600 +isSorted(exampleClownInversion) + # Nested inversions # ABCDE -> AdcbE -> AdCbE @@ -126,7 +136,7 @@ isSorted(exampleNotTwinInversions) # Example used in the paper from Garg et al. (2019). # {-2,5,4,-1,3,6,9,-7,-8} -# Reversal distance = 5 reversals. +# Reversal distance = 5 reversals. # Details for Reversal distance (d) computation: 10 breakpoints (b); 5 cycles(c); 0 hurdles(h): d = b-c+h (+1 if fortress). exampleInversionGarg2019 <- GRanges(c("chrA:100-190", "chrA:200-290", "chrA:300-390", "chrA:400-490", "chrA:500-590", "chrA:600-690", "chrA:700-790", "chrA:800-890", "chrA:900-990")) strand(exampleInversionGarg2019) <- c( "-", "+", "+", "-", "+", "+", "+", "-", "-") @@ -255,6 +265,7 @@ usethis::use_data( exampleDoubleInversion2, exampleDoubleInversion3, exampleDoubleInversion4, + exampleClownInversion, exampleNestedInversions, exampleTwinInversions, exampleNotTwinInversions, diff --git a/data/exampleClownInversion.rda b/data/exampleClownInversion.rda new file mode 100644 index 0000000000000000000000000000000000000000..935ef1d5174a05a24d5bb58b9a8b4f8a537ca5a4 GIT binary patch literal 676 zcmV;V0$cq;T4*^jL0KkKSt_7z)c^!?fA0VP|KR{W3_w4pA84=d|KLCXKmY(B06+kM z1OdPTw=n}{0Fp#Zn3^>_rqnc_q9N)YP{?|onu9Do4jgFUY~8)qL!n zy*RYt1uhaA9AOc}1s3ZU~G5l-8cN*h07Z^im-y23su0V;5ik);o zg+%qwW<*LC6j}rcP|ysBnx_aC0VPui9ON9NL^r-n05V`HQ!tVsh=_?9h;0M`Fo+&8 z#}*#J>o}lV^w7pESFvZyR3gR(TdTXY z9Dgh~WHBpUkWIEW&R^PQ4(&CtPAMrTfRFu6>{TGi%fk7!l`vA)Co6_}kMyxnY7OtX z?(hW&q0T|cm>7t*)K3i(xp4J>Pf#aI}jT{~1GEpKHIx?dQxr9YH z%o_NlN?EUmXnP52z3?i*7^RV_lyw-hQv)H6hEHI)k-{rCIM(+b( plotApairOfChrs(main = "Mathematics of Evolutio exampleInversionBergeron2005b |> plotApairOfChrs(main = "Mathematics of Evolution and Phylogeny (2005) - Figure 10.6") ``` +### The inversion clown. + +Find it in your alignments! + +```{r inversionClown} +exampleClownInversion |> makeOxfordPlots(col = "strand") + ggplot2::theme_bw() +``` + ## Translocations If a region has moved, but is not an inversion, then it is a translocation.