User Guide - GraphFilter/GraphFilter GitHub Wiki

Welcome Window

Opening the program, you will see the Main Window(Welcome Window), with two button options: Open and New Project.

  • The Open option will let you choose:

    • a .g6 or .txt file with a list of graphs in graph6 format (Can be obtained from House of Graphs);
    • a .gml file with an unique graph (with node positions or not);
    • a .json file generated by previous filterings from outdated version you have done.

    Then, it will open the Project Window.

  • The New Project option will open the Wizard, that will guide you through customizing your graph filtering. Where you will follow the step-by-step instructions in creating a new filtering project

Creating a New Filtering Project

To create a New Project in Graph Filter, it's necessary that you complete the steps of the Wizard. Here, we will try to give you an overview of the program, explaining each page of the Wizard step-by-step, how it works and how to fill it.

Method

The program disposes of two types of filtering:

  • Filter Graphs will analyze each graph and discard from the result list those that do not satisfy the conditions
  • Find an example will stop the search in the first graph that does satisfy the conditions

You can also create a Blank Project. In this case you will be taken to just one more page, the project information, where you will select the name for the file (project) and the save location. You will then be taken to the project window with your blank project open.

Project information

It will be asked the Project Name and the Project location where you want to save the project.

Equations

You can enter equations and inequalities in two ways:

  • by typing using the names of the invariants
  • or using the buttons

For a better visualization, when you type an invariant name, the text is converted into symbols in the text box. The buttons work the same way, by automatically placing the symbol in the input. Some invariants and operations on graphs already have a usual symbology, those that do not have a fixed notation, also use some symbology by initials or abbreviations.

The buttons are organized into tabs, divided into the following sections:

  • Numeric Structural Invariants, directly related to the structural properties of the graph.
  • Numeric Spectral Invariants, directly related to the spectral properties of the graph. That is, they are related to matrices and eigenvalues in graphs.
  • Graph Operations are used by the invariants of the previous tabs, and can be applied to the graphs of the input files or in some operation of the graph.
  • Math Operations are common operations in mathematics

This page also has the following features:

  • Validation: You can only proceed to the next page if you enter a valid (in)equation or keep the text box blank.
  • Combined in(equations): in(equations) can be combined using the logical AND or OR.
  • Composition: The in(equations) may involve composition of invariants and operations using parentheses, the usual composition notation.

Examples:

χ(ℓ(G))/2 ≤ floor(μ₁(G))+1-π^2

Half of the chromatic number of the line graph is less than or equal to the floor of the greatest Laplacian eigenvalue plus the constant 1 minus π squared

