Temat 7: Bazy danych

Wstecz; Ostatnia modyfikacja: 15.04.2015
  • Pobieranie danych biologicznych z publicznie dostępnych baz danych:
    • gotowy plik do pobrania (np. STRING - baza interakcji białko-białko)
    • serwer ftp (np. PATRIC)
    • URL API (np. NCBI, PDB)
    • crawling (np. drugs.com)
    • mechanizacja przeglądarki (biblioteka Selenium do Pythona) - potrzebna niekiedy, gdy dane są wyświetlane poprzez JavaScript.
  • Opisy URL API do NCBI: BLAST URL API, NCBI Entrez and for bacterial genomes.
  • Ćwiczenie 1: przedyskutuj możliwości pobrania danych biologicznych przydatnych w pracy licencjackiej
  • Ćwiczenie 2: porównaj zbiory sekwencji genomowych dla wybranych bakterii (np. E. coli, M. tuberculosis, B. anthracis) dostępne w bazach danych NCBI i PATRIC.
  • Ćwiczenie 3: napisz program (skrypt) do pobierania danych genomowych (sekwencje i adnotacje) dla wszystkich szczepów wybranego gatunku bakterii. Wykorzystaj bibliotekę urllib w Python.
  • Pobieranie sekwencji i adnotacji z NCBI dla wybranego id:
  • http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nuccore&id=NC_000962.3&rettype=fasta
    http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nuccore&id=NC_000962.3&rettype=ft
    http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nuccore&id=NC_000962.3&rettype=accnlist
    
  • Przykład, dla wybranego url (zautomatyzuj pobieranie dla wielu sekwencji)
  • import os, sys
    import socket
    
    try: # kompatybilnosc z Python 2 i 3
        from urllib.request import urlopen
    except ImportError:
        from urllib2 import urlopen
    
    
    url = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nuccore&id=NC_000962.3&rettype=ft"
    
    timeout = 30
    socket.setdefaulttimeout(timeout)
    online_fh = urlopen(url, timeout=timeout)
    lines = online_fh.readlines()
    online_fh.close()
    
    output_fh = open("output.ft", "w")
    for line in lines:
    	output_fh.write(line)
    output_fh.close()
    
  • Ćwiczenie 4dodaj do pliku .gitignore informację, żeby git nie synchronizował plików z danymi
  • Ćwiczenie 5 (opcjonalnie): wykorzystaj bibliotekę multiprocessing w celu zrównoleglenia procesu pobierania danych.
  • Kod z ćwiczeń (pobieranie struktur i fasta z PDB)