matlab– noções introdutórias roteiro para aulas no ppg em bioinformática - ufpr roberto tadeu...

40
Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr.

Upload: internet

Post on 18-Apr-2015

120 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab– Noções introdutórias

Roteiro para aulas no PPG em Bioinformática - UFPR

Roberto Tadeu Raittz Dr.

Page 2: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab- Origens

Universidades- Novo México e Stanford Década de 70 Ambiente de Computação técnica Facilidade para manipulação e

visualização de dados

Page 3: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab- Ambiente

Interativo Semelhante DOS/Linux Interpretadores

Page 4: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab- Ambiente

cd \ dir ls whos clear ans quit ...

Page 5: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab- Variáveis

Pode-se criar variáveis na área de trabalho

Comandos encerrados com ; não geram eco na área de trabalho

>> a = 65a = 65>> a = 65;>> |

Page 6: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab- Variáveis

>>whos Name Size Bytes Class

Attributes

a 1x1 8 double >>|

Page 7: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab- Operadores

= +, -, *, /, ^ ==, ~=, >, >=, <, <= &, |, ~ ;, ‘vírgula’, ‘espaço’, [, ] : (, ) .’

Page 8: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab- Operadores

O índice do primeiro elemento em um vetor é 1 Operadores aritméticos, lógicos e relacionais

podem ser usados em conjunto A vírgula, o ponto e vírgula, o espaço e [... ] são

usados na inicialização de matrizes : define intervalos, ex: 3:5 é como [3 4 5] Índices de matrizes são definidos pelo uso de () . (ponto) é usado para definir produto escalar ‘ (apóstrofo) gera a matriz transposta

Page 9: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab- Matrizes

Vetor linha:v1 = [3 8 40 5.3 6] %ou [3, 8, 40, 5.3, 6]

Vetor colunav2 = [3; 8; 40; 5.3; 6]

v1’ é igual a v2 % v1 ‘ (transposto) Quem é v2(1)*v1(4)? v1 + v2 %não funciona mas: v1 + v2’ %no caso igual a 2*v1

Page 10: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab- Matrizes

Operador :início:incremento(opcional):final

>> a = (2:2:6)a = 2 4 6>>| Quem é a(2:3)?

Page 11: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matrizes bi-dimensionais

m = [1 4 3; 3 2 1] ponto e vírgula separa as linhas portanto:>> mm = 1 4 3 3 2 1>>|

Page 12: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matrizes- operador :

no exemplo anterior m(1,:) corresponde à primeira linha de m: [1 4 3]

ainda m(:,2) é [4; 2], a segunda coluna pode-se fazer suprimir uma linha ou

coluna de uma matriz fazendo-se uma atribuição de [] a ela:m(:, 2) = [] % [1 3; 3 1] ...m

o operador : é uma das mais fortes características de Matlab

Page 13: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

O comando .

O ponto é usado para realizar operações com matrizes elemento a elemento

Para multiplicar a primeira coluna pela terceira coluna da matriz m original:m(:,1).*m(:,3) % [3; 3] (coluna)

Page 14: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

O comando ´ (apóstrofo) É usado para obter a matriz transposta>>m

1 4 3 3 2 1

>>m ‘3 12 41 3

>>m(1,1:2).*m(:,3)’3 4

Page 15: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Concatenação de matrizes

Para adicionar colunas a uma matriz basta fazer a justaposição da matriz original com a que contém as colunas extras dentro de colchetes [... ]

u = 1:100; u = [u 1:5]; % u é um vetor linha 1x105 a = [(1:100)’ ((1:100).^2)’] %...o que

é?

Page 16: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Strings

São matrizes de bytes ‘A’ + 1 %... 66

>>s = ‘Bioinfo ‘;>>s’

ans =

Bioinfo

>>|

Page 17: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Strings

>>s(4) + 1 % i==105ans = 106>> s(4) = s(4) + 1s =Biojnfo % troca o I por j

>>[s s s s]ans =Biojnfo Biojnfo Biojnfo Biojnfo

>>

Page 18: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Strings

>>u = [s’ s’ s’ s’]u =

BBBBiiiioooojjjjnnnnffffoooo

