BioJava:CookBookItaliano:Proteomics:AAindex
Come posso analizzare le proprietà dei vari simboli di una sequenza peptidica utilizzano Amino Acid Index DataBase?
Per poter analizzare le proprietà dei vari residui che compongono la
sequenza amminoacidica, come ad esempio l’idrofobicità media, è
possibile utilizzare l’interfaccia
[http://www.biojava.org/docs/api14/org/biojava/bio/symbol/SymbolPropertyTable.html SymbolPropertyTable]
.
Vediamo come funziona: sappiamo che il database Amino Acid
Index contiene oltre 500
tipi differenti tavole di proprietà di amminoacidi e di coppie di
amminoacidi. Queste tavole sono reperibili a questo indirizzo ftp
aaindex1 o
http AAindex1 in
formato testo e possono essere caricate tramite la classe
AAindexStreamReader
. Utilizzando il metodo
[http://www.biojava.org/docs/api14/org/biojava/bio/symbol/SymbolPropertyTable.html#getDoubleValue(org.biojava.bio.symbol.Symbol) getDoubleValue]
della
[http://www.biojava.org/docs/api14/org/biojava/bio/symbol/SymbolPropertyTable.html SymbolPropertyTable]
che restituisce un valore numerico per un dato amminoacido, possiamo
recuperare il valore della proprietà corrispondente. Le tavole delle
proprietà possono essere gestite una dopo l’altra tramite il metodo
nextTable
, che restituisce per ogni tavola un oggetto di tipo
AAindex
che implementa l’interfaccia SymbolPropertyTable
. Per poter
effettuare un accesso di tipo casuale a dette tavole basta utilizzare
SimpleSymbolPropertyTableDB
inizializzandolo con un oggetto di tipo
AAindexStreamReader
.
L’esempio seguente mostra un metodo che calcola l’idrofobicità media di un gruppo di residui di una data sequenza peptidica (in questo esempio la sequenza contiene solamente 20 residui) sulla base della tavola CIDH920105 preso dall’indice aaindex1:
```java public class Test {
public static void main(String[] args) {
AAindexStreamReader aai = AAindexStreamReader(new FileReader("aaindex1"));
SimpleSymbolPropertyTableDB db = new SimpleSymbolPropertyTableDB(aai);
AAindex hydrophobicity = (AAindex) db.table("CIDH920105");
SymbolList symbols = ProteinTools.createProtein("ARNDCEQGHILKMFPSTWYV");
double hp = 0.0;
for (int i = 1; i <= symbols.length(); i++) {
hp += hydrophobicity.getDoubleValue(symbols.symbolAt(i));
}
System.out.println("Average hydrophobicity: " + Double.toString(hp / symbols.length()));
}
} ```