Networks are generated using either of Fitchi or PopArt through popart_networks. BioPython is used to create NJ trees if needed. networkx is used for laying out the initial graph.

Fitchi: | https://evoinformatics.group/fitchi.html
PopArt: | https://popart.maths.otago.ac.nz
popart_networks: | https://github.com/iTaxoTools/popart_networks
BioPython: | https://biopython.org
networkx: | https://networkx.org

[1] Matschiner M (2015) Fitchi: Haplotype genealogy graphs based on the Fitch algorithm. Bioinformatics, 32:1250-252.
[2] Leigh, JW, Bryant D (2015). PopART: Full-feature software for haplotype network construction. Methods Ecol Evol 6(9):1110-1116.
[3] Bandelt H, Forster P, Röhl A (1999). Median-joining networks for inferring intraspecific phylogenies. Mol Biol Evol 16(1):37-48.
[4] Clement M, Snell Q, Walke P, Posada D, Crandall, K (2002). TCS: estimating gene genealogies. Proc 16th Int Parallel Distrib Process Symp 2:184.
[5] Cock, P.J. et al., 2009. Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics, 25(11), pp.1422-1423.
[6] Hagberg, A., Swart, P. & S Chult, D., 2008. Exploring network structure, dynamics, and function using NetworkX.