ONA – Zadanie zaliczeniowe 2 – operacje na plikach sgr

Naszym zadaniem będzie napisanie programu, który będzie przetwarzał strumienie danych genomicznych zapisane w plikach sgr . Są to bardzo proste pliki, które pozwalają opisywać zmienność parametru wzdłuż chromosomów. Każda linijka ma tylko 3 wartości:

chromosom pozycja wartość

Wartości są oddzielane znakiem tabluacji (“\t”), pozycja jest liczbą całkowitą dodatnią, a wartość jest liczbą zmiennoprzecinkową.

Zakładamy, że wartości pomiędzy punktami w pliku są odcinkami prostoliniowymi, co pozwala nam na podstawie pliku sgr, wyliczyć wartości dla wszystkich pozycji chromosomu.

Przykładowe pliki sgr dla dwóch sygnałów i dwóch filtrów są w pliku Zad2

Pliki te mogą być duże – np. większe niż dostępna pamięć, co oznacza, że nie możemy ich wczytać w całości do wektora.

Będziemy chcieli, żeby nasz program oferował następujące funkcje:

– Suma, różnica, iloczyn, iloraz – zwróć wynik operacji arytmetycznej na  dwóch sygnałach dla tych samych chromosomów. Zakładamy,  że na wejściu mamy dwa pliki, które opisują sygnał wzdłuż tych samych chromosomów, choć niekoniecznie w tych samych pozycjach. OPeracje są wykonywane “po pozycjach”. Zwracamy plik sgr, który opisuje funkcję wynikową (4 pkt)

– wygładzanie – przy pomocy średniej kroczącej o zadanej długości (w parach zasad), zwróć sygnał wygładzony (2 pkt)

– splot – Tym razem na wejściu bierzemy jeden plik sgr z sygnałem (wzdłuż chromosomów) i drugi plik sgr z wartościami funkcji filtra (np. filtr prostokątny, lub Gaussowski), wzdłuż sztucznego chromosomu o nazwie “filtr”. Wynikiem powinien być splot funkcji, czyli przefiltrowany sygnał 6  pkt)

– upraszczanie – dla zadanego pliku sgr wykryj, które punkty są niepotrzebne (tzn po ich usunięciu sygnał nie zmieni się) i zwróć sygnał pozbawiony tych linijek (3 pkt).

Rozwiązanie polega na napisani 7 funkcji, każda z nich powinna działać na 2 plikach (+ parametr szerokość dla wygładzania), wszystko w jednym pliku .py

Rozwiązania podpisane, z dopiskiem [ONA-2018-2] w temacie proszę wysyáć mailem do mnie, do 22. kwietnia 2018.

15 thoughts on “ONA – Zadanie zaliczeniowe 2 – operacje na plikach sgr”

  1. Czy pojedyńczy chromosom z pliku może zajmować więcej pamięci niż jest dostępne?

  2. Czy program ma pobierać parametry (np. nazwy plików) jak przy poprzednim zadaniu zaliczeniowymi?

    1. Nie musi pobierać ich z linii komend, ale funkcje, które Państwo implementują muszą być parametryzowane plikami wejściowymi i wyjściowymi.

  3. Czy pozycje w pliku zawsze są posortowane od najmniejszej do największej?
    Czy ostatnia podana pozycja dla danego chromosomu zawsze jest końcową czy czasem trzeba ją wyliczyć?

    1. Pozycje są zawsze posortowane. Możemy założyć, że ostatnia pozycja jest taka sama w różnych plikach dla tego samego chromosomu i jest podana (choć w rzeczywistych plikach tak być nie musi).

  4. Czy zapis:
    chr 1 1
    chr1 100 200
    chr1 200 300
    chr1 300 400

    po uproszczeniu powinien wygladać:
    chr1 1 1
    chr1 100 200
    chr1 300 400

  5. Czy upraszczanie powinniśmy wykonać na samym początku i kolejne funkcje wywoływać dla plików uproszczonych?

Leave a Reply to Ada Cancel reply

Your email address will not be published. Required fields are marked *