`>> u(4,:)

ans =jjjj

Page 19: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab– comandos úteis

ones(ilin, jcol) % virgula, não : zeros(ilin, jcol) % idem rand(ilin,jcol) % ibidem ... linspace(início,final,número) logspace(início,final,número)

Page 20: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab- Funções

A maioria das funções Matlab recebem matrizes como parâmetros

exp(1:3) % [2.7183 7.3891 20.0855] sqrt(m) % é uma matriz com as raízes %quadradas de cada elemento de m sum(1:100) % retorna a soma de 1 a 100

plot(sin(linspace(1,100,50))) % ?

Page 21: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

plot(sin(linspace(1,100,50)))

0 5 10 15 20 25 30 35 40 45 50-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Page 22: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Carregando variáveis

Se no diretório atual existe um arquivo texto, matriz.dat, que contém valores:

>> load matriz.dat carrega o arquivo em memória. Agora existe a

variável matriz na área de trabalho com os dados do arquivo

>> whos matriz Name Size Bytes Class Attributes matriz 300x5 12000 double

Page 23: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Salvando variáveis

Uma variável da memória pode ser salva em um arquivo por meio do comando save

e depois carregada com o comando load save arquivo.ext variável –ascii save matriz.dat matriz –ascii

há outras formas de entrada e saída E/S com arquivos binários Arquivos FASTA ...

Page 24: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Matlab- Gráficos x = 1:100; plot(x) Gera um gráfico da função identidade a forma geral de plot:

plot(x1, y1, s1, x2, y2, s2,... ) Exemplos on-line

Page 25: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Gráficos figure hold on grid on legend(´leg x´,´leg y´,... ) title(´texto´) xlabel(´... ´) ylabel(´... ´) subplot etc.

Page 26: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Gráfico- exemplo

Se as linhas a seguir forem copiadas de um editor de textos e coladas na área de trabalho...

x = linspace(1,30,50);y = x.^2;plot(x,y,'r');title('y = x^2');xlabel('eixo x');ylabel('eixo y');grid on

Page 27: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Gráficos- exemplo

0 5 10 15 20 25 300

100

200

300

400

500

600

700

800

900y = x2

eixo x

eixo

y

Page 28: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Criando scripts

Copiar e colar na área de trabalho uma lista de comandos

Editor do Matlab Salvar como ‘nome_scrpt.m’ Executar usando o nome dado Funções do Matlab

Page 29: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Scripts– controle de programa for if else end var = input(‘mensagem’)

Page 30: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Comandos- for

for var=vetor var percorre todos os elementos de

vetor for clássico:

for i=1:n...

end

Page 31: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Comandos- if

if condição...

else...

end

Page 32: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Criando funções Devem ser gravadas com o nome da

função e a extensão .m Podem ser acessadas do diretório corrente

ou da toolbox Forma geral

function mret = nome_funcao(parametros)script

A função devolve o valor da variável indicada (mret no caso)

Obviamente mret pode ser uma matriz Todas as variáveis utilizadas são locais

Page 33: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Exemplo de função

function mret = med_desv(vetor)mret = [mean(vetor) std(vetor)];

Para chamá-la:

>> med_desv(rand(1,100))

ans =

0.5280 0.2970

Page 34: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Estrutura fasta

Tool box de bioinformática exemplo:>>q(1).Header = ‘Teste sala – ct1’>>q(1).Sequence = ‘AACCTGCATTTAG’>>q(2).Header = ‘Teste sala – ct2’>>q(2).Sequence = ‘GGGGTTATGGCCAT’>>fastawrite(‘q.fas’,q)>>q1 = fastaread(‘q.fas’)

Page 35: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Algumas funções úteis para Bioinformática e strings

seqrcomplement(Seq) fastaread(‘arq’) fastawrite(‘arq’,var_fas) strfind(s1,s2) % índices de s2 em s1 upper(s) lower(s) find(v) % retorna índices de v diferentes

de zero ...

Page 36: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Operadores lógicos e matrizes Operações lógicas Podem ser realizadas em

matrizes. Por exemplo: s == ‘g’ % retorna 0 para os índices de s

diferentes de ‘g e 1 para os elementos iguais a ‘g’.

>>s = ‘acttcgtttcgatctaagt’;>>s==‘g’

ans = 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1

0

Page 37: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Contando bases no DNA

Exercício:Com uma linha de comando apenas contar quantos Gs estão presentes em uma sequência de DNA

Page 38: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

GSkew

A quantidade de Gs e de Cs em uma região de DNA pode ser significativamente diferente.

A medida da proporção da diferença é de fato uma medida útil utilizada em genômica.

A medida predominância da quantidade de Gs em relação aos Cs é chamada G-Skew e é dada por:

gskew = (g-c)/(g+c) Exercício 1) Construir uma função Matlab que

recebe uma sequência de DNA e retorna o seu gskew.

Page 39: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Gskew de um conjunto de genes O gskew acumulado de várias subsequências

menores de uma grande sequência é um indicador de consistência de montagens de genomas.

Se o gskew de uma sequência é positivo então o gskew de sua complementar reversa é negativo e vice-versa.

Exercício 2) Dado um arquivo FASTA com genes fora de ordem de um determinado genoma construir o gráfico do gskew acumulado destes genes.

Page 40: Matlab– Noções introdutórias Roteiro para aulas no PPG em Bioinformática - UFPR Roberto Tadeu Raittz Dr

Gskew

Exercício 3) Construir um novo arquivo FASTA dos genes do exercício anterior considerando o seguinte critério: se o gskew do gene é positivo manter o gene no sentido atual senão incluí-lo no sentido complementar-reverso ao seu.

Exercício 4) Gerar o gráfico do exercício 2 com os genes obtidos no exercício 3.