Пример #1
0
  /**
   * creates a virtual C-beta atom. this might be needed when working with GLY
   *
   * <p>thanks to Peter Lackner for a python template of this method.
   *
   * @param amino the amino acid for which a "virtual" CB atom should be calculated
   * @return a "virtual" CB atom
   * @throws StructureException
   */
  public static final Atom createVirtualCBAtom(AminoAcid amino) throws StructureException {

    AminoAcid ala = StandardAminoAcid.getAminoAcid("ALA");
    Atom aN = ala.getN();
    Atom aCA = ala.getCA();
    Atom aC = ala.getC();
    Atom aCB = ala.getCB();

    Atom[] arr1 = new Atom[3];
    arr1[0] = aN;
    arr1[1] = aCA;
    arr1[2] = aC;

    Atom[] arr2 = new Atom[3];
    arr2[0] = amino.getN();
    arr2[1] = amino.getCA();
    arr2[2] = amino.getC();

    // ok now we got the two arrays, do a SVD:

    SVDSuperimposer svd = new SVDSuperimposer(arr2, arr1);

    Matrix rotMatrix = svd.getRotation();
    Atom tranMatrix = svd.getTranslation();

    Calc.rotate(aCB, rotMatrix);

    Atom virtualCB = Calc.add(aCB, tranMatrix);
    virtualCB.setName("CB");
    virtualCB.setFullName(" CB ");

    return virtualCB;
  }
Пример #2
0
  @Test
  public void testHasAminoAtoms() {

    Atom CA = new AtomImpl();
    CA.setName("CA");
    CA.setElement(Element.C);
    CA.setPDBserial(1);
    Atom C = new AtomImpl();
    C.setName("C");
    C.setElement(Element.C);
    C.setPDBserial(2);
    Atom N = new AtomImpl();
    N.setName("N");
    N.setElement(Element.N);
    N.setPDBserial(3);
    Atom O = new AtomImpl();
    O.setName("O");
    O.setElement(Element.O);
    O.setPDBserial(4);
    Atom OXT = new AtomImpl();
    OXT.setName("OXT");
    OXT.setElement(Element.O);
    OXT.setPDBserial(5);

    Group g = new HetatomImpl();
    g.addAtom(CA);
    g.addAtom(C);
    g.addAtom(N);
    g.addAtom(O);

    assertTrue(g.hasAminoAtoms());

    g = new HetatomImpl();
    g.addAtom(CA);
    g.addAtom(C);
    g.addAtom(N);
    g.addAtom(O);
    g.addAtom(OXT);

    assertTrue(g.hasAminoAtoms());

    g = new AminoAcidImpl();
    g.addAtom(CA);
    g.addAtom(C);
    g.addAtom(N);
    g.addAtom(O);

    assertTrue(g.hasAminoAtoms());

    g = new HetatomImpl();
    g.addAtom(CA);
    g.addAtom(C);
    g.addAtom(N);
    assertFalse(g.hasAminoAtoms());

    g = new HetatomImpl();
    g.addAtom(CA);
    g.addAtom(C);
    g.addAtom(N);
    g.addAtom(OXT);

    assertFalse(g.hasAminoAtoms());
  }