Zadanie domowe 3 (multiprocessing)
Wstecz; Ostatnia modyfikacja: 21.05.2015Napisz trzy programy, które dla zbioru przynajmniej 5 wybranych bakterii (w tym jednej bakterii referencyjnej) wykonują:
- make_dbs_multi.py - przygotowuje bazy danych BLAST
- run_blast_multi.py - uruchamia obliczenia programem blastp, wyszukując sekwencje genów kodujących białka z bakterii referencyjnej w bazach danych BLAST przygotowanych dla pozostałych bakterii.
- combine_results_multi.py - dla każdego genu, który był zapytaniem BLAST wyznacza liczbę bakterii, w których znajduje się wysoce podobna sekwencja. Przyjmij próg e-value jako $10^{-10}$, oraz PID (percent of identity) jako 50%
- bacteria.txt - plik z listą nazw bakterii
- genomes/ - folder z sekwencjami FASTA dla bakterii
- dbs/ - folder z bazami danych FASTA (wygenorowanymi przez makedbs_multi.py
- blasts/ - folder z outputem BLASTa
- results.csv - plik wynikami zbiorczymi
Wszystkie powyższe kroki powinny być wykonane przy wykorzystaniu biblioteki multiprocessing. Dodatkowy punkt jest za przetestowanie czasów działania i przygotowanie pliku porównującego działanie programu run_blast_multi.py, uruchomionego na k procesorach.
Do testów może przydać się komenda zabijająca wszystkie procesy z multi w nazwie, np.:
kill -9 `ps x | grep multi | awk '{print $1}'`
Do zdobycia jest 7p (1p+2p+3p [3 programy]) + 1p (punkt
bonusowy za porównanie czasów działania). Rozwiązanie (kod oraz spakowane sekwencje wejściowe bakterii) wyślij poprzez platformę moodle.mimuw.edu.pl. Termin: 3.6.2015.