Bioinformatyka: Wykład 2. Algorytm Smitha Watermana implementacja w języku Python
|
|
- Agata Włodarczyk
- 6 lat temu
- Przeglądów:
Transkrypt
1 Bioinformatyka: Wykład 2 Algorytm Smitha Watermana implementacja w języku Python
2 Przyrównanie sekwencji Algorytm Smitha-Watermana dla pary sekwencji P i Q o długościach odpowiednio M i N. Zbuduj macierz prostokątną H o wymiarze MxN Wypełnij macierz tak, że H[i,j] jest miarą podobieństwa między i- tym aminokwasem z P i j-tym aminokwasem z Q Przetwórz macierz, zaczynając od górnego lewego roku używając wzoru H [ i, j] = max k max k H [ i 1, j 1]+ H [ i, j] ( H [ i,k] GapPenalty( i, j,k) ) ( H [ k, j] GapPenalty( i, j,k) ) 0
3 Macierze podobieństwa aminokwasów Otrzymane z częstości obserwowanych mutacji M ij = a log 2 f ( A A ) i j ( ) ( )! " # $ # f A f A $ % i j & # Matrix made by matblas from blosum62.iij # * column uses minimum score # BLOSUM Clustered Scoring Matrix in 1/2 Bit Units # Blocks Database = /data/blocks_5.0/blocks.dat # Cluster Percentage: >= 62 # Entropy = , Expected =
4 A R N D C Q E G H I L K M F P S T W Y V A R N D C Q E G H I L K M F P S T W Y V
5 R Q E K D N H T S A G Y W F I L V M C P R Q E K D N H T S A G Y W F I L V M C P
6 A R N D C Q E G H I L K M F P S T W Y V A R N D C Q E G H I L K M F P S T W Y V
7 Przyrównanie sekwencji Algorytm Smitha-Watermana dla pary sekwencji P i Q o długościach odpowiednio M i N. Zbuduj macierz prostokątną H o wymiarze MxN Wypełnij macierz tak, że H[i,j] jest miarą podobieństwa między i- tym aminokwasem z P i j-tym aminokwasem z Q Przetwórz macierz, zaczynając od górnego lewego roku używając wzoru H [ i, j] = max k max k H [ i 1, j 1]+ H [ i, j] ( H [ i,k] GapPenalty( i, j,k) ) ( H [ k, j] GapPenalty( i, j,k) ) 0
8 Przyrównanie sekwencji Algorytm Smitha-Watermana dla pary sekwencji P i Q o długościach odpowiednio M i N. Zbuduj macierz prostokątną H o wymiarze MxN Wypełnij macierz tak, że H[i,j] jest miarą podobieństwa między i- tym aminokwasem z P i j-tym aminokwasem z Q Przetwórz macierz, zaczynając od górnego lewego roku używając wzoru H i 1, j 1!! H [ i, j] = max k max k [ ]+ H [ i, j] H [ i,k] GapPenalty i, j, k H [ k, j] GapPenalty i, j, k ( ( )) ( ) ( ) 0 Znajdź wartość maksymalną Znajdź ścieżkę wiodącą od wartości 0 do wartości maksymalnej Znaleziona ścieżka jest najlepszym przyrównaniem lokalnym sekwencji P i Q
9 Algorytm Smitha Watermana Podany wzór jest ogólny jest prawdziwy dla dowolnej funkcji GapPenalty() Algorytm ma złożoność obliczeniową O(MxNx(M+N)) - dla każdego z MxN elementów macierzy musimy wyznaczyć maksimum funkcji dla kolumny i dla wiersza H [ i, j] = max k max k H [ i 1, j 1]+ H [ i, j] ( H [ i,k] GapPenalty( i, j,k) ) ( H [ k, j] GapPenalty( i, j,k) ) 0
10 Algorytm Smitha Watermana Jeżeli funkcja GapPenalty() ma postać: GapPenalty() = GapOpening + k*gapextension gdzie k jest długością przerwy Istnieje wersja algorytmu ze złożonością obliczeniową O(MxN), zaproponowana przez Osamu Gotoha (1982) H [ i, j] = max H [ i 1, j 1]+ H i, j [ ] [ ] E i, j F i, j 0 [ ] E[ i, j] = max F[ i, j] = max E[ i, j 1] GapExt H [ i, j 1] GapOpen GapExt F[ i 1, j] GapExt H [ i 1, j] GapOpen GapExt
11 Algorytm SWalign w Pythonie Założenia implementacja wersji podstawowej - wersja Gotoh samodzielnie wczytujemy: macierz podobieństwa dwie sekwencje obliczamy algorytmem SW punktację - jeżeli jest powyżej poziomu odcięcia to wołamy algorytm raz jeszcze, w wersji z wyliczaniem przyrównania
12 Algorytm SWalign w Pythonie Funkcja w Pythonie implementująca taką sekwencję działań def SW_align(Matrix_name,s1_name,s2_name,GapOpen,GapExt,Threshold): result = read_blosum(matrix_name) SimMat = result[2] RevIndx = result[1] S1 = read_fasta(s1_name) S2 = read_fasta(s2_name) Score = SW_align_simple(S1,S2,SimMat,RevIndx,GapOpen,GapExt) if Score > Threshold: tmp = SW_align_trace(S1,S2,SimMat,RevIndx,GapOpen,GapExt) Ftrace = SW_build_traceback(tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],S1,S2) Alignment = SW_build_alignment(Ftrace,S1,S2) return(alignment) else : print(' Below threshold (',Threshold,')') return()
13 Algorytm SWalign w Pythonie Funkcja w Pythonie implementująca taką sekwencję działań def SW_align(Matrix_name,s1_name,s2_name,GapOpen,GapExt,Threshold): result = read_blosum(matrix_name) SimMat = result[2] RevIndx = result[1] S1 = read_fasta(s1_name) S2 = read_fasta(s2_name) Score = SW_align_simple(S1,S2,SimMat,RevIndx,GapOpen,GapExt) if Score > Threshold: tmp = SW_align_trace(S1,S2,SimMat,RevIndx,GapOpen,GapExt) Ftrace = SW_build_traceback(tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],S1,S2) Alignment = SW_build_alignment(Ftrace,S1,S2) return(alignment) else : print(' Below threshold (',Threshold,')') return()
14 Algorytm SWalign w Pythonie. Funkcja w Pythonie implementująca taką sekwencję działań def SW_align(Matrix_name,s1_name,s2_name,GapOpen,GapExt,Threshold): result = read_blosum(matrix_name) SimMat = result[2] RevIndx = result[1] S1 = read_fasta(s1_name) S2 = read_fasta(s2_name) Score = SW_align_simple(S1,S2,SimMat,RevIndx,GapOpen,GapExt) if Score > Threshold: tmp = SW_align_trace(S1,S2,SimMat,RevIndx,GapOpen,GapExt) Ftrace = SW_build_traceback(tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],S1,S2) Alignment = SW_build_alignment(Ftrace,S1,S2) return(alignment) else : print(' Below threshold (',Threshold,')') return()
15 Algorytm SWalign w Pythonie. Funkcja w Pythonie implementująca taką sekwencję działań def SW_align(Matrix_name,s1_name,s2_name,GapOpen,GapExt,Threshold): result = read_blosum(matrix_name) SimMat = result[2] RevIndx = result[1] S1 = read_fasta(s1_name) S2 = read_fasta(s2_name) Score = SW_align_simple(S1,S2,SimMat,RevIndx,GapOpen,GapExt) if Score > Threshold: tmp = SW_align_trace(S1,S2,SimMat,RevIndx,GapOpen,GapExt) Ftrace = SW_build_traceback(tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],S1,S2) Alignment = SW_build_alignment(Ftrace,S1,S2) return(alignment) else : print(' Below threshold (',Threshold,')') return()
16 Algorytm SWalign w Pythonie. Funkcja w Pythonie implementująca taką sekwencję działań def SW_align(Matrix_name,s1_name,s2_name,GapOpen,GapExt,Threshold): result = read_blosum(matrix_name) SimMat = result[2] RevIndx = result[1] S1 = read_fasta(s1_name) S2 = read_fasta(s2_name) Score = SW_align_simple(S1,S2,SimMat,RevIndx,GapOpen,GapExt) if Score > Threshold: tmp = SW_align_trace(S1,S2,SimMat,RevIndx,GapOpen,GapExt) Ftrace = SW_build_traceback(tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],S1,S2) Alignment = SW_build_alignment(Ftrace,S1,S2) return(alignment) else : print(' Below threshold (',Threshold,')') return()
17 Algorytm SWalign w Pythonie. Funkcja w Pythonie implementująca taką sekwencję działań def SW_align(Matrix_name,s1_name,s2_name,GapOpen,GapExt,Threshold): result = read_blosum(matrix_name) SimMat = result[2] RevIndx = result[1] S1 = read_fasta(s1_name) S2 = read_fasta(s2_name) Score = SW_align_simple(S1,S2,SimMat,RevIndx,GapOpen,GapExt) if Score > Threshold: tmp = SW_align_trace(S1,S2,SimMat,RevIndx,GapOpen,GapExt) Ftrace = SW_build_traceback(tmp[0],tmp[1],tmp[2],tmp[3],tmp[4],S1,S2) Alignment = SW_build_alignment(Ftrace,S1,S2) return(alignment) else : print(' Below threshold (',Threshold,')') return()
18 read_blosum() Funkcje pomocnicze # Matrix made by matblas from blosum62.iij # * column uses minimum score # BLOSUM Clustered Scoring Matrix in 1/2 Bit Units # Blocks Database = /data/blocks_5.0/blocks.dat # Cluster Percentage: >= 62 # Entropy = , Expected = A R N D C Q E G H I L K M F P S T W Y V B Z X * A R N ~~~~ Y V B Z X *
19 Funkcje pomocnicze def read_blosum(name): Blosum_file = open(name,'r') MyMatrix=[] line_count =0 row='' header='' blosum = numpy.zeros((24,24)) revindx={} indx={} return(result)
20 Funkcje pomocnicze def read_blosum(name): Blosum_file = open(name,'r') MyMatrix=[] line_count =0 row='' header='' blosum = numpy.zeros((24,24)) revindx={} indx={} return(result) otwieranie pliku deklaracja listy użycie modułu numpy
21 Funkcje pomocnicze def read_blosum(name): for line in Blosum_file: if line[0]!= '#': line_count += 1 if line_count == 1: header = line.strip('\n') hindex=header.split() indx={i : hindex[i] for i in range(0,len(hindex))} for i,v in indx.items(): revindx[v] = i else: row = line.rstrip('\n') CurrAA = row[0] row_items=row.split() for i in range(1,len(row_items)): blosum[line_count-2,i-1]=row_items[i] result = [indx,revindx,blosum] return(result)
22 Funkcje pomocnicze def read_blosum(name): for line in Blosum_file: if line[0]!= '#': line_count += 1 if line_count == 1: header = line.strip('\n') hindex=header.split() indx={i : hindex[i] for i in range(0,len(hindex))} for i,v in indx.items(): revindx[v] = i else: row = line.rstrip('\n') CurrAA = row[0] row_items=row.split() for i in range(1,len(row_items)): blosum[line_count-2,i-1]=row_items[i] result = [indx,revindx,blosum] return(result) Czytanie z pliku linia po linii
23 Funkcje pomocnicze def read_blosum(name): for line in Blosum_file: if line[0]!= '#': line_count += 1 if line_count == 1: header = line.strip('\n') hindex=header.split() indx={i : hindex[i] for i in range(0,len(hindex))} for i,v in indx.items(): revindx[v] = i else: row = line.rstrip('\n') CurrAA = row[0] row_items=row.split() for i in range(1,len(row_items)): blosum[line_count-2,i-1]=row_items[i] result = [indx,revindx,blosum] return(result)
24 Funkcje pomocnicze def read_blosum(name): for line in Blosum_file: if line[0]!= '#': line_count += 1 if line_count == 1: header = line.strip('\n') hindex=header.split() indx={i : hindex[i] for i in range(0,len(hindex))} for i,v in indx.items(): revindx[v] = i else: row = line.rstrip('\n') CurrAA = row[0] row_items=row.split() for i in range(1,len(row_items)): blosum[line_count-2,i-1]=row_items[i] result = [indx,revindx,blosum] return(result) Wszystko jest obiektem
25 Funkcje pomocnicze def read_blosum(name): revindx={} indx={} for line in Blosum_file: if line[0]!= '#': header = line.strip('\n') hindex=header.split() indx={i : hindex[i] for i in range(0,len(hindex))} for i,v in indx.items(): revindx[v] = i else: row = line.rstrip('\n') CurrAA = row[0] row_items=row.split() for i in range(1,len(row_items)): blosum[line_count-2,i-1]=row_items[i] result = [indx,revindx,blosum] return(result) Słownik utworzenie wypełenie
26 Funkcje pomocnicze def read_blosum(name): revindx={} indx={} for line in Blosum_file: if line[0]!= '#': header = line.strip('\n') hindex=header.split() indx={i : hindex[i] for i in range(0,len(hindex))} for i,v in indx.items(): revindx[v] = i else: row = line.rstrip('\n') CurrAA = row[0] row_items=row.split() for i in range(1,len(row_items)): blosum[line_count-2,i-1]=row_items[i] result = [indx,revindx,blosum] return(result) Słownik utworzenie wypełenie
27 Funkcje pomocnicze def read_blosum(name): revindx={} indx={} for line in Blosum_file: if line[0]!= '#': header = line.strip('\n') hindex=header.split() indx={i : hindex[i] for i in range(0,len(hindex))} for i,v in indx.items(): revindx[v] = i else: row = line.rstrip('\n') CurrAA = row[0] row_items=row.split() for i in range(1,len(row_items)): blosum[line_count-2,i-1]=row_items[i] result = [indx,revindx,blosum] return(result) Słownik utworzenie wypełenie
28 Funkcje pomocnicze def read_blosum(name): Słownik revindx={} utworzenie indx={} wypełenie for line in Blosum_file: if line[0]!= '#': odwołanie header = line.strip('\n') hindex=header.split() indx={i : hindex[i] for i in range(0,len(hindex))} for i,v in indx.items(): revindx[v] = i else: row = line.rstrip('\n') CurrAA = row[0] row_items=row.split() for i in range(1,len(row_items)): blosum[line_count-2,i-1]=row_items[i] result = [indx,revindx,blosum] return(result)
29 Funkcje pomocnicze def read_fasta(name): Fasta_file = open(name,'r') MySeq='' first_line=fasta_file.readline() if first_line[0] == '>': #print('header found') for line in Fasta_file: MySeq=MySeq+line.rstrip('\n') Fasta_file.close() return(myseq) >sp P52789 HXK2_HUMAN HEXOKINASE, TYPE II (EC ) (HK II) (MUSCLE FORM HEXOKINASE) - Homo sapiens (Human). MIASHLLAYFFTELNHDQVQKVDQYLYHMRLSDETLLEISKRFRKEMEKG LGATTHPTAAVKMLPTFVRSTPDGTEHGEFLALDLGGTNFRVLWVKVTDN GLQKVEMENQIYAIPEDIMRGSGTQLFDHIAECLANFMDKLQIKDKKLPL
30 Problem Zmodyfikuj funkcję read_fasta() tak aby mogła wczytać plik w formacie FASTA zawierający dowolną liczbę sekwencji. Wynikiem powinny być dwie listy: Lista nagłówków Lista sekwencji >sp P52789 HXK2_HUMAN HEXOKINASE, TYPE II (EC ) (HK II) (MUSCLE FORM HEXOKINASE) - Homo sapiens (Human). MIASHLLAYFFTELNHDQVQKVDQYLYHMRLSDETLLEISKRFRKEMEKG LGATTHPTAAVKMLPTFVRSTPDGTEHGEFLALDLGGTNFRVLWVKVTDN GLQKVEMENQIYAIPEDIMRGSGTQLFDHIAECLANFMDKLQIKDKKLPL! >sp P52790 HXK3_HUMAN HEXOKINASE TYPE III (EC ) (HK III) - Homo sapiens (Human). MDSIGSSGLRQGEETLSCSEEGLPGPSDSSELVQECLQQFKVTRAQLQQI QASLLGSMEQALRGQASPAPAVRMLPTYVGSTPHGTEQGDFVVLELGATG
31 Przyrównanie sekwencji Algorytm Smitha-Watermana dla pary sekwencji P i Q o długościach odpowiednio M i N. Zbuduj macierz prostokątną H o wymiarze MxN Wypełnij macierz tak, że H[i,j] jest miarą podobieństwa między i- tym aminokwasem z P i j-tym aminokwasem z Q Przetwórz macierz, zaczynając od górnego lewego roku używając wzoru H [ i, j] = max k max k H [ i 1, j 1]+ H [ i, j] ( H [ i,k] GapPenalty( i, j,k) ) ( H [ k, j] GapPenalty( i, j,k) ) 0
32 SW_align_simple MIAAQLLAY MIAAQEDLLAY MIAAQ--LLAY MIAAQEDLLAY H [ i, j] = max k max k H [ i 1, j 1]+ H [ i, j] H [ i,k] GapPenalty i, j, k H [ k, j] GapPenalty i, j, k ( ) ( ) ( ) ( ) 0 _ M I A A Q E D L L A Y -[[ ] M[ ] I[ ] A[ ] A[ ] Q[ ] L[ ] L[ ] A[ ] Y[ ]]
33 SW_align_simple MIAAQLLAY MIAAQEDLLAY MIAAQ--LLAY MIAAQEDLLAY H [ i, j] = max k max k H [ i 1, j 1]+ H [ i, j] H [ i,k] GapPenalty i, j, k H [ k, j] GapPenalty i, j, k ( ( )) ( ) ( ) 0 _ M I A A Q E D L L A Y -[[ ] M[ ] I[ ] A[ ] A[ ] Q[ ] L[ ] L[ ] A[ ] Y[ ]]
34 SW_align_simple max{ H[i-1,j-1]+Blosum62[E,Q]=6+2 = 8 max(h[i,k]-gapopen-(j-k)*gapext) = =11 max(h[i,k]-gapopen-(j-k)*gapext) = =-6 0 max(0,8,11,-6) = 11 _ M I A A Q E D L L A Y -[[ ] M[ ] I[ ] A[ ] A[ ] Q[ ] L[ ] L[ ] A[ ] Y[ ]]
35 SW_align_simple max{ H[i-1,j-1]+Blosum62[E,Q]=4-2 = 2 max(h[i,k]-gapopen-(j-k)*gapext) = =9 max(h[i,k]-gapopen-(j-k)*gapext) = =-8 0 max(0,2,9,-8) = 9 _ M I A A Q E D L L A Y -[[ ] M[ ] I[ ] A[ ] A[ ] Q[ ] L[ ] L[ ] A[ ] Y[ ]]
36 SW_align_simple max{ H[i-1,j-1]+Blosum62[E,Q]=4-2 = 2 max(h[i,k]-gapopen-(j-k)*gapext) = =9 max(h[i,k]-gapopen-(j-k)*gapext) = =-8 0 max(0,2,9,-8) = 9 _ M I A A Q E D L L A Y -[[ ] M[ ] I[ ] A[ ] A[ ] Q[ ] L[ ] L[ ] A[ ] Y[ ]]
37 SW_align_simple import numpy import copy import sys! def SW_align_simple(s1,s2,SimMat,RevIndx,GapOpen,GapExt): # Version without traceback # Create matrices H, E, F dim1=len(s1)+1 dim2=len(s2)+1 H = numpy.zeros((dim1,dim2)) E = numpy.zeros(dim1) F = numpy.zeros(dim2) MaxScore, MaxI, MaxJ, RowStart, ColStart = 0, 0, 0, 0, 0
38 SW_align_simple def SW_align_simple(s1,s2,SimMat,RevIndx,GapOpen,GapExt): # Version without traceback # Create matrices H, E, F dim1=len(s1)+1 dim2=len(s2)+1 H = numpy.zeros((dim1,dim2)) E = numpy.zeros(dim1) F = numpy.zeros(dim2) MaxScore, MaxI, MaxJ, RowStart, ColStart = 0, 0, 0, 0, 0! #Fill matrix H for i in range(1,dim1): for j in range(1,dim2): H[i,j] = SimMat[RevIndx[s1[i-1]],RevIndx[s2[j-1]]]!
39 SW_align_simple def SW_align_simple(s1,s2,SimMat,RevIndx,GapOpen,GapExt): # Version without traceback # Create matrices H, E, F dim1=len(s1)+1 Słownik dim2=len(s2)+1 H = numpy.zeros((dim1,dim2)) odwołanie E = numpy.zeros(dim1) F = numpy.zeros(dim2) MaxScore, MaxI, MaxJ, RowStart, ColStart = 0, 0, 0, 0, 0!! #Fill matrix H for i in range(1,dim1): for j in range(1,dim2): H[i,j] = SimMat[RevIndx[s1[i-1]],RevIndx[s2[j-1]]]
40 SW_align_simple def SW_align_simple(s1,s2,SimMat,RevIndx,GapOpen,GapExt): # Version without traceback # Create matrices H, E, F #Fill matrix H for i in range(1,dim1): for j in range(1,dim2): #compute E #compute F diag = H[i-1,j-1]+H[i,j] H[i,j]=max(0,E[i],F[j],diag) if H[i,j] > MaxScore: MaxScore = H[i,j] return(maxscore)
41 SW_align_simple def SW_align_simple(s1,s2,SimMat,RevIndx,GapOpen,GapExt): # Version without traceback # Create matrices H, E, F #Fill matrix H for i in range(1,dim1): for j in range(1,dim2): #compute E #compute F diag = H[i-1,j-1]+H[i,j] H[i,j]=max(0,E[i],F[j],diag) if H[i,j] > MaxScore: MaxScore = H[i,j] return(maxscore) Konstrukcja pętli for z iteratorem
42 SW_align_simple def SW_align_simple(s1,s2,SimMat,RevIndx,GapOpen,GapExt): for i in range(1,dim1): for j in range(1,dim2): #compute E E[i], RowStart = 0, 0 for col in range(0,j): tmp = H[i,col]-GapOpen-(j-col)*GapExt if tmp > E[i]: E[i] = tmp #compute F F[j] = 0 for row in range(0,i): tmp = H[row,j] - GapOpen-(i-row)*GapExt if tmp > F[j]: F[j] = tmp return(maxscore)
43 SW_align_simple def SW_align_simple(s1,s2,SimMat,RevIndx,GapOpen,GapExt): for i in range(1,dim1): for j in range(1,dim2): #compute E E[i], RowStart = 0, 0 for col in range(0,j): tmp = H[i,col]-GapOpen-(j-col)*GapExt if tmp > E[i]: E[i] = tmp #compute F F[j] = 0 for row in range(0,i): tmp = H[row,j] - GapOpen-(i-row)*GapExt if tmp > F[j]: F[j] = tmp return(maxscore)
44 SW_align_trace def SW_align_trace(s1,s2,SimMat,RevIndx,GapOpen,GapExt): # Version with traceback # Create matrices H, E, F dim1=len(s1)+1 Lista dim2=len(s2)+1 H = numpy.zeros((dim1,dim2)) E = numpy.zeros(dim1) F = numpy.zeros(dim2) Htrace =[None]*dim1 for i in range(dim1): Htrace[i]=[None]*dim2 MaxScore, MaxI, MaxJ, RowStart, ColStart = 0, 0, 0, 0, 0! tworzenie wypełnianie
45 SW_align_trace def SW_align_trace(s1,s2,SimMat,RevIndx,GapOpen,GapExt): for i in range(1,dim1): for j in range(1,dim2): #compute E E[i], RowStart = 0, 0 for col in range(0,j): tmp = H[i,col]-GapOpen-(j-col)*GapExt if tmp > E[i]: E[i], RowStart = tmp, col #compute F F[j] = 0 for row in range(0,i): tmp = H[row,j] - GapOpen-(i-row)*GapExt if tmp > F[j]: F[j], ColStart = tmp, row!!
46 SW_align_trace def SW_align_trace(s1,s2,SimMat,RevIndx,GapOpen,GapExt): for i in range(1,dim1): for j in range(1,dim2): #compute E E[i], RowStart = 0, 0 #compute F #find max and identify from where we arrived diag = H[i-1,j-1]+H[i,j] H[i,j]=max(0,E[i],F[j],diag) if H[i,j] == 0: Htrace[i][j]=(0,0) elif H[i,j] == diag: Htrace[i][j]=(i-1,j-1) elif H[i,j] == E[i]: Htrace[i][j]=(i,RowStart) else: Htrace[i][j]=(ColStart,j) if H[i,j] > MaxScore: MaxScore, MaxI, MaxJ = H[i,j], i, j return([h,maxscore,maxi,maxj,htrace])
47 SW_align_trace def SW_align_trace(s1,s2,SimMat,RevIndx,GapOpen,GapExt): for i in range(1,dim1): for j in range(1,dim2): #compute E E[i], RowStart = 0, 0 #compute F #find max and identify from where we arrived diag = H[i-1,j-1]+H[i,j] H[i,j]=max(0,E[i],F[j],diag) if H[i,j] == 0: Htrace[i][j]=(0,0) elif H[i,j] == diag: Htrace[i][j]=(i-1,j-1) elif H[i,j] == E[i]: Htrace[i][j]=(i,RowStart) else: Htrace[i][j]=(ColStart,j) if H[i,j] > MaxScore: MaxScore, MaxI, MaxJ = H[i,j], i, j return([h,maxscore,maxi,maxj,htrace])
48 SW_align_trace def SW_build_traceback(H,MaxScore,MaxI,MaxJ,Htrace,s1,s2): Size = len(s1)+len(s2) Align_index = [None]*Size CurrI, CurrJ = MaxI, MaxJ Align_index[0]=(MaxI,MaxJ) count = 0 CONT = True while CONT: Next = Htrace[CurrI][CurrJ] if Next == (CurrI,CurrJ): CONT=0 CurrI, CurrJ = Next[0],Next[1] count +=1 Align_index[count]=(CurrI,CurrJ) if CurrI == 0: CONT=False if CurrJ == 0: CONT=False # Trace back is ready - now we invert it # We return index for the forward alignment return(f_index)
49 SW_align_trace def SW_build_traceback(H,MaxScore,MaxI,MaxJ,Htrace,s1,s2): Size = len(s1)+len(s2) Align_index = [None]*Size CurrI, CurrJ = MaxI, MaxJ Align_index[0]=(MaxI,MaxJ) count = 0 CONT = True while CONT: Next = Htrace[CurrI][CurrJ] if Next == (CurrI,CurrJ): CONT=0 CurrI, CurrJ = Next[0],Next[1] count +=1 Align_index[count]=(CurrI,CurrJ) if CurrI == 0: CONT=False if CurrJ == 0: CONT=False # Trace back is ready - now we invert it # We return index for the forward alignment return(f_index)
50 SW_align_trace def SW_build_traceback(H,MaxScore,MaxI,MaxJ,Htrace,s1,s2): Size = len(s1)+len(s2) Align_index = [None]*Size CurrI, CurrJ = MaxI, MaxJ Align_index[0]=(MaxI,MaxJ) count = 0 CONT = True while CONT: Next = Htrace[CurrI][CurrJ] if Next == (CurrI,CurrJ): CONT=0 CurrI, CurrJ = Next[0],Next[1] count +=1 Align_index[count]=(CurrI,CurrJ) if CurrI == 0: CONT=False if CurrJ == 0: CONT=False # Trace back is ready - now we invert it # We return index for the forward alignment return(f_index) wielokrotne przypisanie
51 SW_align_trace def SW_build_traceback(H,MaxScore,MaxI,MaxJ,Htrace,s1,s2): Size = len(s1)+len(s2) Align_index = [None]*Size CurrI, CurrJ = MaxI, MaxJ pętla Align_index[0]=(MaxI,MaxJ) while count = 0 CONT = True while CONT: Next = Htrace[CurrI][CurrJ] if Next == (CurrI,CurrJ): CONT=0 CurrI, CurrJ = Next[0],Next[1] count +=1 Align_index[count]=(CurrI,CurrJ) if CurrI == 0: CONT=False if CurrJ == 0: CONT=False # Trace back is ready - now we invert it # We return index for the forward alignment return(f_index)
52 SW_align_trace def SW_build_traceback(H,MaxScore,MaxI,MaxJ,Htrace,s1,s2): Size = len(s1)+len(s2) Align_index = [None]*Size CurrI, CurrJ = MaxI, MaxJ Align_index[0]=(MaxI,MaxJ) count = 0 CONT = True while CONT: Next = Htrace[CurrI][CurrJ] if Next == (CurrI,CurrJ): CONT=0 CurrI, CurrJ = Next[0],Next[1] count +=1 Align_index[count]=(CurrI,CurrJ) if CurrI == 0: CONT=False if CurrJ == 0: CONT=False # Trace back is ready - now we invert it # We return index for the forward alignment return(f_index)
53 SW_align_trace def SW_build_traceback(H,MaxScore,MaxI,MaxJ,Htrace,s1,s2): while CONT: # Trace back is ready - now we invert it F_index = [None]*(count) for i in range(1,(count+1)) : tmp=align_index[count-i] F_index[i-1]=(tmp[0]-1,tmp[1]-1) # We return index for the forward alignment return(f_index)
54 SW_align_trace >>>print('',s1,'\n',s2) MIAAQLLAY MIAAQEDLLAY >>>SWar=SW_align_trace(s1,s11,BL62,RevIndx,10,1) >>>H=SWar[0] >>>print(h) [[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]]
55 SW_align_trace >>>Htrace=SWar[4] >>>for i in range(10): print(i,htrace[i]) 0 [None, None, None, None, None, None, None, None, None, None, None, None] 1 [None, (0, 0), (0, 1), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 7), (0, 8), (0, 0), (0, 0)] 2 [None, (1, 0), (1, 1), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (1, 7), (1, 8), (1, 9), (0, 0)] 3 [None, (0, 0), (0, 0), (2, 2), (2, 3), (3, 3), (0, 0), (0, 0), (0, 0), (2, 8), (2, 9), (0, 0)] 4 [None, (0, 0), (0, 0), (3, 2), (3, 3), (4, 4), (4, 4), (4, 4), (4, 4), (4, 4), (3, 9), (3, 10)] 5 [None, (0, 0), (0, 0), (3, 3), (4, 4), (4, 4), (5, 5), (5, 5), (5, 5), (5, 5), (5, 5), (5, 5)] 6 [None, (5, 0), (5, 1), (0, 0), (4, 4), (5, 5), (5, 5), (6, 6), (5, 7), (5, 8), (5, 9), (5, 10)] 7 [None, (6, 0), (6, 1), (6, 2), (4, 4), (5, 5), (6, 5), (6, 6), (6, 7), (6, 8), (6, 9), (6, 10)] 8 [None, (0, 0), (7, 1), (7, 2), (7, 3), (5, 5), (7, 5), (7, 6), (7, 7), (7, 8), (7, 9), (8, 10)] 9 [None, (0, 0), (0, 0), (0, 0), (8, 3), (5, 5), (8, 5), (8, 6), (8, 7), (8, 8), (8, 10), (8, 10)]! >>>Ftrace=SW_build_traceback(SWar[0],SWar[1],SWar[2],SWar[3],SWar[4],s1,s2)! >>>print(ftrace) # values offset by -1 [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (4, 6), (5, 7), (6, 8), (7, 9), (8, 10)]
56 SW_align_trace 9 [None, (0, 0), (0, 0), (0, 0), (8, 3), (5, 5), (8, 5), (8, 6), (8, 7), (8, 8), (8, 10), (8, 10)]! >>>for i in range(10): print(i,htrace[i]) 0 [None, None, None, None, None, None, None, None, None, None, None, None] 1 [None, (0, 0), (0, 1), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 7), (0, 8), (0, 0), (0, 0)] 2 [None, (1, 0), (1, 1), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (1, 7), (1, 8), (1, 9), (0, 0)] 3 [None, (0, 0), (0, 0), (2, 2), (2, 3), (3, 3), (0, 0), (0, 0), (0, 0), (2, 8), (2, 9), (0, 0)] 4 [None, (0, 0), (0, 0), (3, 2), (3, 3), (4, 4), (4, 4), (4, 4), (4, 4), (4, 4), (3, 9), (3, 10)] 5 [None, (0, 0), (0, 0), (3, 3), (4, 4), (4, 4), (5, 5), (5, 5), (5, 5), (5, 5), (5, 5), (5, 5)] 6 [None, (5, 0), (5, 1), (0, 0), (4, 4), (5, 5), (5, 5), (6, 6), (5, 7), (5, 8), (5, 9), (5, 10)] 7 [None, (6, 0), (6, 1), (6, 2), (4, 4), (5, 5), (6, 5), (6, 6), (6, 7), (6, 8), (6, 9), (6, 10)] 8 [None, (0, 0), (7, 1), (7, 2), (7, 3), (5, 5), (7, 5), (7, 6), (7, 7), (7, 8), (7, 9), (8, 10)] >>>print(h) [[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]]
57 SW_build_traceback 9 [None, (0, 0), (0, 0), (0, 0), (8, 3), (5, 5), (8, 5), (8, 6), (8, 7), (8, 8), (8, 10), (8, 10)]! >>>for i in range(10): print(i,htrace[i]) 0 [None, None, None, None, None, None, None, None, None, None, None, None] 1 [None, (0, 0), (0, 1), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (0, 7), (0, 8), (0, 0), (0, 0)] 2 [None, (1, 0), (1, 1), (0, 0), (0, 0), (0, 0), (0, 0), (0, 0), (1, 7), (1, 8), (1, 9), (0, 0)] 3 [None, (0, 0), (0, 0), (2, 2), (2, 3), (3, 3), (0, 0), (0, 0), (0, 0), (2, 8), (2, 9), (0, 0)] 4 [None, (0, 0), (0, 0), (3, 2), (3, 3), (4, 4), (4, 4), (4, 4), (4, 4), (4, 4), (3, 9), (3, 10)] 5 [None, (0, 0), (0, 0), (3, 3), (4, 4), (4, 4), (5, 5), (5, 5), (5, 5), (5, 5), (5, 5), (5, 5)] 6 [None, (5, 0), (5, 1), (0, 0), (4, 4), (5, 5), (5, 5), (6, 6), (5, 7), (5, 8), (5, 9), (5, 10)] 7 [None, (6, 0), (6, 1), (6, 2), (4, 4), (5, 5), (6, 5), (6, 6), (6, 7), (6, 8), (6, 9), (6, 10)] 8 [None, (0, 0), (7, 1), (7, 2), (7, 3), (5, 5), (7, 5), (7, 6), (7, 7), (7, 8), (7, 9), (8, 10)] >>>print(h) [[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]]! >>>Ftrace=SW_build_traceback(SWar[0],SWar[1],SWar[2],SWar[3],SWar[4],s1,s2)! >>>print(ftrace) [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (4, 6), (5, 7), (6, 8), (7, 9), (8, 10)]
58 SW_build_alignment!! def SW_build_alignment(Ftrace,s1,s2): Len = len(ftrace) Align = [None]*(2*Len) s1_pos, s2_pos = Ftrace[0][0],Ftrace[0][1] s1_nxt, s2_nxt = 0,0 curr_indx = 0 nxt_indx = curr_indx+1 Align[0]=(s1[s1_pos],s2[s2_pos]) curr_align=0 while curr_indx < (Len-1): FinalAlign = [None]*(curr_align+1) Als1, Als2 = '', '' for i in range(curr_align+1): FinalAlign[i]=Align[i] Als1 = Als1 + Align[i][0] Als2 = Als2 + Align[i][1] return([finalalign,als1,als2])
59 def SW_build_alignment(Ftrace,s1,s2): while curr_indx < (Len-1): nxt_indx = curr_indx+1 s1_nxt = Ftrace[nxt_indx][0] s2_nxt = Ftrace[nxt_indx][1] if ( (s1_nxt == s1_pos+1) & (s2_nxt == s2_pos+1) ): #We go along diagonal elif (s1_nxt == s1_pos) : #break in sequence 1 (s1) elif (s2_nxt == s2_pos) : # break in sequence 2 (s2) else : #Error - we never should get here print(s1_pos,s1_t,s1_nxt,' :: ',s2_pos,s2_t,s2_nxt) print('alignment error, exiting\n') sys.exit(1) return([finalalign,als1,als2])
60 def SW_build_alignment(Ftrace,s1,s2): while curr_indx < (Len-1): nxt_indx = curr_indx+1 s1_nxt = Ftrace[nxt_indx][0] s2_nxt = Ftrace[nxt_indx][1] if ( (s1_nxt == s1_pos+1) & (s2_nxt == s2_pos+1) ): #We go along diagonal s1_pos,s2_pos = s1_nxt,s2_nxt curr_indx = nxt_indx curr_align +=1 Align[curr_align] = (s1[s1_pos],s2[s2_pos]) elif (s1_nxt == s1_pos) : #break in sequence 1 (s1) elif (s2_nxt == s2_pos) : # break in sequence 2 (s2) else : #Error - we never should get here return([finalalign,als1,als2])
61 def SW_build_alignment(Ftrace,s1,s2): while curr_indx < (Len-1): if ( (s1_nxt == s1_pos+1) & (s2_nxt == s2_pos+1) ): #We go along diagonal elif (s1_nxt == s1_pos) : #break in sequence 1 (s1) while s2_pos < s2_nxt: # we fill the gap with '-' signs s2_pos += 1 curr_align +=1 Align[curr_align] = ('-',s2[s2_pos]) # End of break curr_indx = nxt_indx elif (s2_nxt == s2_pos) : # break in sequence 2 (s2) else : #Error - we never should get here return([finalalign,als1,als2])
62 def SW_build_alignment(Ftrace,s1,s2): while curr_indx < (Len-1): if ( (s1_nxt == s1_pos+1) & (s2_nxt == s2_pos+1) ): #We go along diagonal elif (s1_nxt == s1_pos) : #break in sequence 1 (s1) elif (s2_nxt == s2_pos) : # break in sequence 2 (s2) while s1_pos< s1_nxt: # we fill the gap with '-' signs s1_pos += 1 curr_align +=1 Align[curr_align] = (s1[s1_pos],'-') # End of break curr_indx = nxt_indx! else : #Error - we never should get here return([finalalign,als1,als2])
63 SW_build_alignment! >>>print(h) [[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]]! >>>print(ftrace) [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (4, 6), (5, 7), (6, 8), (7, 9), (8, 10)]! >>>SWal=SW_build_alignment(Ftrace,s1,s11) >>>print(swal[0]) [( M','M'),('I','I'),('A','A'),('A','A'),('Q','Q'),('-','E'),('-',D'), ( L,'L'),('L','L'),('A','A'),('Y','Y')]! >>>print('',swal[1],'\n',swal[2]) MIAAQ--LLAY MIAAQEDLLAY
64 Problem Zmodyfikuj funkcję SW_align_simple() aby zmienić złożoność obliczeniową z O(N*M*(N+M)) do O(N*M) Wskazówka: zauważ, że w wierszach i kolumnach odchodzących od diagonali wartości w miarę odchodzenia od diagonali spadają o wartość GapExt [[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]]
65 Problem - cd Zmodyfikuj funkcję SW_align_simple() aby zmienić złożoność obliczeniową z O(N*M*(N+M)) do O(N*M) Wskazówka: zauważ, że w wierszach i kolumnach odchodzących od diagonali wartości w miarę odchodzenia od diagonali spadają o wartość GapExt Dla każdej komórki [i,j] zmienna E[i] (lub F[j]) może być uzyskana na dwa sposoby pomniejszenie o wartość GapExt wartości E[i] = E[i-1]-GapExt : F[j] = F[j-1]-GapExt rozpoczęcie nowej przerwy E[i] = H[i,j-1]-GapOpen F[j] = H[j,i-1]-GapOpen
66 Problem -cd Zamiast liczyć funkcję max() po wszystkich możliwych wartościach wystarczy dla każdej komórki sprawdzić dwie wartości E i dwie F (czyli wersja algorytmu wg. Osamu Gotoha) H [ i, j] = max H [ i 1, j 1]+ H i, j [ ] [ ] E i, j F i, j 0 [ ] E[ i, j] = max F[ i, j] = max E[ i, j 1] GapExt H [ i, j 1] GapOpen GapExt F[ i 1, j] GapExt H [ i 1, j] GapOpen GapExt
67 Problem -cd Zamiast liczyć funkcję max() po wszystkich możliwych wartościach wystarczy dla każdej komórki sprawdzić dwie wartości E i dwie F (czyli wersja algorytmu wg. Osamu Gotoha)! Trzeba jedynie zapamiętać wiersz ostatnich wartości F (dla E nie jest to konieczne - liczymy na bieżąco).! Dodatkowe uproszczenie W wersji bez śledzenia powrotu nie trzeba przechowywać macierzy kwadratowych - wartości H[] można obliczać na bieżąco.
Zaawansowany kurs języka Python
Wykład 4. 23 października 2015 Plan wykładu 1 2 Pliki tekstowe Trwałość obiektów CSV Strumienie Plan wykładu 1 2 Pliki tekstowe Trwałość obiektów CSV Strumienie Protokół iteracyjny Producent Umiem dostarczać
Dopasowywanie sekwencji (ang. sequence alignment) Metody dopasowywania sekwencji. Homologia a podobieństwo sekwencji. Rodzaje dopasowania
Wprowadzenie do Informatyki Biomedycznej Wykład 2: Metody dopasowywania sekwencji Wydział Informatyki PB Dopasowywanie sekwencji (ang. sequence alignment) Dopasowywanie (przyrównywanie) sekwencji polega
Python. Wprowadzenie. Jolanta Bachan
Python Wprowadzenie Jolanta Bachan Zainstaluj i przetestuj Pythona https://www.python.org/downloads/ print 'Hello world!' operatory numeryczne: + - * / // % ** operatory porównania: ==!= > < >=
Wykład 5 Dopasowywanie lokalne
Wykład 5 Dopasowywanie lokalne Dopasowanie par (sekwencji) Dopasowanie globalne C A T W A L K C A T W A L K C O W A R D C X X O X W X A X R X D X Globalne dopasowanie Schemat punktowania (uproszczony)
Dopasowania par sekwencji DNA
Dopasowania par sekwencji DNA Tworzenie uliniowień (dopasowań, tzw. alignmentów ) par sekwencji PSA Pairwise Sequence Alignment Dopasowania globalne i lokalne ACTACTAGATTACTTACGGATCAGGTACTTTAGAGGCTTGCAACCA
PODSTAWY BIOINFORMATYKI WYKŁAD 4 DOPASOWANIE SEKWENCJI
PODSTAWY BIOINFORMATYKI WYKŁAD 4 DOPASOWANIE SEKWENCJI DOPASOWANIE SEKWENCJI 1. Dopasowanie sekwencji - definicja 2. Wizualizacja dopasowania sekwencji 3. Miary podobieństwa sekwencji 4. Przykłady programów
PODSTAWY BIOINFORMATYKI WYKŁAD 4 DOPASOWANIE SEKWENCJI
PODSTAWY BIOINFORMATYKI WYKŁAD 4 DOPASOWANIE SEKWENCJI DOPASOWANIE SEKWENCJI 1. Dopasowanie sekwencji - definicja 2. Wizualizacja dopasowania sekwencji 3. Miary podobieństwa sekwencji 4. Przykłady programów
Bioinformatyka. Ocena wiarygodności dopasowania sekwencji.
Bioinformatyka Ocena wiarygodności dopasowania sekwencji www.michalbereta.pl Załóżmy, że mamy dwie sekwencje, które chcemy dopasować i dodatkowo ocenić wiarygodność tego dopasowania. Interesujące nas pytanie
Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS
Program szkoleniowy Microsoft Excel VBA Poziom Podstawowy 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS 1. Nagrywanie makr Procedura nagrywania makra Nadanie odpowiedniej nazwy Przypisanie
Bioinformatyka. (wykład monograficzny) wykład 5. E. Banachowicz. Zakład Biofizyki Molekularnej IF UAM
Bioinformatyka (wykład monograficzny) wykład 5. E. Banachowicz Zakład Biofizyki Molekularnej IF UM http://www.amu.edu.pl/~ewas lgorytmy macierze punktowe (DotPlot) programowanie dynamiczne metody heurystyczne
Wprowadzenie do Python
Wprowadzenie do Python Marcin Orchel 1 Środowisko Python Zalecane korzystanie z dystrybucji Anaconda. W systemie linux może być już dostępny Python. Sprawdzenie wersji Pythona, python -V. Uruchomienie
Wykresy i interfejsy użytkownika
Wrocław, 07.11.2017 Wstęp do informatyki i programowania: Wykresy i interfejsy użytkownika Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Instrukcje sterujące Biblioteka
a) ile wynosiła populacja najbardziej i najmniej ludnego z województw (oraz jakie były ich nazwy)
Spis treści 1 TI:WTBD/Ćwiczenia 14 1.1 Sprawdzian 2 - SQL. 1.1.1 Grupa 1 1.1.2 przykład rozwiązania dla zadania gr. 1 1.1.3 Grupa 2 1.1.4 przykład rozwiązania dla gr. 2 TI:WTBD/Ćwiczenia 14 Sprawdzian
Język Python. Język Python 1/35
Język Python Język Python 1/35 Język Python 2/35 Wstęp Uruchamianie interpretera python Skrypty wykonywalne #!/usr/bin/python #!/usr/bin/env python lub #!/usr/bin/python3 #!/usr/bin/env python3 chmod +x
Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML
Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML Wyrażenia regularne c:\> dir *.exe $ rm *.tmp Wyrażenia regularne 'alamakota' '(hop!)*' { '',
Przyrównywanie sekwencji
Instytut Informatyki i Matematyki Komputerowej UJ, opracowanie: mgr Ewa Matczyńska, dr Jacek Śmietański Przyrównywanie sekwencji 1. Porównywanie sekwencji wprowadzenie Sekwencje porównujemy po to, aby
Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)
Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest
Wstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2013 1 / 34 Przypomnienie Programowanie imperatywne Program
Języki i metody programowania
Języki i metody programowania Wykład 3 dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie hab. Andrzeja Zbrzezngo Wartości boolowskie
Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski
Podstawy Pythona Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski Słownik jest typem mutowalnym. Każdy element to para: klucz wartość. W celu stworzenia słownika pary klucz wartość umieszczamy
rozdział 4: ZMIENNE I INSTRUKCJE
rozdział 4: ZMIENNE I INSTRUKCJE ostatnia modyfikacja: 04.12.18 definicja: zmienna to nazwany kontener służący do przechowywania danych na razie skupimy się na zmiennych przechowujących dane liczbowe i
Listy, krotki, słowniki, funkcje
Listy, krotki, słowniki, funkcje Listy Lista jest najbardziej elastycznym typem obiektu uporządkowanej kolekcji. Może zawierać różne typy danych - liczby, łańcuchy znaków, a nawet inne listy. Tworzy się
Podstawy programowania w Pythonie
Podstawy programowania w Pythonie Wykład 6 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 21 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania
System operacyjny Linux
Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 6 Język bash Pierwszy skrypt Rozwinięcia parametryczne Bloki instrukcji Dwa przydatne polecenia Tablice Sprawdzanie warunków Instrukcje
Kurs rozszerzony języka Python
Wykład 2. 13 października 2017 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Deklaracja klasy Klasy i obiekty Przykłady class Figura: Pierwsza
Kurs rozszerzony języka Python
Wykład 1. 6 października 2017 Plan wykładu 1 2 3 4 Plan wykładu 1 2 3 4 Wykładowca: Termin wykładu: piątek, 10:15 12:00, sala 119 Strona wykładu http://www.ii.uni.wroc.pl/ marcinm/dyd/python Materiały
Algorytmy i struktury danych
Algorytmy i struktury danych 4. Łódź 2018 Suma szeregu harmonicznego - Wpisz kod programu w oknie edycyjnym - Zapisz kod w pliku harmonic.py - Uruchom skrypt (In[1]: run harmonic.py) - Ten program wykorzystuje
PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW
PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW http://metodycy.torun.pl/ m.informatyka@metodycy.torun.pl 1. Wprowadzenie do Pythona podstawowe informacje Python to język programowania wysokiego poziomu,
Przyrównanie sekwencji. Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu
Przyrównanie sekwencji Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu Sequence alignment - przyrównanie sekwencji Poszukiwanie ciągów znaków (zasad nukleotydowych lub reszt aminokwasowych),
Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne
Materiały dostępne są na stronie: Materiały Technologie baz danych aragorn.pb.bialystok.pl/~gkret Wykład 5: Kursory jawne. Podprogramy. Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka
Dopasowanie sekwencji Sequence alignment. Bioinformatyka, wykłady 3 i 4 (19, 26.X.2010)
Dopasowanie sekwencji Sequence alignment Bioinformatyka, wykłady 3 i 4 (19, 26.X.2010) krzysztof_pawlowski@sggw.pl terminologia alignment 33000 dopasowanie sekwencji 119 uliniowienie sekwencji 82 uliniowianie
PRZYRÓWNANIE SEKWENCJI
http://theta.edu.pl/ Podstawy Bioinformatyki III PRZYRÓWNANIE SEKWENCJI 1 Sequence alignment - przyrównanie sekwencji Poszukiwanie ciągów znaków (zasad nukleotydowych lub reszt aminokwasowych), które posiadają
Politechnika Wrocławska. Dopasowywanie sekwencji Sequence alignment
Dopasowywanie sekwencji Sequence alignment Drzewo filogenetyczne Kserokopiarka zadanie: skopiować 300 stron. Co może pójść źle? 2x ta sama strona Opuszczona strona Nadmiarowa pusta strona Strona do góry
Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie
Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie Operacje na plikach Otwarcie i zamknięcie pliku: fh = open('plik', 'r') Atrybuty: 'r' odczyt 'w' zapis 'a' dopisanie 'r+'
Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk 2014. Studenckie Koªo Automatyków SKALP
Spotkania z Pythonem Cz ± 1 - podstawy - rozwi zania zada«michaª Alichniewicz Studenckie Koªo Automatyków SKALP Gda«sk 2014 Dzi kuj za uwag! Na licencji Creative Commons Attribution-NonCommercial-ShareAlike
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Podstawy programowania w Pythonie
Podstawy programowania w Pythonie Wykład 2 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 10 października 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Wstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2014 1 / 38 Przypomnienie Programowanie imperatywne Program
Dopasowanie sekwencji Sequence alignment. Bioinformatyka, wykłady 3 i 4 (16, 23.X.2012)
Dopasowanie sekwencji Sequence alignment Bioinformatyka, wykłady 3 i 4 (16, 23.X.2012) krzysztof_pawlowski@sggw.pl terminologia alignment 33000 dopasowanie sekwencji 119 uliniowienie sekwencji 82 uliniowianie
Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:
Skrypty powłoki Skrypty są zwykłymi plikami tekstowymi, w których są zapisane polecenia zrozumiałe dla powłoki. Zadaniem powłoki jest przetłumaczenie ich na polecenia systemu. Aby przygotować skrypt, należy:
Oracle PL/SQL. Paweł Rajba.
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?
Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa.
Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa. Celem ćwiczenia jest nabycie umiejętności wykorzystania w praktyce instrukcji warunkowych programowania
Wstęp do programowania
Wstęp do programowania Rekurencja, metoda dziel i zwyciężaj Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. VIII Jesień 2014 1 / 27 Rekurencja Recursion See Recursion. P. Daniluk(Wydział
Pakiety Matematyczne - R Zestaw 2.
Pakiety Matematyczne - R Zestaw 2. Część przykładów pochodzi z helpa do R i z książki: R.Biecek, Przewodnik po pakiecie R, GIS 2014, strona www: http://www.biecek.pl, Instrukcje warunkowe Składnia instrukcji
Bloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem
Moduł 1 1. Wprowadzenie do języka Python Python jest dynamicznym językiem interpretowanym. Interpretowany tzn. że kod, który napiszemy możemy natychmiast wykonać bez potrzeby tłumaczenia kodu programistycznego
do MATLABa programowanie WYKŁAD Piotr Ciskowski
Wprowadzenie do MATLABa programowanie WYKŁAD Piotr Ciskowski instrukcje sterujące instrukcja warunkowa: if instrukcja wyboru: switch instrukcje iteracyjne: for, while instrukcje przerwania: continue, break,
Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK.
Aktywacja zakładki Developer. Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK. Rejestracja makr. Klikamy Zakladke Developer. Klikamy
Podstawy programowania w Pythonie
Podstawy programowania w Pythonie Wykład 5 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 7 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania
Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)
Wstęp do Informatyki i Programowania (kierunek matematyka stosowana) Jacek Cichoń Przemysław Kobylański Instytut Matematyki i Informatyki Politechnika Wrocławska Na podstawie: M.Summerfield.Python 3. Kompletne
Dopasowanie par sekwencji
BIOINFORMTYK edycja 2016 / 2017 wykład 3 Dopasowanie par sekwencji dr Jacek Śmietański jacek.smietanski@ii.uj.edu.pl http://jaceksmietanski.net Plan wykładu 1. Idea i cele dopasowania sekwencji 2. Definicje
SQL 4 Structured Query Lenguage
Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...
PODSTAWY BIOINFORMATYKI 8 DOPASOWYWANIE SEKWENCJI AMINOKWASÓW
PODSTAWY BIOINFORMATYKI 8 DOPASOWYWANIE SEKWENCJI AMINOKWASÓW DOPASOWYWANIE SEKWENCJI 1. Miary podobieństwa sekwencji aminokwasów 2. Zastosowanie programów: CLUSTAL OMEGA BLAST Copyright 2013, Joanna Szyda
Kurs rozszerzony języka Python
Wykład 3. 20 października 2017 Plan wykładu 1 2 Rodzaje kolekcji Przetwarzanie kolekcji 3 4 5 i funkcje Efektywność list Koniec Plan wykładu 1 2 Rodzaje kolekcji Przetwarzanie kolekcji 3 4 5 i funkcje
Podstawowe I/O Liczby
Podstawowe I/O Liczby Informatyka Jolanta Bachan Implementacja algorytmów, cd. I/O: Keyboard in, screen out, no loops Jolanta Bachan 2 Implementacja algorytmów, cd. I/O: Keyboard in, screen out, no loops
Programowanie obiektowe
Wykład 4 Piotr Błaszyński Wydział Inmatyki Zachodniopomorskiego Uniwersytetu Technologicznego 16 lutego 2018 i zawieranie się, gromadzenie elementów nowa klasa powstaje przez użycie obiektów klas już istniejących,
(kod ten służy wprowadzeniu definicji mediany, nie jest to optymalna ani nawet szczególnie dobra implementacja obliczania mediany w praktyce!
Spis treści 1 TI:WTBD/Kolokwium Poprawkowe 1.1 zadanie 1 1.1.1 1.2 zadanie 2 1.2.1 1.3 zadanie 3 1.3.1 TI:WTBD/Kolokwium Poprawkowe zadanie 1 Medianę sekwencji liczb można zdefiniować za pomocą następującego
Programowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Cheatsheet PL/SQL Andrzej Klusiewicz 1/9
Declare y integer; z varchar2(50); d date; null; Declare x integer:=10; null; x integer; x:=10; dbms_output.put_line('hello world'); for x in 1..10 loop Deklaracja 4 zmiennych. Jednej typu rzeczywistego,
Zaawansowane bazy danych i hurtownie danych semestr I
Podprogramy Wydział Informatyki Politechnika Białostocka Zaawansowane bazy danych i hurtownie danych semestr I Procedury do przeprowadzenia akcji Funkcje do obliczania wartości Pakiety do zbierania logicznie
Bioinformatyka Laboratorium, 30h. Michał Bereta
Bioinformatyka Laboratorium, 30h Michał Bereta mbereta@pk.edu.pl www.michalbereta.pl 1 Wyszukiwanie sekwencji Jak wyszukad z baz danych bioinformatycznych sekwencje podobne do sekwencji zadanej (ang. query
Programowanie robota mobilnego E-puck w języku Python
Programowanie robota mobilnego E-puck w języku Python Joanna Ratajczak Mirela Kaczmarek 1 Zasady bezpieczeństwa W trakcie pracy z robotem E-puck, rys. 1, należy zachować ostrożność. Pod żadnym pozorem
Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Dokowanie molekularne. Andrzej Bąk
Dokowanie molekularne Andrzej Bąk Import bibliotek sys, pybel, openbabel oraz gzip niezbędnych do wykonania ćwiczenia. import sys sys.path.append('/usr/lib/pymodules /python2.6') try: import sys import
Technologie Informacyjne Mechatronika 2012/2013 Błędy obliczeń. Python.
Technologie Informacyjne Mechatronika 2012/2013 Błędy obliczeń. Python. 1. Cel laboratorium Celem laboratorium jest znalezienie przez studentów przykładów błędów popełnianych przez komputery podczas prostych
Język Python (2) Język Python (2) 1/36
Język Python (2) Język Python (2) 1/36 Język Python (2) 2/36 Podstawy funkcji Pojęcia podstawowe Instrukcja def tworzy obiekt funkcji i przypisuje go do nazwy Instrukcja return przekazuje obiekt wynikowy
Wykład 10 2008-04-30. Bioinformatyka. Wykład 9. E. Banachowicz. Zakład Biofizyki Molekularnej IF UAM
Bioinformatyka Wykład 9 E. Banachowicz Zakład Biofizyki Molekularnej IF UAM http://www.amu.edu.pl/~ewas 1 Konsekwencje zestawieo wielu sekwencji - rodziny białkowe, domeny, motywy i wzorce 2 Bioinformatyka,
Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać
MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty
Programowanie w Ruby
Programowanie w Ruby Wykład 1 Marcin Młotkowski 3 października 2012 Plan wykładu Sprawy organizacyjne Wykład Źródła wiedzy Zaliczenia O języku Historia i pochodzenie języka O języku Instrukcje złożone
Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej.
Wrocław, 28.11.2017 Wstęp do informatyki i programowania: liczby pierwsze Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Zajmiemy się liczbami pierwszymi... liczby
2.8. Algorytmy, schematy, programy
https://app.wsipnet.pl/podreczniki/strona/38766 2.8. Algorytmy, schematy, programy DOWIESZ SIĘ co oznaczają pojęcia: algorytm, schemat blokowy, język programowania, jakie są sposoby obliczania największego
Zaawansowany kurs języka Python
Wykład 5. 30 października 2013 Plan wykładu 1 2 3 4 yield from Zamiast Example for item in iterable: yield item: można pisać Example yield from iterable Plan wykładu 1 2 3 4 Przykłady wyrażeń regularnych
Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.
Nazwa implementacji: Gra w życie Autor: Piotr Fiorek Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach. Zaprojektuj prostą grę, której celem
Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com
Programowanie wykład dla I roku bioinformatyki semestr letni 2013 Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel. 58 523 2466 e-mail: danuta.makowiec at gmail.com Cel bloku
Kurs języka Python. Wykład 5. Marcin Młotkowski. 9 listopada Rodzaje parametrów funkcji. 2 Biblioteka Tk. 3 Układanie kontrolek w oknie
Wykład 5. 9 listopada 2009 1 Rodzaje parametrów funkcji 2 3 4 Parametry domyślne Wartość domyślna parametrów def log(val, base=2.718281):... def foo(arg1=[], arg2="dwa", arg3=3): print log(34, 10), log(12)
Pytania dla języka Python
XIV OIJ, zawody I stopnia, tura testowa 16 września 2019 1 stycznia 2020 Poniżej znajdują się pytania testowe z zawodów I stopnia XIV Olimpiady Informatycznej Juniorów () na teście wiedzy (do rozwiązania
Wstęp do programowania
Wstęp do programowania Funkcje Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. V Jesień 2013 1 / 32 Funkcje Funkcje w matematyce f : D W D dziedzina W zbiór wartości Funkcja może
Administracja sieciowymi systemami operacyjnymi III Klasa - Linux
Administracja sieciowymi systemami operacyjnymi III Klasa - Linux SKRYPTY POWŁOKI mgr inż. Tomasz Borowiec SKRYPTY POWŁOKI - PODSTAWY W Linuksie skrypt jest plikiem tekstowym zawierającym polecenia systemowe
Programowanie w Scilab
5 styczeń, 2006 Programowanie w Scilab Slajd 1 Programowanie w Scilab 5 styczeń, 2006 Programowanie w Scilab Slajd 2 Plan zajęć Wprowadzenie -operatory porównawcze: Pętle Przerywanie pętli Warunki Definiowanie
Projekt 6: Równanie Poissona - rozwiązanie metodą algebraiczną.
Projekt 6: Równanie Poissona - rozwiązanie metodą algebraiczną. Tomasz Chwiej 9 sierpnia 18 1 Wstęp 1.1 Dyskretyzacja n y V V 1 V 3 1 j= i= 1 V 4 n x Rysunek 1: Geometria układu i schemat siatki obliczeniowej
Lab 8. Tablice liczbowe cd,. Operacje macierzowo-wektorowe, memcpy, memmove, memset. Wyrażenie warunkowe.
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 8. Tablice liczbowe cd,. Operacje macierzowo-wektorowe, memcpy, memmove, memset. Wyrażenie warunkowe. 1. Wektory i macierze: a. Przykład
Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH
Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania weryfikacyjne:
Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).
Funkcje w Pythonie Funkcje to części programu wielokrotnego użytku. Pozwalają nam nadad nazwę blokowi wyrażeo, a następnie uruchamiad ten blok używając tej nazwy gdziekolwiek w programie, dowolną ilośd
Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki
Informatyka I Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Operacje relacji (porównania) A
Operacje na wektorach i macierzach.
(C) -8 by B.Gudowski & J. Wąs & L.Dutkiewicz Operacje na wektorach i macierzach. Ponieważ wymiary wektorów i macierzy w MathCADzie są w pełni dynamiczne często zachodzi potrzeba ich ustalenia np. przy
Programowanie w Ruby
Programowanie w Ruby 1 Marcin Młotkowski 8 października 2018 Plan wykładu 1 2 Źródła wiedzy Zaliczenia 3 4 5 Marcin Młotkowski Programowanie w Ruby 2 / 432 Informacje organizacyjne Strona wykładu http://www.ii.uni.wroc.pl/~marcinm/dyd/ruby/
Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;
Programowanie C++ Zadanie 1 Napisz program do obliczenia sumy i iloczynu ciągu liczb zakooczonego liczbą zero. Zakładamy, że ciąg zawiera co najmniej jedną liczbę (założenie to jest konieczne przy obliczeniu
Przedmiotowy Konkurs Informatyczny LOGIA powołany przez Mazowieckiego Kuratora Oświaty
Zadanie Zawijasy LOGIA 18 (2017/18), etap 2 Treść zadania Tablica Polibiusza jest kwadratową tabelą zawierającą litery alfabetu łacińskiego. Kolumny numerujemy od 0 do 4, a wiersze od 1 do 5. Kodujemy
Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.
Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY SZKOLENIE JEST DLA OSÓB, KTÓRE: nigdy wcześniej nie programowały lub nie miały styczności z programowaniem od dłuższego czasu,
Lekcja 3: Pierwsze kroki z Pythonem. Pętle
#SuperKoderzy www.superkoderzy.pl Mikrobitowcy Autorzy: Filip Kłębczyk Lekcja 3: Pierwsze kroki z Pythonem. Pętle Podczas lekcji uczniowie zapoznają się z dwoma rodzajami pętli - for i while - analizując
Języki i metody programowania
Języki i metody programowania Wykład 4 dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie hab. Andrzeja Zbrzezngo Podstawy języka Python
Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych
Algorytmy i Struktury Danych Wykład IV Sortowania cd. Elementarne struktury danych 1 Co dziś? Dolna granica sortowań Mediany i statystyki pozycyjne Warstwa implementacji Warstwa abstrakcji #tablice #listy
Wstęp do informatyki Ćwiczenia. Piotr Fulmański
Wstęp do informatyki Ćwiczenia Piotr Fulmański Piotr Fulmański 1 e-mail 1: fulmanp@math.uni.lodz.pl Wydział Matematyki i Informatyki, Uniwersytet Łódzki Banacha 22, 90-238, Łódź Polska Data ostaniej modyfikacji:
Wstęp do Pythona. Janusz Szwabiński. Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36
Wstęp do Pythona Janusz Szwabiński szwabin@ift.uni.wroc.pl Python w obliczeniach numerycznych (C) 2005 Janusz Szwabiński p.1/36 Wstęp do Pythona Zasoby w sieci Python jako zaawansowany kalkulator Pierwszy
Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.
PYTHON Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. Aby program napisany w danym języku mógł być wykonany, niezbędne
MATLAB Z3. Rafał Woźniak. Warsaw, Faculty of Economic Sciences, University of Warsaw
Faculty of Economic Sciences, University of Warsaw Warsaw, 09-03-2017 Generowanie liczb losowych rand(1) rand(1) generuje liczbę losową z przedziału (0,1) Jak można uzyskać liczby losowe z przedziału 1