import charite.christo.strap.StrapProtein; import charite.christo.protein.PDB_Parser; import charite.christo.protein.ProteinWriter1; import charite.christo.interfaces.ProteinWriter; import charite.christo.protein.ProteinParser; import charite.christo.ByteArray; import static java.lang.System.*; /* java DemoResidueSubset hs_EscherichiaColi.pdb Terminal parts of a protein can be cut off, providing the beginning and the end position of the segment of interest. The residues of interest are given as a String expression: "10-13". The residues do not need to be consecutive, and comma separated expressions are possible. For referring to pdb-residue number and pdb-chains use the Rasmol syntax: number-colon-chain. */ public class DemoResidueSubset { public static void main(String argv[]) { /* Usually only cAlpha atoms are read. Here we are also interested in side chain atoms. */ final StrapProtein p= StrapProtein.newInstance(new java.io.File(argv[0]),ProteinParser.SIDE_CHAIN_ATOMS); out.println("10-13 means residues 10,11,12,13"); /* The following expressions are equivalent: 10,11,12,13 or 10-12,13 */ /* For PDB structures you can also refere to the PDB-number and chain: 10:A-13:A */ p.setResidueSubset("10-13"); final ProteinWriter pw=new ProteinWriter1(); final long mode=ProteinWriter.PDB|ProteinWriter.ATOM_LINES|ProteinWriter.SIDE_CHAIN_ATOMS; final ByteArray sb=new ByteArray("Seq=").append(p.getResidueType()).append("\n").append(p.getResidueType()).append("\n"); pw.toText(p,null,mode,sb); out.println("\n\n"+sb); exit(0); } }