import charite.christo.strap.*;
import static java.lang.System.*;
/*
  java   DemoProtein_aminoAcids
  This demo shows how protein objects are created.
*/
public class DemoProtein_aminoAcids {
    public static void main(String argv[]) {
        /* Make a protein instance. */
        /* The null in the constructor denotes that we do not need a reference to an StrapAlign object. */
        /* However, within the graphical program STRAP all proteins contain a reference to the StrapAlign object. */
        final StrapProtein p=new StrapProtein();
        /* give the protein a name */
        p.setName("myName");
        /* The  methods accepting strings as argument are convenient but slower than the byte array based methods */
        p.setResidueType("ASDFGHKL");
        /* Retrieve the residue type using the fast and inconvenient way */
        final byte[] resTyp=p.getResidueType();
        out.println("The sequence is="+new String(resTyp,0,p.countResidues()));
        /* NOTE: new String(resTyp) is not correct because the byte array  might exceed the number of residues. */
        /* The number of bytes converted to String must be limited by countResidues(). */
        /* The following is more convenient but more time consuming: */
        out.println("The sequence is "+p.getResidueTypeAsString());
        /* What are the coordinates in proteins defined only from  sequences? */
        /* Undefined fields of the  protein object are null. */
        /* In the present case the 3D coordinates are null. */
        out.println("The c-Alpha coordinates are not set. What will the get-method return?");
        out.println("p.getResidueCalpha()="+p.getResidueCalpha());
        exit(0);
    }
}