import jp.dbcls.togows.soap.*;

public class KeggSearchDrugsBySubcomp {

    public static void main(String[] args) {
        try {
            String mol = get_mol(); 
            int offset = 1; 
            int limit = 5; 

            TogowsKeggService service = new TogowsKeggServiceLocator();
            TogowsKeggPort stub = service.getTogowsKeggPort();

            StructureAlignment[] result = stub.keggSearchDrugsBySubcomp(mol, offset, limit);
            for (int i = 0; i < result.length; i++) {
                System.out.println("target_id: " + result[i].getTarget_id());
                System.out.println("score: " + result[i].getScore());
                System.out.println("query_nodes:");
                int[] queryNodes = result[i].getQuery_nodes();
                for (int j = 0; j < queryNodes.length; j++) {
                    System.out.println("  " + queryNodes[j]);
                }
                System.out.println("target_nodes:");
                int[] targetNodes = result[i].getTarget_nodes();
                for (int j = 0; j < targetNodes.length; j++) {
                    System.out.println("  " + targetNodes[j]);
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static String get_mol() {
        // result of bget("-f m dr:D00201")
        StringBuffer sb = new StringBuffer();
        sb.append(" \n");
        sb.append(" \n");
        sb.append(" \n");
        sb.append(" 34 37  0  0  1  0  0  0  0  0999 V2000\n");
        sb.append("   26.1736  -17.5845    0.0000 C   0  0  1  0  0  0  0  0  0  0  0  0\n");
        sb.append("   26.1561  -18.9842    0.0000 C   0  0  2  0  0  0  0  0  0  0  0  0\n");
        sb.append("   24.9730  -16.8757    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   27.3977  -16.9051    0.0000 C   0  0  1  0  0  0  0  0  0  0  0  0\n");
        sb.append("   24.9438  -19.6696    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   27.3568  -19.6988    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   26.1385  -20.3782    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   23.7548  -17.5611    0.0000 C   0  0  1  0  0  0  0  0  0  0  0  0\n");
        sb.append("   28.5925  -17.6197    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   27.4152  -15.5052    0.0000 N   0  0  3  0  0  0  0  0  0  0  0  0\n");
        sb.append("   23.7431  -18.9608    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   24.9378  -21.0751    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   28.5750  -19.0194    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   27.4034  -21.0985    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   22.5424  -16.8582    0.0000 C   0  0  2  0  0  0  0  0  0  0  0  0\n");
        sb.append("   29.8166  -16.9403    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   28.6393  -14.8201    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   26.2146  -14.7849    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   22.5307  -19.6579    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   29.7756  -19.7340    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   21.3301  -17.5551    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   22.5482  -15.4585    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   21.3241  -18.9550    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   22.5307  -21.0635    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   30.9997  -19.0546    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   29.7581  -21.1396    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   20.1177  -16.8523    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   20.1177  -19.6579    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   18.8995  -17.5551    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   18.8995  -18.9550    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   20.1234  -21.0576    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   26.1619  -16.1788    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   23.7431  -16.1612    0.0000 H   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("   21.3300  -16.1582    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n");
        sb.append("  1  2  1  0     0  0\n");
        sb.append("  1  3  1  0     0  0\n");
        sb.append("  1  4  1  0     0  0\n");
        sb.append("  2  5  1  0     0  0\n");
        sb.append("  2  6  1  0     0  0\n");
        sb.append("  2  7  1  6     0  0\n");
        sb.append("  3  8  1  0     0  0\n");
        sb.append("  4  9  1  0     0  0\n");
        sb.append("  4 10  1  6     0  0\n");
        sb.append("  5 11  2  0     0  0\n");
        sb.append("  5 12  1  0     0  0\n");
        sb.append("  6 13  1  0     0  0\n");
        sb.append("  6 14  2  0     0  0\n");
        sb.append("  8 15  1  0     0  0\n");
        sb.append("  9 16  1  0     0  0\n");
        sb.append(" 10 17  1  0     0  0\n");
        sb.append(" 10 18  1  0     0  0\n");
        sb.append(" 11 19  1  0     0  0\n");
        sb.append(" 13 20  1  0     0  0\n");
        sb.append(" 15 21  1  0     0  0\n");
        sb.append(" 15 22  1  6     0  0\n");
        sb.append(" 19 23  1  0     0  0\n");
        sb.append(" 19 24  2  0     0  0\n");
        sb.append(" 20 25  1  0     0  0\n");
        sb.append(" 20 26  2  0     0  0\n");
        sb.append(" 21 27  2  0     0  0\n");
        sb.append(" 23 28  2  0     0  0\n");
        sb.append(" 27 29  1  0     0  0\n");
        sb.append(" 28 30  1  0     0  0\n");
        sb.append(" 28 31  1  0     0  0\n");
        sb.append("  8 11  1  0     0  0\n");
        sb.append("  9 13  2  0     0  0\n");
        sb.append(" 21 23  1  0     0  0\n");
        sb.append(" 29 30  2  0     0  0\n");
        sb.append("  1 32  1  6     0  0\n");
        sb.append("  8 33  1  6     0  0\n");
        sb.append(" 15 34  1  1     0  0\n");
        sb.append("M  END\n");
        return sb.toString();
    }
}
