# CyFinder

## Requirements
- Java 11
- Maven
- Ant
- Eclipse IDE
- Cytoscape

## Instructions
1. First, import `subgraphFinder` to Eclipse. Right-click on the `build.xml` file, then select 'Ant build'. The output should be inside your `subgraphFinder` folder -> `finder` -> `3.0`. It should be a jar file named `finder-3.0.jar`. Move this file to your C drive: `C:\Users\<yourUser>\.m2\repository\edu\claflin\finder\3.0\finder-3.0.jar`.

2. Secondly, import your `CyFinder` folder to Eclipse. Right-click on the `pom.xml` -> select 'Maven install'. The output should be inside your `CyFinder` folder: `C:\Users\<yourUser>\CyFinder\target\CyFinder-3.1.0.jar`.

3. Then, in Cytoscape, click on 'Apps' -> 'App Store' -> 'Install from file' and search for the `CyFinder-3.1.0.jar` inside the `target` folder.

## Our Changes
- Implemented a code length threshold for the `optimize()` function and the `cluster()` function in the `InfomapImplementation.java` file.
- Added randomization to the `optimize()` function.
- Implemented the `fine_tuning()` function in the `InfomapImplementation.java` file.
- Added the feature of Directedness and a custom style. The `pom.xml` and the `CyFinderActivator.java` files were modified, and a `CyNetworkViewAddedListener.java` file was added to visualize the style.
