import charite.christo.strap.StrapProtein;
import static java.lang.System.*;
/*
java DemoProtein_gaps_advanced
It shows how residue positions of the gapped sequence are converted
to residue indices of the ungapped sequence and vice-versa.
*/
public class DemoProtein_gaps_advanced {
public static void main(String argv[]) {
final StrapProtein p= new StrapProtein();
p.setName("myName");
p.setGappedSequence("AS DFG");
final int nColumns=p.getMaxColumn()+1;
out.println("the gapped sequence has a length of "+nColumns);
final int nRes=p.countResidues();
out.println("the number of residues is "+nRes);
out.println();
out.println("getGappedSequence()="+p.getGappedSequenceAsString());
out.println();
out.println("You can obtain the gap and column for each residue");
out.println("In a sequence without gaps the residue gap is zero at each position and ");
out.println("the residue column equals to the residue index.");
out.println("The gap values indicate the amount of white space left from a residue.");
out.println("getResidueGap()="+concat(p.getResidueGap(),nRes));
out.println("getResidueColumn()="+concat(p.getResidueColumn(),nRes));
out.println("getResidueColumn(2)="+p.getResidueColumn(2));
out.println("return value of -1 in case of invalid indices: p.getResidueColumn(9)="+p.getResidueColumn(9));
out.println();
out.println("You can convert columns into residue indices");
out.println("But what happens when the specified position has a gap and not a letter");
out.println("as is the case for position 3?");
out.println("column2nextIndex(3)="+p.column2nextIndex(3));
out.println("column2thisOrPreviousIndex(3)="+p.column2thisOrPreviousIndex(3));
out.println("But p.column2index(3)="+p.column2index(3));
out.println();
out.println("You can get all values as an array:");
out.println("columns2indices()="+concat(p.columns2indices(),nColumns));
out.println("column2nextIndex()="+concat(p.columns2nextIndices(),nColumns));
}
/* print the first num fields of the array */
private static StringBuffer concat(int ii[],int num) {
final StringBuffer sb=new StringBuffer();
for(int i=0;i<Math.min(num,ii.length);i++) {
sb.append(ii[i]).append(" ");
}
return sb;
}
}