public static void main(String[] args) { Point3d[] pts = SecondaryStructTools.obtain(NAME); if (smooth) pts = CS.getSmoothedPoints(pts); SecondaryStruct s = new SecondaryStruct(pts, smooth); File f = new File("data/smooth_" + NAME + ".pdb"); Chain c = new ChainImpl(); c.setChainID(NAME.split("\\.")[1]); try (PrintWriter pw = new PrintWriter(f)) { for (int i = 0; i < pts.length; i++) { Atom a = new AtomImpl(); a = new AtomImpl(); a.setName(CA_NAME); a.setAltLoc(' '); Group g = new AminoAcidImpl(); g.setPDBName(GROUP_NAME); g.addAtom(a); g.setResidueNumber(chainID, i + 1, null); c.addGroup(g); a.setX(pts[i].x); a.setY(pts[i].y); a.setZ(pts[i].z); pw.print(a.toPDB()); } } catch (FileNotFoundException e) { e.printStackTrace(); } // SecondaryStructureSequenceFeature sf = s.getSequenceFeature(); System.out.println("Start"); System.out.println(NAME); System.out.println(s.getAlphaLength()); try (Scanner scan = new Scanner(System.in)) { String in; while (!(in = scan.next()).equals("X")) { if (in.equals("g")) { int st = scan.nextInt(); System.out.println( SecondaryStructTools.distsToString(s.getRange(st - 1, scan.nextInt()), st)); } else if (in.equals("a")) s.printHelices(); else if (in.equals("b")) s.printStrands(); else if (in.equals("l")) System.out.println(s.length()); else if (in.equals("c")) s.printPoints(); // else if (in.equals("sf")) // for (int i = 0; i < s.length(); i++) // System.out.println((i + 1) + ":\t" + sf.toString(i)); else if (in.equals("test")) s.printVectors(s.getAlpha().getFeatures()); else if (in.equals("test1")) System.out.println("=(0,0,0)\t=" + s.normP + "*50\t=" + s.normX + "*50"); else if (in.equals("test2")) SecondaryStruct.printProjection(s.getAlphaNormProjection((byte) 0b00000000)); } } // sc.close(); }
/** * Makes dummy CA atoms at 1A intervals. Only the x coordinate increments by one at each * consecutive Atom. */ private Atom[] makeDummyCA(int len) { Atom[] ca1; Chain chain1 = new ChainImpl(); ca1 = new Atom[len]; for (int i = 0; i < len; i++) { ca1[i] = new AtomImpl(); ca1[i].setName("CA"); ca1[i].setCoords(new double[] {i, 0, 0}); Group aa = new AminoAcidImpl(); aa.setPDBName("GLY"); aa.setResidueNumber(ResidueNumber.fromString(i + "")); aa.addAtom(ca1[i]); chain1.addGroup(aa); } return ca1; }