About • Features • Used Libraries • Installation • Getting Started • More • License
The main goal of this software is to give assistance to Graph Theory and Spectral Graph Theory researchers to establish or refute conjectures quickly and simply, providing for visualization a filtered list of graphs according to the properties given by the user.
This project is a reimplementation in python of GraphFilter project in order to provide more functionalities to the software, in addition to better performance.
- Graph Filter v1.1 was published in Anais of X-ERMAC-RS: Encontro Regional de Matemática Aplicada e Computacional.
- Graph Filter v2.0 was published in Anais do LIII Simpósio Brasileiro de Pesquisa Operacional, 2021.
The software has the purpose of filtering a list of graphs through conditions customized by the user, without requiring programming knowledge. After the process, the filtered graphs are returned and the user can analyze them according to his cientific research. This user will have access to plot of the graphs and the calculation of several invariants, at the user's choice.
- Filter graphs with conditions customizable by the user;
- Visualization of filtered graphs, with calculation of invariants.
- The filtered graphs can be exported to different file formats.
- Intuitive layout, does not require programming knowledge;
- Support for several graph invariants;
- It helps the researcher in Graphs to test conjectures and results.
| Calculations of invariants | GUI development | Utilities |
|---|---|---|
| Networkx | PyQt5 | Matplotlib |
| Grinpy | Netgraph | network2tikz |
| Numpy | simpleeval |
You can run the program from an executable file or from the source code.
Download the compact file from the release that matches your Operational System.
To from the source code, you have to:
- Install Python and Pip.
- Clone this project using git or Download the source code from the release
- Create and activate a Virtual Environment (optional)
- Install the requirements
- Then, run the
app.pyfrom the project's source folder
When opening the program, at the first page start a new project clicking on the New Project button.
You can insert the (in)equations involving the invariants and operationsof your choice, using either the keyboard or the buttons to assist in the insertion. You can also leave it empty, but in the next step you will have to choose a least one Condition to filter.
You can check the Boolean conditions you want to impose on your filtering. When you mark TRUE on an invariant, the program will only filter those that satisfy the condition. Respectively check FALSE if you do not want graphs that satisfy that condition. If you are indifferent, just don't check that invariant.
The user decides which filtering method: if he wants to filter all the graphs, among his input list, that satisfy the imposed conditions. Or if you prefer, just look if there is a graph that does not satisfy those conditions, useful for trying to refute conjectures.
Here you can load the graphs for filtering. The file format of the entry is .g6 or .txt containing a list of graphs in graph6. Note that the user can insert more than one file.
Graph6 is a compact format file, created by D. McKay. But you do not have to understand how this fortat works. You can find files in this format for different classes of graphs on the pages:
This pages will let you choose the kind of graphs you want, and then export in Graph6 format for you.
After these steps, the program will analyze all the conditions and the filtering will be performed. When finished, a window will open for viewing and analyzing each graph returned in the filtering.
Here you can see a visualization of the graph, allowing the movement in the vertices with the mouse cursor. There is also a List of invariants to be calculated in the displayed graph, just mark the desired invariants and they will appear in the Info dock, which can be resized or even seen as a separate window, for a better visualization. In the dictionary tab you can see a short definition of each invariant implemented in the program.
To navigate between the graphs returned from the filtering, you can use the combo box or navigation arrows at the top of the window.In the File > Export to menu, you can export the graphs returned in the filtering to other formats:
- PNG
- Latex (TikZ)
- graph6 (.g6 or .txt)
- xlsx
For further information on how to use the program, please go to the Wiki page.






