Edges
Types
PanGraph.Graphs.Edges.Edge
— Typemutable 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.
PanGraph.Graphs.Edges.Position
— Typestruct 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.
Functions
PanGraph.Graphs.Edges.deparalog!
— Methoddeparalog!(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
.
PanGraph.Graphs.Edges.edges
— Methodedges(G)
Compute all edges associated with pangraph G
.
PanGraph.Graphs.Edges.isolates
— Methodisolates(positions::Array{Position,1})
Compute the array of Position
values for each isolate.
PanGraph.Graphs.Edges.next
— Methodnext(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.