Package: tikz2graphml
Tikz2GraphML: P2 File conversiontikz2graphmlis TikZ (tex) to Graphml convertor which can be viewed in yEd software. It allows you to select the tex file (with TikZ code) and writes corresponding graphml file in the output directory. For the sake of cleanliness, each Tikz Block is analyzed separately to generate different GraphML files. tikz2graphml works on Linux and Windows. It can be used from commandline as well as GUI. tikz2graphml is very simple to use, powerful and supports many TikZ constructs. It also lets you scale the coordinates in graphml for better visualization of graphml in yEd.RequirementsPython Version 3.7.0This software requires following Python packages. If you installtikz2graphmlusing pip3, you don't need to install these requirements manually.colour==0.1.5numpy==1.16.2networkx==2.3matplotlib==3.0.3pylatexenc==1.4antlr4-python3-runtime==4.7.2InstallationUbuntuIt is recommended to create a python virtual environment to prevent breaking dependencies.Creating a Python Virtual Environment>sudoapt-getinstallpython3-pip
>(sudo)pip3installvirtualenv>virtualenv-ppython3venv
>sourcevenv/bin/activate# Activate virtual environmentTo deactivate virtual environment, typedeactivatein shell.Installing tikz2graphml>sudoapt-getinstallpython3-tkpython3-pip
>(sudo)pip3installtikz2graphml
>tikz2graphmlWindowsPython3 InstallationPip InstallationOpen Command Line from WindowsUse this commandpip install tikz2graphml  
tikz2graphmlGUITikz Constructs SupportedWe have handled these Tikz ConstructsNodeShapes: Circle, Ellipse, Rectangle, DiamondSizeColorNodeIDLabelEdge ColorLableEdgeWidthEdge arrows:->,<->,<-,-!-.-CoordinatesPolar: (Angle, r (in cm))Cartesian: (x,y)Rotation of the Entire GraphHandling Loop constructs(Foreach)Global properties(applied to each tikz construct)ExamplesSample TikZ code\begin{tikzpicture}
    \draw (6,6) ellipse (3cm and 6cm);
    \draw (6,6) ellipse (2.5cm and 5cm);
    \draw (6,6) ellipse (2cm and 4cm);
    \draw (6,6) ellipse (1.5cm and 3cm);
    \draw (6,6) ellipse (1cm and 2cm);
    \draw (0,12) rectangle (12,0);
    \node (a) [fill=green, shape=diamond] at (0,6) {};
    \node (b) [fill=blue] at (12,6) {};
    \node (c) [fill=red] at (6,0) {};
    \node (d) [fill=black] at (6,12) {};
    \draw (6,6) circle (6cm);
    \draw [<->] (a) -- (b);
    \draw [->] (d) -- (c);
    \draw (6,6) ellipse (6cm and 2cm);
    \draw (6,6) ellipse (6cm and 6cm);
    \draw (6,6) ellipse (6cm and 5cm);
    \draw (6,6) ellipse (6cm and 4cm);
    \draw (6,6) ellipse (6cm and 3cm);
\end{tikzpicture}GraphML output in yEdGeneration of GraphML file (Design)Conversion ProcessRead Input (tex file)Detect TikZ code in File. If multiple TikZ block found, store them in list.For each TikZ block detected above, do followingDetect Foreach Instruction andUnrollit.Parse File usingthis grammarwith Antlr4 toolFor each rule in Antlr grammar, we add corresponding rules which detects and store the properties of instruction in either of node or edge listTikZAntlrListenerOnce parsing is done. We call get_graph which first rotates the graph (if rotate property is there) and then add the nodes and edges to pyyed graph.We get the XML output from pyyed (using pyyed.graph.get_graph()) and write it in *.graphml file.Current Status of the softwareAll the possible Tikz constructs are handled efficiently with the consideration of all the possible test-cases(invalid and valid test cases included)The tool has been installed as apip libraryIt works cross-platform(both Linux and Windows)The original aim was to make it a command line tool. But in addition to this, we have also added a GUI interface which can take in input file and scaling parameter and output the corresponding GraphML file.