Skip to contents

GenomicBreaks 0.25.0

  • The handling of ranges on the * strand (unoriented objects, and mapped regions such as the output of bridgeRegions()) is experimental: it may change in later versions without being considered a breaking change. Inversions are never flagged on such ranges, and functions that need orientation, such as permutationVector(), stop with an error.
  • New simulateRearrangements() function, which simulates a pair of genomes rearranged by random inversions and transpositions and records the events, and new permutationVectorToGBreaks() function, the inverse of permutationVector(). A set of 200 simulations is provided in inst/extdata/simulatedRearrangements.rds for tests and benchmarks.
  • Breaking change: flagTranslocations() now flags the two places where a moved range is seen in the order of the target genome: its payload region (tra flag, as before) and its site, the pair of adjacent ranges between which it is found on the query genome (new trs flag, on the first range of the pair). The both argument and the tra flag on the query ranges are removed: they computed the site by swapping the genomes and sorting again, which put the flag on the second range of the site when it was on the minus strand, and on the wrong row when target ranges were duplicated. flagAll() still uses only the tra flag.
  • The tol argument of flagTranslocations() is now implemented, with the same meaning as in flagInversions().
  • coalesce_contigs() now coalesces over mapped regions: in an object that mixes oriented ranges and ranges on the * strand, such as the output of bridgeRegions() added to the alignments, the oriented ranges are coalesced and absorb the unstranded ranges that they contain on both genomes (experimental). Before, such objects were not coalesced at all, and mapped regions of width zero on one genome caused an error.
  • flagInversions() no longer flags triplets that contain a range on the * strand, such as a colinear + * + triplet made by adding the output of bridgeRegions() to an object: inversions can not be determined without orientation. flagDoubleInversions() and flagTwinInversions() already required known strands; this is now documented.
  • flagTranslocations() now tests unstranded ranges in both directions, instead of as plus-strand ranges, so that its result on unoriented objects no longer depends on the orientation of the query sequences. As orientation is unknown, more ranges can be flagged as moved (see the help page). flagAll() gives precedence to colinearity on such ranges, instead of failing (experimental).
  • flagPairs() no longer flags all pairs that involve a range on the * strand as boundaries (Bnd): they are now Col when adjacent in an order compatible with colinearity, Scr when not adjacent, and NA when adjacent but undetermined (experimental). The factor levels are unchanged.
  • Ranges of width zero on one or both genomes, such as the mapped regions that bridgeRegions() returns between adjacent alignments, broke the adjacency tests of flagColinearAlignments(), flagPairs() and the functions that flag structural variants: GenomicRanges::precede() and follow() report a zero-width range as adjacent to itself. The adjacency tests now place such ranges between the bases that surround them. Results on objects without zero-width ranges are unchanged.
  • permutationVector(), and therefore inversionDistance() and breakpointGraphProperties(), now stop with an error when a range is on the * strand, instead of counting it as a plus-strand range.
  • showTranslocations(), filterTranslocations() and removeTranslocations() now use both the tra and trs flags, so that moves seen only at their site are no longer ignored. A moved range seen at both places is counted once.
  • Breaking change: dist2next() now returns the number of bases between two ranges, as GenomicRanges::distance() does (0 for adjacent or overlapping ranges), instead of that number plus one. The tol argument of coalesce_contigs(), flagColinearAlignments() and flagInversions() now bridges gaps of up to tol bases, as documented, instead of gaps shorter than tol. With a finite tol, results change where a gap is exactly tol bases wide; for example coalesce_contigs(gb, tol = 0) now merges adjacent colinear ranges. Results with the default tol = Inf are unchanged.
  • flagDoubleInversions() now requires the ranges before and after the triplet to be colinear with it: on the plus strand for the bcA and Cab patterns, and on the minus strand for BAc and aCB. Previously, it also flagged triplets that require three inversions, and triplets whose neighbours map elsewhere in the query genome. The flag is now set on the left flank, as in flagInversions() and flagTwinInversions(). As a consequence, filterDoubleInversions() now returns the central triplet (it returned its last two ranges and the right flank), and removeDoubleInversions() was adjusted to remove the same three ranges.
  • flagDoubleInversions() and flagTwinInversions() now require all the ranges of a pattern to be on the same target sequence, like flagInversions() does.
  • flagInversions() and flagPairs() ignored the first range of the object when testing whether two ranges are adjacent on the query genome. For example, flagPairs(exampleInversionGarg2019) now returns Scr instead of Inv for ranges 4 and 5, which are separated by range 1 on the query.
  • filterTranslocations(remove = TRUE) returned an empty object when no translocation was flagged; it now returns all the ranges.
  • leftInversionGaps() now returns one gap per inversion, as a zero-width range when the left flank and the central range are adjacent or overlap (these inversions were dropped), with a new flagIndex metadata column giving the position of the left flank. A new detect argument allows to reuse existing inv flags, for instance computed with a tol value.

