Edges

Types

PanGraph.Graphs.Edges.EdgeType
mutable struct Edge
    block  :: Tuple{Block, Block}
    invert :: Bool # changes strand
    nodes  :: Array{Position}
end

Store a unique edge within a pangraph. An edge is undirected and is defined by the two juxtaposed blocks, as well as a relative orientation. Contain all positions of all genomes that contain the edge.

source
PanGraph.Graphs.Edges.PositionType
struct Position
    path  :: Path
    node  :: Tuple{Node{Block},Node{Block}}
    index :: Tuple{Int,Int} # positions on path
    locus :: Int # breakpoint on sequence
end

Store a single position of an edge/breakpoint between homologous pancontigs in an individual genome. path is the containing Path object. node stores the junction of nodes that represent the position of the breakpoint. index is the indices of node within path. locus is the physical location on the genome of the breakpoint.

source

Functions

PanGraph.Graphs.Edges.deparalog!Method
deparalog!(G)

Split duplicated blocks that have non-intersecting, seperable paths that run in parallel and transitively connect associated genomes. Use to simplify high copy number blocks found in all individuals in equivalent contexts within pangraph G.

source
PanGraph.Graphs.Edges.nextMethod
next(x::Position, blk::Block)

Compute the next position from x that is connected through block blk. Use to traverse the path of an individual genome through a pangraph.

source