EE(G)+diam(comp(ℓ(G)) > ln(λ₂(G))

Estrada index of the graph plus the diameter of the complement graph is greater than the logarithm (euler) of the second largest eigenvalue of the graph

Δ(G) > 5 AND r(Ƙ(G)) == diam(G) AND Е(G) > 10

Maximum graph degree greater than 5 AND radius of graph clique coincides with graph diameter AND the graph has at least 10 edges.

Conditions

Conditions utilizes Boolean Invariants to filter the graphs. You can mark a condition as:

  • True, if you want that condition to be satisfied
  • False, if you want the condition to not be satisfied;
  • Unchecked, so that condition will be irrelevant in the filter.

These are also divided into structural and spectral invariants, as in numeric invariants.

Graph Files

The program is capable of load list of graphs contained in .txt or .g6 files.

  • The .g6 format stores the graph in a compact way (graph6), allowing thousands of graphs in a single file. Files in this format have text type and contain one line per graph. This format is accepted for filtering in the program. Specific details about this format can be seen here.
  • The .txt format is an alternative form for graph6.

The formats There are two good collections of graphs saved in graph6 format, just download them and load them to Graph Filter.

Review

The last step of the wizard is a review page where you can confirm the configurations you have settled up so far.

Clicking in the Start button, a Loading Screen appears, showing you the progress of the filtering. When the load finishes, you can see the Project Window with the graphs that satisfy filtering.

Information on the creation of the project

Now you've reached the end of creating a new project, a few observations. At the end of filtering or finding an example, two files have been created in the selected folder 'name_graphs.g6' responsible for storing the graphs resulting from the project and 'name_report.pdf' responsible for generating feedback with information about the creation of the project such as the success rate. The resulting graphs are present in the combo box of the toolbar, if you have selected Find an example there will only be one graph, as the purpose is to find a graph in the list that fits the equation and/or the conditions, or if you have selected Filter graphs there will be a list of graphs that fit.


Project Window

At the Project Window, you can see the result of your filtering.

Tool bar

On the tool bar in the top of the window, there is a combo-box with a list of the resulting graphs and their respective graph6 code, with two arrows to help you change from a graph to another. There are also some buttons, each containing its own functionality. You can acess all features here.

Docks

The project window is divided in four docks:

The docks are floatable, which means that they can be replaced in another part or the window, or even removed from the project, appearing in a separate window. To do that, drag and drop the desired dock to the new place you want it to be.

Docks can also be closed by clicking in the x button at the top bar.

After closing it, if you want to enable them again, go to View and choose the dock you want to see.

After moving the docks around. if you want to restore the default layout, go to Window>Restore Default Layout

Visualize

In here you see see an interactive plot of the selected graph. You can change the plotted graph by changing it in the combo box in the toolbar or you can change the selected graph file by clicking on another one in the tree file. The graph plotted on the screen can be manipulated with actions such as adding and/or deleting a new node and/or connecting two nodes with an edge, as can be seen in the graph editing features.

Invariants

This dock exhibits a check list where you can choose invariants, with the help of a search bar, to be calculated upon the current selected graph at the combo-box in the tool bar. For a more efficient search, you can use the search bar. You can access Help>Dictionary to see all invariants implemented with a brief definition for them. This Dictionary can also be seen on the wiki page.

Tree File

On the left-hand side of the project window is the file tree.

The tree is currently capable of deleting, opening and exporting

  • Delete: To delete, right-click on the desired file, a window will open with some options, select the delete option and a confirmation window will open. The software currently allows you to delete files and folders that are empty.
  • Open: To open, you can double-click on the file containing the graphs or right-click and select the open option.
  • Export: To export, right-click and move the mouse to export the graphs in the file. You can see more here

On exports, all the graphs contained in the file will be exported

Info

Displays a table with the results of the checked invariants at Invariants dock. It can be resized to better visualization of the big results.

Export options

Current graph

You can export the current graph by clicking on the square icon with an arrow in the right-hand corner of the toolbar next to the trash can, thus displaying the following export options:

  • Graph (.gml)
  • Graph6 (.g6)
  • Graph6 (.txt)
  • Image (.pdf)
  • Image (.png)
  • Latex Tikz (.latex)

All graphs

You can also export all the graphs at once, by going to the File Tree Dock and right-click on the file you wanna export and will apear a menu with the options of export, that can be:

  • Image (.pdf or .pdf)

Be caution it is recommended to be careful not to export files containing huge amounts of graphs, which could overload the save location with images and fill up the computer's memory.

  • LaTex (.tex)
  • graph6 (.g6)
  • xlsx When choosing export to .xlsx spreadsheet. A list of graphs (in graph6) will be exported along with selected invariants (numeric or booleans). Then the user can continue his analysis taking advantage of the features of the spreadsheet software.

Problems and Suggestions?

If you have noticed any unexpected behavior (bug) or want to suggest an improvement to the Graph Filter, please post a new issue in the project. This way we can maintain a good organizational flow of the software development.

To post a new issue is very simple.

  1. If you don't have a GitHub account yet, register here. It's very simple.
  2. After logging in, click here and choose Bug report or Suggestion for improvement. So describe your request.
  3. When you finish writing, remember to click Submit new issue (image below).

image

⚠️ **GitHub.com Fallback** ⚠️