GenomicBreaks 0.24.0

  • Support correction for unaligned bases in JC69_distance().
  • Refactor breakpoint graph code.
  • Add new example GBreaks objects from the litterature.

GenomicBreaks 0.23.0

GenomicBreaks 0.22.0

GenomicBreaks 0.21.0

  • New flagTwinInversions() function with example data.
  • Support all-zero substitution matrices in the distance functions introduced earlier.

GenomicBreaks 0.20.0

GenomicBreaks 0.19.0

GenomicBreaks 0.18.0

GenomicBreaks 0.17.0

  • Switch to semantic versioning.
  • New P_distance() (ungapped percent difference) distance function.

GenomicBreaks 0.16.3

  • New F81_distance() (Felsenstein 1981) distance function.
  • Documentation and namespace fixes.

GenomicBreaks 0.16.2

GenomicBreaks 0.16.1

GenomicBreaks 0.16.0

GenomicBreaks 0.15.0

  • New detect option in the show and filter functions for inversions and translocations, to re-compute flags automatically and simplify interactive use. Set to FALSE and flag manually when performance is an issue.

GenomicBreaks 0.14.10

GenomicBreaks 0.14.9

  • New distance functions written by Zikun Yang.

GenomicBreaks 0.14.8

  • Update for Bioc 3.21 and R 4.5.
  • New experimental inversion analysis functions written by Bruna Fistarol.
  • Namespace and documentation fixes.
  • Guard against empty GBreaks objects in makeOxfordPlots().

Dropped features

  • Removed bp_coverage, not used anymore.
  • Removed support for Axt files as CNEr is broken for the moment.

GenomicBreaks 0.14.7

  • Correct a bug in load_genomic_breaks() where sequence lengths would be too long of 1 nucleotide when loaded from MAF files.

GenomicBreaks 0.14.6

  • Experimental support for loading sequence information from FASTA files.

GenomicBreaks 0.14.5

  • Support loading MAF files where alignment sign is on the query.
  • Correct example data to make it really one-to-one.

GenomicBreaks 0.14.4

  • Remove dependency on BOOST thanks to C++ code taken from LAST (M. Frith / GPLv3+).

GenomicBreaks 0.14.3

New functionalities

GenomicBreaks 0.14.2

New functionalities

  • New GBreaksToMatrix() function to apply image processing approaches on scrambling patterns.
  • New keepLongestPair() function to focus on the longest sequence feature in each genome.
  • New wholeGenomeClassification() function to classify isolated alignments, collinear alignments, bridge regions and breakpoint regions.

GenomicBreaks 0.14.1

Bug fixes

  • Correct a 1-nt shift in minus-strand coordinates of the query genome of GBreaks objects loaded from MAF files. This shift could cause overlapping ranges that crashed the coalescing algorithm.
  • bridgeRegions() now returns empty GBreaks objects if no bridge region was found. Closes issue #20.
  • Allow makeOxfordPlots() to work on genomes larger than the maximum 32-bit integer. Closes issue #24.

New functionalities

GenomicBreaks 0.14.0

GenomicBreaks 0.13.1

New functionalities

  • The makeOxfordPlots() function gains a col argument for choosing to color by strand or by score.

Bug fixes

GenomicBreaks 0.13.0

Important bug fixes

  • The flagColinearAlignments() and coalesce_contigs() functions were corrected so that strandless ranges are called colinear when they satisfy the conditions on any strand. Before, they would be treated like plus-strand ranges, causing failure to detect colinearity on the minus strand.

