/* * BioJava development code * * This code may be freely distributed and modified under the * terms of the GNU Lesser General Public Licence. This should * be distributed with the code. If you do not have a copy, * see: * * http://www.gnu.org/copyleft/lesser.html * * Copyright for this code is held jointly by the individual * authors. These should be listed in @author doc comments. * * For more information on the BioJava project and its aims, * or to join the biojava-l mailing list, visit the home page * at: * * http://www.biojava.org/ * */ /* * AAindex.java */ package org.biojava.bio.proteomics.aaindex; import java.util.HashMap; import java.util.Map; import org.biojava.bio.seq.ProteinTools; import org.biojava.bio.symbol.Alphabet; import org.biojava.bio.symbol.SimpleSymbolPropertyTable; /** * Symbol property table based on the Amino Acid Index Database. Each * AAindex object represents a single entry of an AAindex1 file. * Each entry contains twenty numeric values for the twenty amino acids, e.g. * describing the hydrophobicity of an amino acid. To get this value for a * certain amino acid call the * {@link org.biojava.bio.symbol.SymbolPropertyTable#getDoubleValue(org.biojava.bio.symbol.Symbol)} * method with the appropriate symbol, e.g. * aaindex.getDoubleValue(ProteinTools.gln()). * The remaining data fields, i.e. object properties, are fully described in the * AAindex manual * . *

References:

*

AAindex web * site.

*

Kawashima, S. and Kanehisa, M.; AAindex: amino acid index database. * Nucleic Acids Res. 28, 374 (2000).

*

Tomii, K. and Kanehisa, M.; Analysis of amino acid indices and mutation * matrices for sequence comparison and structure prediction of proteins. * Protein Eng. 9, 27-36 (1996).

*

Nakai, K., Kidera, A., and Kanehisa, M.; Cluster analysis of amino acid * indices for prediction of protein structure and function. * Protein Eng. 2, 93-100 (1988)

* @author Martin Szugat * @version $Revision: 3602 $ */ public class AAindex extends SimpleSymbolPropertyTable { /* PUBLIC CONSTANTS */ /** * The alphabet of the symbol property table, that is * {@linkplain ProteinTools#getAlphabet() protein}. */ public static final Alphabet PROTEIN_ALPHABET = ProteinTools.getAlphabet(); /* PRIVATE FIELDS */ /** * The accession number of the AAindex entry. */ private String accessionNumber = null; /** * The description of the AAindex entry. */ private String description = null; /** * Literature database entry numbers for the AAindex entry. */ private String[] litdbEntryNumbers = null; /** * The authors of the article first explaining this AAindex entry. */ private String articleAuthors = null; /** * The title of the article. */ private String articleTitle = null; /** * The reference to the journal which published the article. */ private String journalReference = null; /** * User commments. */ private String comment = null; /** * A map of similar AAindex entries with correlation coefficients. */ private Map similarEntries = new HashMap(); /* PUBLIC CONSTRUCTOR */ /** * Initializes the AAindex symbol property table. * @param accessionNumber the AAindex accession number (same as the table * name) * @throws NullPointerException if accessionNumber is * null. */ public AAindex(String accessionNumber) throws NullPointerException { super(PROTEIN_ALPHABET, accessionNumber); if (accessionNumber == null) { throw new NullPointerException("accessionNumber is null."); } this.accessionNumber = accessionNumber; } /* PUBLIC PROPERTIES */ /** * Gets the accession number of the AAindex entry. * @return the accession number (same as * {@link org.biojava.bio.symbol.SymbolPropertyTable#getName()} */ public String accessionNumber() { return accessionNumber; } /** * Gets the names of the authors which first published an article about the * AAindex entry. * @return a list of names. May be null. */ public String getArticleAuthors() { return articleAuthors; } /** * Sets the names of the authors which first published an article about the * AAindex entry. * @param articleAuthors May be null. */ public void setArticleAuthors(String articleAuthors) { this.articleAuthors = articleAuthors; } /** * Gets the user comment for the AAindex entry. * @return free text. May be null. */ public String getComment() { return comment; } /** * Sets the user comment for the AAindex entry. * @param comment free text. May be null. */ public void setComment(String comment) { this.comment = comment; } /** * Gets the title of the article which describes the AAindex entry. * @return the article title. May be null. */ public String getArticleTitle() { return articleTitle; } /** * Sets the title of the article which describes the AAindex entry. * @param articleTitle the article title. May be null. */ public void setArticleTitle(String articleTitle) { this.articleTitle = articleTitle; } /** * Gets the description for the AAindex entry. * @return a human readable description. May be null. */ public String getDescription() { return description; } /** * Sets the description for the AAindex entry. * @param description a human readable description. * May be null. */ public void setDescription(String description) { this.description = description; } /** * Gets a reference to the journal which published the article about the * AAindex entry. * @return the journal reference. May be null. */ public String getJournalReference() { return journalReference; } /** * Sets a reference to the journal which published the article about the * AAindex entry. * @param journalReference the journal reference. May be null. */ public void setJournalReference(String journalReference) { this.journalReference = journalReference; } /** * Gets the list of literature database identifiers for the AAindex entry. * @return a list of identifiers. May be null. */ public String[] getLITDBEntryNumbers() { return (litdbEntryNumbers == null ? null : (String[]) litdbEntryNumbers.clone()); } /** * Sets the list of literature database identifiers for the AAindex entry. * @param litdbEntryNumbers a list of identifiers */ public void setLITDBEntryNumbers(String[] litdbEntryNumbers) { if (litdbEntryNumbers == null) { this.litdbEntryNumbers = null; } else { this.litdbEntryNumbers = (String[]) litdbEntryNumbers.clone(); } } /** * Returns a map with the names of similar AAindex entries and its * correlation coefficients. * @return a map which keys are the names of the similar AAindex entries and * which values are the corresponding correlation coefficients */ public Map similarEntries() { return similarEntries; } }