Hi all,

I need to do a translation using 2D arrays for my Superposition algorithm.

Translation:

I plan to use the CA(Alpha carbon) as my invariant point which is usually the 2nd line in the pdb.txt file. So how go about doing that? Must I use an orthogonal matrix? Or can I just subtract the coordinates of file1 from file 2 for X, Y & Z to get the rest of the ATOMS to move by that difference? You help is greatly appreciated! :) This program is in JAVA.

while ((text1 = br1.readLine()) != null)   {  //Read File Line By Line

    if(text1.trim().startsWith("ATOM")) {
        StringTokenizer s1 = new StringTokenizer(text1," ");

        int counter1=0;
        String line1="";

        while(s1.hasMoreTokens()) {

            String ss1 = s1.nextToken();
            counter1++;

            if(counter1 == 3){
                line1 += ss1;
                arrayM1[i] = ss1;
            }
        }

        coordinates1[i][0]= Double.parseDouble(text1.substring(30,38));//X
        coordinates1[i][1]= Double.parseDouble(text1.substring(38,46));//Y
        coordinates1[i][2]= Double.parseDouble(text1.substring(46,56));//Z



        i+=1;
    }//end of if


} //end of while.

A suggestion, test text1 string is long enough before doing:
coordinates1[2]= Double.parseDouble(text1.substring(46,56));

A suggestion, test text1 string is long enough before doing:
coordinates1[2]= Double.parseDouble(text1.substring(46,56));

Could you advice me how to do that? Thank you! :)

Use the String length method:
if(text1.length() < MaxSubStringIndexUsed) { // test string long enough
.. the string is too short, substring will fail
}

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.