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; } }