Additional file 2. This file contains the java source codes for network components identification. import java.io.*; import java.lang.*; import java.util.regex.*; import java.util.Arrays; public class Component { private static String REGEX="\\s{1,}"; private static String line; private static int nodnum=2273; private static int subnodnum=2273; private static int adjMatrix [][]=new int [nodnum][nodnum]; private static int nodes []=new int [nodnum]; private static int subnode []=new int [subnodnum]; private static int component []=new int [subnodnum]; private static int d []=new int [nodnum]; private static int T []=new int [nodnum]; private static int S []=new int [nodnum]; private static int Q []=new int [nodnum]; private static int startpoint; private static int u; private static Pattern pattern; public void inite() { for(int i=0;i0 && S[i]==0) { if(d[i]>d[u]+adjMatrix[u][i]) { d[i]=d[u]+adjMatrix[u][i]; T[i]=u; Q[i]=1; } } } } public int sumQ() { int sumq=0; for(int i=0;i=0 && k2>=0) { adjMatrix[from-1][to-1]=1; adjMatrix[to-1][from-1]=1; } line=in.readLine(); } in.close(); } catch(IOException ioe) { ioe.printStackTrace(); } int starts []=new int [subnodnum]; int ends []=new int [subnodnum]; for(int i=0;i0) { cp.step1(); cp.step2(); } if(component[i]==0) { m++; component[i]=m; } for(int j=0;j1 && component[j]==0) { component[j]=m; } } } for(int i=0;i