Constrained Louvain method for DREAM Challenge on Module Identification for Diseases - SubChallenge 1
#Created by Raghvendra Mall on 12.03.2018. #All rights reserved
We describe in detail the pre-requisites for running the proposed Adaptive Refinement technique (in conjugation with any community detection method) for Disease Module Identification.
-
Matlab: https://www.mathworks.com/pricing-licensing/index.html?prodcode=ST&s_iid=main_pl_ST_tb
There are 4 license versions, your institution/company may already have licenses please check with them. A free trial may also be an option, see link at bottom of page, "Get a Product Trial" This does require a MathWorks account though, you may create one if you do not have one.
-
Statistics and Machine Learning Toolbox in Matlab:
The code is written in Matlab and requires the 'Statistics and Machine Learning Toolbox' package. If you do not have this package, Matlab offers a free trial (need to create a MathWorks account to receive the free trial) https://www.mathworks.com/programs/trials/trial_request.html?prodcode=ST&s_iid=solmain_trial_mlr_rb. We use this Toolbox for 'Linkage' clustering. ( https://www.mathworks.com/help/stats/linkage.html ).
The file you need to run is 'dream_merge_split.m'.
-
Louvain Method: Included, for a newer version see below
In order to automatically run the scripts we need to have the latest version of Louvain method (C++ Implementation). - This is available as Community_latest from Blondel et al. ( https://sites.google.com/site/findcommunities/newversion/community.tgz?attredirects=0 ) and is included with our code.
- If there is a newer version you would like to use, then delete the 'Community_latest' folder and move the new 'Community_latest' folder to the 'final_scripts' folder. - Before running anything in the 'final_scripts', perform >chmod -R 700 Community_latest, or anything else to get appropriate user permissions for your system.
- Compile the Louvain method by performing >make in 'Community_latest' folder within the 'final_scripts' folder. - Since the Louvain method is written in C++, a compatible gcc compiler is required, we recommend first trying the latest available in your OS distribution's repositories. -
A folder named 'subchallenge1' created in 'final_scripts' folder containing the network files to run on.
-
Python: You will need Python >=3.x for running the codes.
-
Change the filename variable in dream_merge_split.m to the filename of the network you want to run it on without the .txt extension. Run the 'dream_merge_split.m' file in Matlab.
- Examples: open dream_merge_split.m and in the file use: "filename = '1_ppi_anonym_v2'" To run on the first network or "filename = '2_ppi_anonym_v2'" To run on the 2nd or "filename = '3_signal_anonym_directed_v3'" 3rd or "filename = '4_coexpr_anonym_v2'" etc... or "filename = '5_cancer_anonym_v2'" or "filename = '6_homology_anonym_v2'" Without the double quotes " "
INFO:
-
We need to have internal quality metrics which are in 'Evaluation_Metrics' folder
- Consists of 'graph_metrics' folder
- Comprises 'conductance' folder
-
Results of Louvain method are produced in 'Louvain_Results'
-
Results of Constrained Louvain method is 'Final_Results'
- These are the results we used as Final Submission for the Challenge.
-
As output a plot is also generated indicating how confidence threshold effects modularity.
-
Additional Results of Multilevel Hierarchical Kernel Spectral Clustering in combination with our proposed adaptive technique are in folder AMHKSC_Results, these were generated by us earlier and are not generated by running the code as described here.