001/* 002 * BioJava development code 003 * 004 * This code may be freely distributed and modified under the 005 * terms of the GNU Lesser General Public Licence. This should 006 * be distributed with the code. If you do not have a copy, 007 * see: 008 * 009 * http://www.gnu.org/copyleft/lesser.html 010 * 011 * Copyright for this code is held jointly by the individual 012 * authors. These should be listed in @author doc comments. 013 * 014 * For more information on the BioJava project and its aims, 015 * or to join the biojava-l mailing list, visit the home page 016 * at: 017 * 018 * http://www.biojava.org/ 019 * 020 * Created on 05.03.2004 021 * @author Andreas Prlic 022 * 023 */ 024package org.biojava.nbio.structure; 025 026/** 027 * <p> 028 * A {@link Group} that represents an AminoAcid. 029 * </p> 030 * 031 * <p> 032 * In PDB files information on AminoAcids can be observed in the SEQRES and in the ATOM records. 033 * Since frequently coordinates for some of the amino acids are missing, during parsing of the PDB 034 * files the SEQRES and the ATOM records are aligned and a whenever possible the AminoAcid objects 035 * are combined. Access to the SEQRES and ATOM sequence is possible through the {@link Chain} object. 036 * It is possible to distinguish between SEQRES and ATOM derived AminoAcids by {@link #getRecordType()}. 037 * </p> 038 * 039 *<p> 040 * AminoAcid inherits most from {@link HetatomImpl }. Adds a few AminoAcid 041 * specific methods. 042 * </p> 043 * 044 * @author Andreas Prlic 045 * @since 1.4 046 * @version %I% %G% 047 * 048 */ 049public interface AminoAcid extends Group { 050 051 /** 052 * Field to distinguish AminoAcids that have been created from SEQRES records and ATOM records. 053 * 054 */ 055 public static final String ATOMRECORD = "ATOM"; 056 057 /** 058 * Field to distinguish AminoAcids that have been created from SEQRES records and ATOM records. 059 * 060 */ 061 public static final String SEQRESRECORD = "SEQRES"; 062 063 /** 064 * Get N atom. 065 * 066 * @return an Atom object or null if N atom does not exist 067 */ 068 public Atom getN() ; 069 070 /** 071 * Get CA atom. 072 * @return an Atom object or null if CA atom does not exist 073 */ 074 public Atom getCA() ; 075 076 /** 077 * Get C atom. 078 * @return an Atom object or null if C atom does not exist 079 */ 080 public Atom getC() ; 081 082 /** 083 * Get O atom. 084 * @return an Atom object or null if O atom does not exist 085 */ 086 public Atom getO() ; 087 088 /** 089 * Get CB atom. 090 * @return an Atom object or null if CB atom does not exist 091 */ 092 public Atom getCB() ; 093 094 /** 095 * Returns the name of the AA, in single letter code. 096 * 097 * @return a Character object representing the amino type value 098 * @see #setAminoType 099 */ 100 public Character getAminoType() ; 101 102 /** 103 * Set the name of the AA, in single letter code . 104 * 105 * @param aa a Character object specifying the amino type value 106 * @see #getAminoType 107 */ 108 public void setAminoType(Character aa) ; 109 110 /** 111 * Allows to distinguish between amino acids that are provided 112 * as ATOM records and a SEQRES records. 113 * @param recordName either ATOMRECORD or SEQRESRECORD 114 * @see #getRecordType() 115 */ 116 public void setRecordType(String recordName); 117 118 /** 119 * Allows to distinguish between amino acids that are provided 120 * as ATOM records and a SEQRES records. 121 * @return the origin of this amino acid (ATOM or SEQRES records) 122 * @see #setRecordType(String) 123 */ 124 public String getRecordType(); 125 126}