New functionalities

  • New getSeq() method for GRanges and GBreaks objects that have proper seqinfo for an installed BSgenome package.
  • New pairwiseAlignment() method for GRanges and GBreaks objects, that will call getSeq() automatically.
  • New “mid” option to the direction argument of get_bps(), to output breakpoints at mid-distance between ranges.
  • New bridgeRegions() function that maps unaligned regions of the target to the query genome when they are flanked by colinear regions.
  • filterTranslocations() gains a remove flag and flagTranslocations gains a both flag.
  • swap gains a sort flag, so that in interactive sessions, gb |> swap() |> sort(i=T) can be replaced by the shorter gb |> swap(s = T).

Backwards-incompatible changes

  • The function bp_heatmap now expects to genome sequences to be reachable via BSgenome::getBSgenome.
  • The function dist2next now operates on GRanges and GBreaks, and its main argument is renamed to x.

GenomicBreaks 0.12.2

New functionalities

  • The function forceSeqLevels() now operates on both the target and the query ranges of GBreaks objects.
  • New example data set: Neurospora crassa chromosome III aligned to its homologue in Podospora comata: chromosome 7.
  • New strand_randomisation_index().
  • makeOxfordPlots() includes strand information in the returned object.
  • New type = 'none' option for makeOxfordPlots(), for better customisation.

GenomicBreaks 0.12.1

  • The plotApairOfChrs() function now plots the name of the selected sequence levels instead of target and query. The labels can be overriden with the dna_seg_labels parameters. Closes issue #6.

GenomicBreaks 0.12.0

Backwards-incompatible changes

  • Removed selChroms parameter in makeOxfordPlots().
  • New defaults for makeOxfordPlots(): fixed-ratio line plot with round ends and size of 1. Axis labels are now “target” and “query” by default. In any case, Seqname is displayed instead of genome name if there is only one sequence in the ranges object.

New functionalities

GenomicBreaks 0.11.0

Backwards-incompatible changes

  • Remove project-specific load_one_to_ones function.

GenomicBreaks 0.10.0

Backwards-incompatible changes

New functionalities

  • New flagPairs() function to exhaustively flag windows of 2 successive GBreaks entries.
  • New gb2xlim() function to narrow focus on plots made with plotApairOfChrs().
  • New makeOxfordPlots() function to create macrosynteny plots. Thanks to Aleksandra Bliznina.
  • In mergeSeqLevels(), use maximal end value for each seqlevel if no if no seqlengths were provided.
  • A new set of example 5-uplets, to illustrate double inversions.
  • Flag double inversions with flagDoubleInversions() and flagAll(), test them with exampleDoubleInversion.

Bug fixes

  • Add strand check on flagTranslocations() so that it does not return a false positive on exampleDoubleInversion.

GenomicBreaks 0.9.1

New functionalities

  • flagAll() now ensures that flags do not collide, and reports translocations.

GenomicBreaks 0.9.0

New functionalities

Bug fixes

GenomicBreaks 0.8.0

Backwards-incompatible changes

  • Remove flagInterruptions, which was nonsense.

New functionalities

  • New isSorted() method to properly test with ignore.strand set to TRUE.
  • Default plotApairOfChrs() to the first sequence level of the GBreaks object.
  • plotApairOfChrs() now renders regions as blocks and not arrows as the strand information is encoded in the color and shape of the comparison bands. It also plots in light blue the blocks that are not matched. Closes issues #3 and #5.
  • Added example data, see ?StructuralVariants and `vignette(“Structural Variants”, package = “GenomicBreaks”) for details.

Bug fixes

GenomicBreaks 0.7.1

  • Fix namespace and variable bugs that were preventing reverse() to run.

GenomicBreaks 0.7.0

GenomicBreaks 0.6.0

GenomicBreaks 0.5.3

  • pkgdown update.

GenomicBreaks 0.5.2

GenomicBreaks 0.5.1

GenomicBreaks 0.5.0

  • Add a flagLongShort() function to transfer annotations about chromosome arms.

GenomicBreaks 0.4.0

  • Use alignments of Saccharomyces paradoxus to S. cerevisiae as example data.
  • Addition of a GOC() function to calculate Gene Order Conservation.

GenomicBreaks 0.3.0

GenomicBreaks 0.2.0

  • Document the package with pkgdown.