################################################
#The PPI network data is in ./PPI_network
#Standard perl is used. No extra lib is required.
#Most names of the variables represent their  real definition
#Part of the programs are a bit confused. It is mainly because of two reasons:
# 1. In the available PPI networks, nodes can connect themself.
# 2. The split function return an unexpected value.
# The two points oblige me to add a lot of confused things in the program.
################################################
# Most parameters have a default value, which can be changed by hand.
# The input and output of one program are on its top.
#################################################
#There are 6 perl programs here. The brief descriptions are the following:
#######
#1. read_PPI.pl       :read yeast_net|fly_net and create an index of the vertex
#2. coefficient.pl    :read yeast_protein_index|fly_protein_index and calculate the cluster coefficients
#                      meanwhile create the neighbour network
#3. k_core.pl         :read neighbour network and create the k-core
#4. V_Weight.pl       :calculate the edges density
#5. modified_weight.pl:modify the edges density
#6. cluster.pl        :clustering with the edges density/modified edges density
##################################################
#Notes:
#The basic algorithm is MCODE, except one change: On page 4 of the paper, they define v = k*d. I define v = d.
#The modified edges density incorporates the information of 1-degree nodes. The details can be seen in modified_weight.pl.
###########################################################
#The empty folders will contain the results.
#################################################
