Skip to content

GraphFilter/GraphFilter

Repository files navigation

Graph Filter
Graph Filter

DOI

Software to help Graph researchers providing filtering and visualization to a given list of graphs.

AboutFeaturesUsed LibrariesInstallationGetting StartedMoreLicense

About

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.

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.

Features

  • 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.

Used libraries

Calculations of invariants GUI development Utilities
Networkx PyQt5 Matplotlib
Grinpy Netgraph network2tikz
Numpy simpleeval

Installation

You can run the program from an executable file or from the source code.

Release

Download the compact file from the release that matches your Operational System.

Source code

To from the source code, you have to:

Getting started

When opening the program, at the first page start a new project clicking on the New Project button.

When starting a new project, you will be guided through a wizard to select the filtering conditions.

First, choose the Project Name and the Project Location.

At the Equations page, insert the equation you want to use to filter graphs.

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.

Choose a condition to the 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.

Choose the method to filter

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.

Input the files with the graphs you want to filter

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.

Project Main Window

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:

  • PDF
  • PNG
  • Latex (TikZ)
  • graph6 (.g6 or .txt)
  • xlsx

More

For further information on how to use the program, please go to the Wiki page.

⚖️ License

GNU General Public License v3.0

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages