WDI – zajęcia 6

Słowniki:
Rozgrzewka (najlepiej w ipythonie):

  • Stwórz pusty słownik. Zapoznaj się z funkcjami, jakie są dla niego dostępne. Dodaj do niego następujące elementy: pod kluczem 1 wartość 3, pod kluczem 5 -> 2, a pod “a” -> 4. Usuń jeden z elementów używając metody del, a drugi używając metody pop. Przypisz na pozostały element wartość 10.
  • Sprawdź, jak działają metody keys, values, items. Której z nich odpowiada zwykła iteracja pętlą for?

Continue reading “WDI – zajęcia 6”

WDI – zadanie zaliczeniowe 1

Sekwencjonowanie DNA w technologiach nowej generacji prowadzi do odczytania milionów krótkich sekwencji DNA zwanych odczytami. Często potrzeba odnaleźć pozycje takich odczytów w genomie, czyli zmapować je do genomu. Proces mapowania odczytów (sekwencji DNA) do genomu referencyjnego polega (w dużym uproszczeniu) na przypisaniu każdemu odczytowi współrzędnych genomowych n, m wskazujących odpowiednio chromosom oraz numer pary zasad w sekwencji tego chromosomu z genomu referencyjnego. Te współrzędne oznaczają miejsce z którego dany odczyt najprawdopodobniej został wygenerowany (chromosom oraz początkową pozycję na tym chromosomie). 
Continue reading “WDI – zadanie zaliczeniowe 1”

WDI – zajęcia 5

1. W pliku DNA.txt znajduje się fragment nici DNA człowieka. Znajdź liczbę wszystkich wystąpień sekwencji ACGT. Wypisz wszystkie pozycje, na których znajduje się ta sekwencja.

2. Napisz funkcję statystyki(nazwa_pliku), która dla danego pliku nazwa_pliku stworzy plik statystyka_nazwa_pliku, w którym zamieści linijkę z liczbą linii, liczbą słów, oraz informacją, którym znakiem w pliku jest znak ‘!’. Napisz funkcję sprawdz(nazwa_pliku), która sprawdzi, czy statystyka w pliku statystyka_nazwa_pliku jest aktualna.

3. (★) K-merami nazywamy sekwencje DNA (czyli sekwencje składające się z liter A,C,G,T) długości k. Dla pliku DNA.txt wypisz najczęściej występujący 4-mer.
Wskazówka:

  • Zacznij od wygenerowania listy wszystkich 4-merów.

4. W pliku HP1b.gff3 znajdują się dane o miejscach wiązania białka HP1b do nici DNA muszki owocowej. Znajdź średnią wartość sygnału dla chromosomu 2L na pozycjach zawartych między 1,000,000 a 5,000,000.

WDI – zajęcia 4

Zadania powtórkowe:

1. Napisz rekurencyjną funkcję check_sort(v), która sprawdzi, czy lista v jest posortowana (ściśle, rosnąco lub malejąco).

2. Weźmy funkcję f zdefiniowaną następująco:

def f(n):
    if n % 2 == 0:
        return n / 2
    else:
        return 3*n + 1

Napisz rekurencyjną funkcję collatz_steps(n), która zwróci dla zadanego n liczbę elementów ciągu n, f(n), f(f(n)), …, potrzebnych do osiągnięcia 1. Np.

collatz_steps(1) == 0
collatz_steps(4) == 2

3. Napisz 2 wersje (iteracyjną i rekurencyjną) funkcji incr_segment(v), która dla zadanej listy v zwróci jej najdłuższy rosnący segment (spójny kawałek).

4. (★) Napisz rekurencyjną funkcję rev_number(n), która dla danej liczby całkowitej n zwróci liczbę powstałą z n poprzez odwócenie porządku cyfr (np. rev_number(123)=321). Uwaga: chodzi o rozwiązanie używające wyłącznie operacji na liczbach całkowitych.

Operacje na napisach:

5. Używając maksymalnie trzech wywołań funkcji strip, rstrip, lstrip należy przekształcić:

  • ‘abcccbca’ w ‘ccc’
  • ‘bababa’ w ‘ab’

6. Zastąp spacje przez myślniki w napisie lorem ipsum dolor sit amet, consectetur Adipiscing elit . nunc sit amet ligula in nisi varius mattis nec a urna . phasellus tristique vehicula elit id imperdiet. lorem ipsum dolor sit amet , consectetur adipiscing Elit. Nunc orci libero, accumsan quis Cursus vel , pretium nec dui. Nunc lobortis mollis felis, at malesuada velit volutpat Id. Pellentesque Quis iaculis massa . vestibulum Commodo Egestas fringilla . proin quis justo nunc. Nam sed ultricies orci. curabitur adipiscing , Dolor vel rhoncus Accumsan , sapien tellus volutpat eros , At luctus mi augue sit Amet turpis . Aliquam sagittis, lacus id commodo volutpat , erat Justo auctor massa, in faucibus quam lectus et libero. curabitur laoreet Risus in urna aliquet Vel fringilla felis volutpat. morbi Suscipit purus Velit . “ używając:

  • funkcji replace
  • funkcji split i join

7. Napisz skrypt, który dokona korekty tekstu z poprzedniego ćwiczenia:

  • każde słowo rozpoczynające zdanie musi zaczynać się z dużej litery,
  • pozostałe słowa zaczynają się z małej litery,
  • sąsiednie słowa muszą być rozdzielone dokładnie jedną spacją,
  • znaki interpunkcyjne przylegają do poprzedzającego je słowa,
  • tekst rozpczyna się od słowa, a kończy kropką (należy usunąć zbędne białe znaki).

Zadania z kolokwiów:
Kolokwium 2012:
– zadanie 1 – segmenty (było na kartkówce)
Kolokwium poprawkowe 2012:
– zadanie 2 i 3 – quasindromy
– zadanie 1 – ceny