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.
- Graph Filter v3.0 was published in Abstract booklet of Workshop Stpectral Graph Theory, 2023
The Graph Filter is a software to help graph researchers, with a simple and intuitive interface. It allows you to draw, save and manipulate graphs with the mouse and keyboard. It provides more than 170 invariants (spectral and structural) and some graph operations, which are calculated in a few clicks.
Another purpose of the software is to filter graphs: the user enters conditions and equations, attaches a list of up to thousands of graphs, then the program filters the graphs that meet the conditions. An important tool for drawing up results and finding counterexamples. You can also export the graphs in different formats.
The program is supported by any Windows, Linux and Mac. No installation is required, just download and run.
- 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.
- Visualize, draw and manipulate Graphs
- Create well-known Graph layouts
- Manipulate files with an tree file manager
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 run 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.py
from the project's source folder
You can see more details about these steps clicking here
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 visualize, draw and manipulate the graph on the screen. 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 or opened from a .g6, .txt file, you can use the combo box or navigation arrows at the top of the window.
The toolbar gives you access to some of the software's features, such as applying certain operations, exporting, inserting a universal vertex, saving the edited graph or deleting it. These functions refer to the graph on the screen. You can also create a new well-known used graph to work with the software. In the dictionary tab, you can see all the new graphs options with their definitions and parameters.
In the left-hand corner you can see a tree of files, opened in the directory previously selected in Open or New Project. In the tree you can double-click with the left button to open the folder or file, or right-click to display the menu with the following options:
- Load File: This will load the file into the window, if they are graphs they will be plotted.
- Export all graphs: Export all the graphs in the file in one of the selected file types.
- Delete: Delete the file or empty folder
The software accepts the following file types:
- .g6 and .txt : Responsible for storing a list of graphs.
- .gml: Able to store just one graph, but in more detail, such as the position of the vertices.
- .json: The result of the old way the software worked, there are still json files that store a list of graphs, but this type will be deprecated.
The software can export graphs in the following file types:
When export is selected via the tool bar only the open graph will be exported, whereas when the export option is selected via the tree all the graphs in the file will be exported.
- Graph(.gml),
- Graph6(.g6 ou .txt),
- Image(.png ou .pdf),
- Latex Tikz(.tex), or
- Sheets with invariants (.xlsx
In the case of files exported in .xlsx, the numerical and boolean data from the information dock will be exported to the table.
For further information on how to use the program, please go to the Wiki page.