# Functions
CircularLigate simulates ligation of all possible fragment combinations into circular plasmids.
CutWithEnzyme cuts a given sequence with an enzyme represented by an Enzyme struct.
CutWithEnzymeByName cuts a given sequence with an enzyme represented by the enzyme's name.
GoldenGate simulates a GoldenGate cloning reaction.
# Structs
Enzyme is a struct that represents restriction enzymes.
Fragment is a struct that represents linear DNA sequences with sticky ends.
Overhang is a struct that represents the ends of a linearized sequence where Enzymes had cut.
Part is a simple struct that can carry a circular or linear DNA sequence.