VL Algorithmische BioInformatik (19710) WS2013/2014 Woche 2 - Mittwoch Tim Conrad AG Medical Bioinformatics Institut für Mathematik & Informatik, Freie Universität Berlin Vorlesungsthemen Part 1: Background Basics (4) 1. The Nucleic Acid World 2. Protein Structure 3. Dealing with Databases Part 2: Sequence Alignments (3) 4. Producing and Analyzing Sequence Alignments 5. Pairwise Sequence Alignment and Database Searching 6. Patterns, Profiles, and Multiple Alignments Part 3: Evolutionary Processes (3) 7. Recovering Evolutionary History 8. Building Phylogenetic Trees Part 4: Genome Characteristics (4) 9. Revealing Genome Features 10. Gene Detection and Genome Annotation Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 Part 5: Secondary Structures (4) 11. Obtaining Secondary Structure from Sequence 12. Predicting Secondary Structures Part 6: Tertiary Structures (4) 13. Modeling Protein Structure 14. Analyzing Structure-Function Relationships Part 7: Cells and Organisms (8) 15. Proteome and Gene Expression Analysis 16. Clustering Methods and Statistics 17. Systems Biology Heute • „Praktische Bioinformatik“ • Voraussetzungen • Bekannte Datenformate • Austauschformate • Ontologien • Analyse durch Benutzen von • Websites • APIs • Programmatisch: BioJava • Datenbanken • Webservices Praktikum Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 Praktikum Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 Praktikum Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 Biologische Daten Zentriert um das “Zentrale Dogma” • • • • • Genomische DNA-Sequenzen mRNA/cDNA-Sequenzen Protein-Sequenzen 3D Protein-Strukturen Literatur (Funktionen) Biologische Datenbanken • Eine geordnete Sammlung von Daten und dazugehöriger Software zum Bearbeiten und Abfragen von Datensätzen. • Organisiert für einen bestimmten Zweck. • Die Datenbank ist unabhängig von der Benutzerschnittstele und kann auch mehrere verschidenene davon haben. • Z.B. kann die NCBI Protein-DB nach Proteinnamen oder -sequenz (mit BLAST) durchsucht werden. Datenbankeigenschaften • Relationale Datenbank • Tabellen • Relationen (Beziehungen) zwischen Tabellen • Versionskontrolle • Konsistenzprüfung • Mehrbenutzersystem mit Sicherheitsfunktionen Webseiten Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 Datenbanken im Internet • Biologische Datenbanken können oft über (mindestens) ein Webinterface abgefragt werden. • Die Zugriffe werden daher meistens durch einen Webserver organisiert. request query result web page User Web server Database server Herunterladen von Datenbanken • Fast alle biologischen Datenkbanken können in Form von Flatfiles heruntergeladen werden. • Eine lokale Kopie erleichert die Weiterverarbeitung der Daten. • Datenverarbeitung erfordert rudimentäre Programmierkenntnisse. Für die Verarbeitung von Textdateien ist z.B. Perl gut geeignet. Benutzung von biologischen DBs • Welche Datenbanken sollte ich benutzen? • Welche Art von Daten suche ich? • Sind die Daten der Datenbank für mich von Interesse? • Wie verlässlich sind die Daten? Einige Beispiele… Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 Praktischer Teil: Übersicht • Integrierte Systeme: z.B. NCBI (Proteine, Nukleotide, Gene, OMIM, etc.) • Proteindatenbanken, z.B. ExPASy (SwissProt + TrEMBL) • Proteinstrukturen: z. B. PDB and PDBsum • Stoffwechselwege: z.B. KEGG (Kyoto Encyclopedia of Genes and Genomes) Vorbemerkung • Auf den folgenden Folien werden mehrere DBs räsentiert. Sie müssen sich nicht alles merken, die meisten Datenbanken haben gute Hilfe-Funktionen • Versuchen Sie: • Die Gemeinsamkeiten verschiedener Datenbanken zu erkennen. • Die Hauptcharakteristika der einzelnen Datenbanken zu erfassen. • Die jeweiligen online Hilfe-Funktionen zu verstehen. • Die Datenbanken zu bewerten und vergleichen. EBI/NCBI/DDBJ • Diese 3 Datenbanken enthalten im wesentlichem die gleichen Daten - bei kleinen Unterschieden in Syntax und Format. • Dienen als Archiv aller Sequenzen (einzelne Gene, ESTs, komplette Genome etc.) aus/von: • • • • • Genomprojekten Sequenzierzentren Einzelnen Wissenschaftlern Literatur Patentämtern • Öffentliche (nicht-geheime) Daten werden täglich ausgetauscht • Datenbankgröße verdreifacht sich jährlich • Sequenzen aus mehr als 50,000 Spezien EBI/NCBI/DDBJ • Heterogen: Sequenzlänge, Genome, Fragmente, … • Minimale Sequenzlänge: 10 bp • Archiv: nichts wird gelöscht -> hohe Redundanz! • Enhalten Fehler: in Sequenzen, Annotationen, CDS Attributen, …. • Keine Konsistenz der Annotationen, die meist durch Datenerzeuger entsteht; sehr Unterschiedliche Qualität und Aktualität EBI/NCBI/DDBJ Enthalten auch „unerwartete“ Daten: FT FT FT FT FT FT FT source 1..124 /db_xref="taxon:4097" /organelle="plastid:chloroplast" /organism="Nicotiana tabacum" /isolate="Cuban Cahibo cigar, gift from President Fidel Castro" Oder: FT FT FT FT FT FT FT FT source 1..17084 /chromosome="complete mitochondrial genome" /db_xref="taxon:9267" /organelle="mitochondrion" /organism="Didelphis virginiana" /dev_stage="adult" /isolate="fresh road killed individual" /tissue_type="liver" GenBank • 168.335.396 Sequenzen, insgesamt 155.176.494.699 bp (Stand: 10/2013) • Die meisten (Bioinformatik-)Webseiten synchronisieren täglich mit GenBank • Biologen verwenden meist das Webinterface von GenBank. 21 GenBank - Wachstum Annotationen • Milliarden von Gs, As, Ts, and Cs wären ohne Annotationen nutzlos Sequences 24 Proteinsequenz Datenbanken • SWISS-PROT: entstanden 1986 (Amos Bairoch) http://www.expasy.org/sprot/ • TrEMBL: entstanden 1996; Ergänzung zu SWISS-PROT; Abgeleitet von EMBL CDS-Übersetzungen („proteomic“-Version von EMBL) • PIR-PSD: Protein Information Resources http://pir.georgetown.edu/ • Genpept: „proteomic“ Version von GenBank • Viele spezialisierte Proteindatenbanken für Proteinfamilien • Beispiele: AMSDb (Antibakterielle Peptide), GPCRDB (7 TM Rezeptoren), IMGT (Immunsystem), YPD (Hefe) etc. SWISS-PROT • Gemeinschaftsprojekt der SIB (CH) und EMBL/EBI (UK) • Manuell annotiert: nicht-redundant, mit Querverweisen, komplett dokumentiert • Wöchentliche Updates • Erhältlich von ca. 50 Servern weltweit • Zentrale bei ExPASy in Genf SWISS-PROT • • • • 541.561 Sequenzen 192.480.382 Aminosäuren 13.030 Spezies 2.345 Journals (Nature, Cell, PLoS ONE) • 342.138 Autoren (Stand 10/2013) TrEMBL (Translation of EMBL) • Es ist unmöglich, mit der Menge neu generierter Daten umzugehen UND die hohe Qualität von SWISS-PROT aufrecht zu erhalten. • Daher: TrEMBL, gegründet in 1996 • TrEMBL ist automatisch generiert (aus annotierten EMBL coding sequences (CDS)) und softwaregestützt annotiert. • Enthält alles, was nicht in SWISS-PROT ist. • SWISS-PROT + TrEMBL = alle bekannten Proteinsequenzen. Der (vereinfachte) Weg eines SWISS-PROT Eintrags Manche Daten werden nicht veröffentlicht!! (verzögert oder abgebrochen…) cDNAs, genomes, … EMBLnew EMBL TrEMBLnew TrEMBL CDS SWISS-PROT „Automatisch“ • Redundanzprüfung (merge) • Familienbestimmung (InterPro) • Annotation (computer) „Manuell“ • Redundanz (merge, Konflikte) • Annotation (manuell) • SWISS-PROT tools (macros…) • SWISS-PROT documentation • Medline • Databanken (MIM, MGD….) • Brain storming Einmal in SWISS-PROT, wird der Eintrag aus TrEMB gelöscht, ist aber noch in EMBL CDS: EMBL durch Autoren oder Genomprojekte vorgeschlagen (experimentell bewiesen oder algorithmisch vorhergesagt). . Genomdatenbanken • Enthalten Chromosomlokations-Informationen (mapping) und Nomenklaturen, sowie Links zu Sequenzdatenbanken. • Oft spezienspezifisch • Beispiele: MGI (Maus), FlyBase (Drosophila), SGD (Hefe), MaizeDB (Mais), SubtiList (B. subtilis). EMBL Genomdatenbanken http://www.ebi.ac.uk/genomes/ Strukturdatenbanken • Protein Data Bank (PDB) http://www.rcsb.org/pdb/ • Structural Classification of Proteins (SCOP) • http://scop.berkeley.edu • http://scop.mrc-lmb.cam.ac.uk/scop/ PDB • 3D-Strukturdaten von Makromolekülen • Daten meist durch NMR or Röntgenkristallographie erzeugt • 94.873 Strukturen (Stand: 10/2013) • Wenn eine Proteinstruktur bekannt ist … hier kann man sie ansehen! The PDB website Suchbeispiel: Insulin Was gefunden? Hilfe im Daten(bank)-Dschungel Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 “One-stop information centers” • Integration von vielen Datenquellen an einer Stelle • Z.B. GQuery – NCBI Global Cross-database Search • Integration von Literatur, 3D-Strukturdaten etc. Die NCBI-Daten (Auswahl) • Literatur (Bücher, Paper, Mendelian Inheritance in Man) • Nukleotide (PDB, GenBank und RefSeq) • Proteine (SwissProt, PIR, PRF, PDB, und Translation annotierter Coding Sequences in GenBank und RefSeq • Genome (alle, auch unvollständige) • 3D-Strukturen • Taxonomie (GenBank organisms) • SNPs (Single Nucleotide Polymorphisms) • Gene-orientierte Cluster • Konservierte Proteindomänen • 3D-Domänen • Marker- und Kartierungsdaten • Populationsstudien • Expressionsdaten Abfragen von biologische Datenbanken Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 Direkte Abfragen Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 Java Database Connectivity (JDBC) • Eine Schnittstelle zur Kommunikation mit relationalen Datenbanken • Ermöglicht Datenbankunabhängigen Java-Code • Datenbanken/Tabellen/Einträge als Java-Objekte • JDBC-Treiber • Eine Implementierung der JDBC-Schnittstelle • Kommuniziert mit einer bestimmten Datenbank Java JDBC calls JDBCJDBC JDBC Treiber driver driver Database command s Datenbank Database Database JDBC: Vorgehensweise 1. Datenbankverbindung herstellen 2. Datenbank abfragen (select/insert/update/delete) 3. Ergebnisse weiterverarbeiten 4. Datenbankverbindung schließen 1. Datenbankverbindungen erstellen • JDBC-Treiber laden • Class.forName("com.mysql.jdbc.Driver").newInstance(); • Verbindung herstellen • Connection conn = DriverManager.getConnection(url); • URL • Format: “jdbc:<subprotocol>:<subname>” • jdbc:mysql://128.100.53.33/myDatabase 2. Datenbankafragen a) Statement erstellen Statement stmt = conn.createStatement(); Objekt stmt sendet die Anfrage zur Datenbank Methoden executeQuery() für SELECT executeUpdate() für INSERT, UPDATE, DELETE b) SQL-Anfrage senden stmt.executeQuery(“SELECT …”); stmt.executeUpdate(“INSERT …”); 3. Ergebnisse verarbeiten • Ergebnis eines SELECT Statements (Zeilen/Spalten) wird als ResultSet-Objekt zurückgegeben. • ResultSet rs = stmt.executeQuery("SELECT * FROM users"); • Schrittweise durch die Ergebnisliste gehen • rs.next() • Spaltenwerte in einer Zeile abfragen • String userid = rs.getString(“userid”); • int type = rs.getInt(“type”); users Tabelle userid firstname lastname password type Bob Bob King cat 0 John John Smith pass 1 Beispiel: Tabelle 'users' ausgeben ResultSet rs = stmt.executeQuery("SELECT * FROM users"); while (rs.next()) { String userid = rs.getString(1); String firstname = rs.getString(“firstname”); String lastname = rs.getString(“lastname”); String password = rs.getString(4); int type = rs.getInt(“type”); System.out.println(userid + ” ” + firstname + ” ” + lastname + ” ” + password + ” ” + type); } users Tabelle userid firstname lastname password type Bob Bob King cat 0 John John Smith pass 1 BioWarehouse: An Integration of Multiple Public Domain Bioinformatics Databases http://biowarehouse.ai.sri.com/ 48 BioWarehouse: Zusammenführung heterogener biologischer Datentypen 49 ACHTUNG: Die freie PublicHouse Variante enthält nur einen Teil der Daten – manchmal werden unvollständige Ergebnisse übermittelt! 50 Achtung: Erst Denken, dann abfragen • Schnell schreibt man Anfragen, die… • … unsinnige Ergebnisse zurückgeben • … nie enden • Scotty an Captain Kirk: “Where going in circles, and at warp 6, we’re going mighty fast…” • Vermeidung: die Struktur der Datenbank verstehen • Tipps • Erst mit „count“ die Zahl der Ergebnisse abfragen, bevor man sie lädt • Bedenke: Je mehr Tabellen man verknüpft, desto länger dauert die Anfrage • Nicht-indizierte Spalten verlangsamen die Abfragen um bis zu Faktor 1000 Query: Return proteins from CMR with predicted molecular weight between 125 and 135 AND predicted pI between 4.7 and 7., and Count The Number Of Proteins Per Species select count(b.wid) as NumberOfProteins, d.Name as Species from BioSourceWIDProteinWID a, Protein b, BioSource c, Taxon d where a.ProteinWID=b.WID and a.BiosourceWID=c.WID and c.TaxonWID=d.WID and b.DataSetWID=5 and (b.MolecularWeightCalc >= 125 and b.MolecularWeightCalc <= 135) and (b.PICalc >= 4.7 and b.PICalc <= 7.7) group by Species order by NumberOfProteins desc, Species asc 52 Welche Daten gibt's in Ensembl? • • • • Genomsequenzen Gene/transcript/peptide models Externe Referenzen Mapped cDNAs, Peptide,Microarrays, BAC clones etc. • Andere Genomeigenschaften: cytogenetic bands, Marker, Repeats etc. • Vergleichende Daten: Orthologe Daten, Proteinfamilien, Genomalignments, Synthetische Regionen • Varianzdaten: SNPs • Regulationsdaten: “best guess” set of regulatory elements • Daten aus externen Quellen (DAS) 53 Das Ensembl Schema verstehen • Ensembl CORE schema • http://www.ensembl.org/info/docs/api/core/core_schema.html • Erste Adresse um herauszufinden, was die Tabellen enthalten • Um einen generellen Überblick über die Struktur zu bekommen, eignet sich die “Catalog Funktion” von WinSQL oder dem “MySQL Query Browser” 54 Das Ensembl Schema verstehen: die “Catalog” Funktion (generic query generator function) 55 Abrage: Die 100 ersten genetischen Marker des Humanen Chromosoms 19 select marker.marker_id, marker_map_location.chromosome_name, marker_map_location.position, map.map_name from ( (marker marker INNER JOIN marker_map_location marker_map_location ON marker.marker_id = marker_map_location.marker_id) INNER JOIN map map ON marker_map_location.map_id = map.map_id) where (marker_map_location.chromosome_name = '19') limit 1,100 Ensembls “Grund” Tabellen Fundamental tables assembly assembly_exception attrib_type coord_system dna dnac exon exon_stable_id exon_transcript gene gene_stable_id karyotype meta meta_coord prediction_exon prediction_transcript seq_region seq_region_attrib supporting_feature transcript transcript_attrib transcript_stable_id translation translation_attrib translation_stable_id Features and analyses alt_allele analysis analysis_description density_feature density_type dna_align_feature map marker marker_feature marker_map_location marker_synonym misc_attrib misc_feature misc_feature_misc_set misc_set prediction_transcript protein_align_feature protein_feature qtl qtl_feature qtl_synonym regulatory_factor regulatory_factor_coding regulatory_feature regulatory_feature_object regulatory_search_region repeat_consensus repeat_feature simple_feature ID Mapping (Map identifiers between releases) gene_archive mapping_session peptide_archive stable_id_event Exernal references (IDs to objects in other dbs) external_db external_synonym go_xref identity_xref object_xref xref Miscellaneous interpro 57 Webservices “Creating a Bioinformatics Nation” (Lincoln Stein, Cold Spring Harbor Laboratory ) Was ist ein Web Service? • Web Services: • Ein neuer Weg Drittsoftware oder vorhandene Systeme zu verwenden • Unerheblich wo die Software läuft, auf welcher Plattform sie läuft oder in welcher Sprache sie geschrieben wurde • Basiert auf XML in Internetprotokollen (HTTP, SMTP…) • Vorteile: • Einfache Integration • Schnellere Anwendungsentwicklung Web Services Modell Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 Web Service Standards • REST (Representational State Transfer) • Architekturtyp verbundener Systeme • SOAP (Simple Object Access Protocol) • Standard zur Nachrichtenübertragung zwischen Anwendungen • WSDL (Web Service Description Language) • Standard zur Beschreibung von Web Services und deren Eigenschaften WSDL • Beschreibt die Syntax und Zugriffssmöglichkeit von Web Services • Programmierer erstellen WSDLDateien, um ihre Web Services zu beschreiben und veröffentlichen diese im Internet SOAP • Simple Object Access Protocol • XML-Syntax zur Nachrichtenübertragung • HTTP-basiert • Bekannte Praxis: XML und HTTP wird zusammen verwendet • Sprach- und plattformunabhängige RPC-Implementierung SOAP-Beispiel <?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/" > <SOAPENV:Body> <getSequence xmlns="http://my.sequence.repository/embl/"> <sequence>embl:adw2sa</sequence> </getSequence> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Daten-Webservices • EMBL nucleotide sequence database • http://www.ebi.ac.uk/Tools/webservices/services/dbfetch • Ozeanographie-Daten • • Wasserstände, etc. http://opendap.co-ops.nos.noaa.gov/axis/ • Himmelsbilder • http://casjobs.sdss.org/ImgCutoutDR5/Imgcutout.asmx Data-Webservice am EBI fetchData(query, format, style) Hole einen Eintrag in einem Definierten Format und Stil. Argumente: query: die Eintragsidentifizierung im db:id Format. Beispiel: “UniProtKB:WAP_RAT” format: der Name des Formats. Für das standardformat kann “default” verwenden werden. style: der Name des Stils. “Default” auch hier für den Standardstil. Gibt zurück: Ein Array von Strings mit den Daten des Eintrags. Meist nur ein String mit allen Daten des Eintrags. Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 Service-Webservice • EBI ClustalW • Sequenzähnlichkeitsanalyse • http://www.ebi.ac.uk/Tools/webservices/services/msa/clustalw2_soap • Übersicht • https://www.biocatalogue.org/services/ Bioinformatics Web Services Projects • DAS (http://biodas.org/) • BioMoby (http://biomoby.org) • • Moby-S Semantic Moby • myGrid (http://www.mygrid.org.uk/) • • • SoapLab (http://industry.ebi.ac.uk/soaplab/) Talisman (http://www.ebi.ac.uk/talisman/index.html) Taverna (http://taverna.sourceforge.net/) Search (EB-Eye) Available Services @ EBI Data Retrieval (WSDbfetch) Ensembl (Martservice) Uniprot API Integr8 API Expression Profiler Protein families, motifs and domains (WSInterProScan) Ontologies (OntologyLookup) ID mapping (Picr, Martservice) Wise, PromoterWise, ScanWise Sequence alignment WSClustalW WSMuscle WSTCoffee Protein structure & function: (MSD API) Literature and text mining (Whatizit, CiteXplore) Sequence homology WSWUBlast WSFasta WSMPsrch WSScanPS DaliLite, Maxsprout ChEBI API Sequence analysis (WSEmboss) Verwendung eines Web Service (1) • Step 1: Obtain the WSDL • Generally at the webservice URL + ?wsdl e.g. http://<host>/axis/services/Calculator?wsdl • Use UDDI to discover WSDL location • Step 2: Generate stubs • Use WSDL2Java to create client stubs/bindings • e.g. java org.apache.axis.wsdl.WSDL2Java Calculator.wsdl generates: Calculator.java (interface) CalculatorService.java (service interface) CalculatorServiceLocator.java (service factory, implements CalculatorService.java) CalculatorServiceSoapBindingStub.java (stub for invoking service using SOAP, implements Calculator.java) Generated Client Stubs CalculatorService.java public interface CalculatorService extends Service { public String getCalculatorAddress(); public Calculator getCalculator() throws ServiceException; public Calculator getCalculator(URL portAddress) throws ServiceException; } Calculator.java public interface Calculator extends Remote { public int add(int i1, int i2) throws RemoteException; public int subtract(int i1, int i2) throws RemoteException; } Invoking a Web Service (2) Step 3: Write client code import Calculator.*; public class CalcClient { public static void main(String[] args) { try { CalculatorService service = new CalculatorServiceLocator(); Calculator calulator = service.getCalculator(); int res = calculator.add(10, 5); System.out.println("Result=" + res); } catch(Exception except) { except.printStackTrace(); } } } BioJava Tim Conrad, VL Algorithmische Bioinformatik, WS2013/2014 Was ist BioJava? • Eine Sammlung von Java-Objekten zur Repräsentation und Manipulation biologischer Daten • Kein Programm, eher eine Bibliothek • Open source (LGPL), verwendbar für jede – auch kommerzielle – Softwareentwicklung. -> “Nicht-viral” Was ist BioJava? • 1998 am EBI/Sanger von Matthew Pocock und Thomas Down gestartet • 25+ Entwickler, mit einer Kerngruppe von 5 Was ist BioJava? • http://www.biojava.org • Standard zum Lesen/Schreiben und Parsen von Informationen in verschiedenen Formaten wie FASTA, EMBL, Genbank, Swissprot etc. • Aber auch z.B. Sequenzstatistiken (frequencies), “order N statistics”, Motivsuchen (mit gewichteten Matrizen) Acknowledge: Lorenz Wernisch for biojava slides BioJava Routineprobleme der Bioinformatik Dateien einlesen: Genbank, Swissprot, EMBL, . . . Programmausgaben lesen: BLAST, FASTA, MEME, … Formate konvertieren Nach spezifische Eigenschaften filtern Nukleotide, Codons, Eigenschaften, Sequenzen zählen • Sequenzen, Annotationen und Eigenschaften anzeigen • Suche nach Motiven, Mustern und Sequenzähnlichlkeiten • • • • • • BioJava API • Documentation der API • http://www.biojava.org/docs/api15b/index.html • Enthält mehr Details zu Klassen und Methoden • Das “Kochbuch”: • http://biojava.org/wiki/BioJava:Cookbook Alphabet • Ein Alphabet für DNA, RNA, Proteine besteht aus Symbolen FiniteAlphabet dna = DNATools.getDNA(); Iterator dnaSymbols = dna.iterator(); while (dnaSymbols.hasNext()) { Symbol s = (Symbol) dnaSymbols.next(); System.out.println(s.getName()); } Und genauso: ProteinTools.getAlphabet() RNATools.getRNA(); SymbolList • SymbolList ist eine “Collection” von Symbolen. Grund-Klasse für Sequenzen SymbolList dna = DNATools.createDNA("atcggtcggctta"); String s = dna.seqString(); System.out.println(s); Sequenz • Eine Sequenz ist eine SymbolList mit einem zusätzlichen Namen Sequence dnaSeq = DNATools.createDNASequence("atcg", "motif23"); String name = dnaSeq.getName(); String s = dnaSeq.seqString(); Iterator it = dnaSeq.iterator(); while (it.hasNext()) { Symbol s = (Symbol)it.next(); System.out.println(s.getName()); } Annotationen • Strukturierte Information ist häufig z.B. im Swissprot-Eintrag zu finden DE DE GN OS OC OC FT FT FT Transcription factor BTEB1 (Krueppel-like factor 9). BTEB1 OR BTEB OR KLF9. Homo sapiens (Human). Eukaryota; Metazoa; Chordata; ... Mammalia; Eutheria; Primates; ... DOMAIN 84 116 Asp/Glu-rich (acidic). ZN_FING 143 167 C2H2-type 1. ZN_FING 173 197 C2H2-type 2. Annotations and Features • Annotationen liefern generelle Informationen zu einer Sequenz • DE Transcription factor BTEB1 • Features sind punkt- oder Abschnittsspezifische Annotationen • FT DOMAIN 84 116 Asp/Glu-rich (acidic). • FT ZN_FING 173 197 C2H2-type 2. d. h. sie haben eine Location Annotationen BufferedReader br = new BufferedReader(new FileReader(args[0])); SequenceIterator seqs = SeqIOTools.readEmbl(br); while(seqs.hasNext()) { Annotation anno = seqs.nextSequence().getAnnotation(); for (Iterator i = anno.keys().iterator(); i.hasNext(); ) { Object key = i.next(); System.out.println(key +" : "+ anno.getProperty(key)); } } Fasta Dateien einlesen String filename = args[0]; BufferedInputStream is = new BufferedInputStream( new FileInputStream(filename)); //get the appropriate Alphabet Alphabet alpha = AlphabetManager.alphabetForName(args[1]); //get a SequenceDB of all sequences in the file SequenceDB db = SeqIOTools.readFasta(is, alpha); Sequenz-Datenbanken • Eine Grundstruktur zur Sequenzspeicherung SequenceDB db = SeqIOTools.readFasta(is, alpha); SequenceIterator it = db.sequenceIterator(); while (it.hasNext()) { Sequence seq = it.nextSequence(); System.out.println(seq.seqString()); } Translate, Transcribe //create a DNA SymbolList SymbolList symL = DNATools.createDNA("atggccattgaatga"); //transcribe to RNA symL = RNATools.transcribe(symL); //translate to protein symL = RNATools.translate(symL); Mehr Informationen im Internet unter medicalbioinformatics.de/teaching Vielen Dank! Tim Conrad AG Medical Bioinformatics www. medicalbioinformatics.de Weitere Fragen