Vetores (Arrays e Hashes)
Apresentação
Material para aula
Arquivo em formato fasta: dmel-subset-gene-r5.45.fasta
MD5 = 185057f6340dc01e022cbbbc7a51f343
Exemplos
1
2
3
4
5
6
7
8
# exemplo01
#! /usr/bin/perl
# script para entender arrays
# criando o array de nomes
@gene_names = ( "gene1", "gene2", "gene3", "gene4", "gene5" );
exit;
========
1
2
3
4
5
# exemplo02
# continuacao do script para entender arrays
# criando o array de IDs
@gene_IDs = ( "FBgn0033056", "FBgn0037888", "FBgn0034742", "FBgn0032640", "FBgn0259204" );
========
1
2
3
4
5
6
7
8
9
# exemplo03
# continuacao do script para entender arrays
# acessando os elementos individuais do array
print "$gene_IDs[0] \= $gene_names[0]\;\n";
print "$gene_IDs[1] \= $gene_names[1]\;\n";
print "$gene_IDs[2] \= $gene_names[2]\;\n";
print "$gene_IDs[3] \= $gene_names[3]\;\n";
print "$gene_IDs[4] \= $gene_names[4]\;\n";
========
1
2
3
4
5
6
7
8
# exemplo04
# continuacao do script para entender arrays
#adicionando elementos no array
$gene_names[5] = "CG15556";
$gene_IDs[5] = "FBgn0039821";
print "$gene_IDs[5] \= $gene_names[5]\;\n";
========
1
2
3
4
5
6
7
# exemplo05
# adicionando mais elementos no array
$gene_names[7] = "CG9773";
$gene_IDs[7] = "FBgn0037609";
print "$gene_IDs[6] \= $gene_names[6]\;\n";
print "$gene_IDs[7] \= $gene_names[7]\;\n";
========
1
2
3
4
# exemplo06
# adicionando mais elementos no array
$gene_names[6] = "CG7059";
$gene_IDs[6] = "FBgn0038957";
========
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# exemplo07
# o que faz a funcao push()?
push(@gene_names, "RabX4");
push(@gene_IDs, "FBgn0051118");
print "\nExemplo07\:\n";
print "$gene_IDs[0] \= $gene_names[0]\;\n";
print "$gene_IDs[1] \= $gene_names[1]\;\n";
print "$gene_IDs[2] \= $gene_names[2]\;\n";
print "$gene_IDs[3] \= $gene_names[3]\;\n";
print "$gene_IDs[4] \= $gene_names[4]\;\n";
print "$gene_IDs[5] \= $gene_names[5]\;\n";
print "$gene_IDs[6] \= $gene_names[6]\;\n";
print "$gene_IDs[7] \= $gene_names[7]\;\n";
print "$gene_IDs[8] \= $gene_names[8]\;\n";
========
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# exemplo08
# o que faz a funcao pop()?
pop(@gene_names);
pop(@gene_IDs);
print "\nExemplo08\:\n";
print "$gene_IDs[0] \= $gene_names[0]\;\n";
print "$gene_IDs[1] \= $gene_names[1]\;\n";
print "$gene_IDs[2] \= $gene_names[2]\;\n";
print "$gene_IDs[3] \= $gene_names[3]\;\n";
print "$gene_IDs[4] \= $gene_names[4]\;\n";
print "$gene_IDs[5] \= $gene_names[5]\;\n";
print "$gene_IDs[6] \= $gene_names[6]\;\n";
print "$gene_IDs[7] \= $gene_names[7]\;\n";
print "$gene_IDs[8] \= $gene_names[8]\;\n";
========
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# exemplo09
# o que faz a funcao shift()?
$gene_name01 = shift(@gene_names);
$gene_id01 = shift(@gene_IDs);
print "\nExemplo09\:\n";
print "$gene_id01 \= $gene_name01\;\n";
print "Novo array\:\n";
print "$gene_IDs[0] \= $gene_names[0]\;\n";
print "$gene_IDs[1] \= $gene_names[1]\;\n";
print "$gene_IDs[2] \= $gene_names[2]\;\n";
print "$gene_IDs[3] \= $gene_names[3]\;\n";
print "$gene_IDs[4] \= $gene_names[4]\;\n";
print "$gene_IDs[5] \= $gene_names[5]\;\n";
print "$gene_IDs[6] \= $gene_names[6]\;\n";
print "$gene_IDs[7] \= $gene_names[7]\;\n";
print "$gene_IDs[8] \= $gene_names[8]\;\n";
========
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# exemplo10
# o que faz a funcao unshift()?
unshift(@gene_names, $gene_name01);
unshift(@gene_IDs, $gene_id01);
print "\nExemplo10\:\n";
print "$gene_IDs[0] \= $gene_names[0]\;\n";
print "$gene_IDs[1] \= $gene_names[1]\;\n";
print "$gene_IDs[2] \= $gene_names[2]\;\n";
print "$gene_IDs[3] \= $gene_names[3]\;\n";
print "$gene_IDs[4] \= $gene_names[4]\;\n";
print "$gene_IDs[5] \= $gene_names[5]\;\n";
print "$gene_IDs[6] \= $gene_names[6]\;\n";
print "$gene_IDs[7] \= $gene_names[7]\;\n";
print "$gene_IDs[8] \= $gene_names[8]\;\n\n";
========
1
2
3
4
5
6
7
8
9
10
11
12
# exemplo11
# funcao splice() para substituicao
# uso: splice (@array, inicio, tamanho, @lista_substituir)
@nums = (1..20);
print "\nExemplo11\:\n";
print "Antes - @nums\n";
splice(@nums,5 ,5 , 21..25);
print "Depois - @nums\n";
========
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# exemplo12
# funcao split()
# transformar string em array
# strings
$var_music = "Rain-Drops-On-Roses-And-Whiskers-On-Kittens";
$var_Jon = "You know nothing, Jon Snow";
# transformar strings em arrays
@music = split('-', $var_music);
@Jon = split(' ', $var_Jon);
print "\nExemplo12\:\n";
print "$music[5]\n";
print "$Jon[3]\n";
========
1
2
3
4
5
6
7
8
9
10
# exemplo13
# funcao join()
# transformar array em string
$string1 = join( ' ', @music );
$string2 = join( '-', @Jon );
print "\nExemplo13\:\n";
print "$string1\n";
print "$string2\n";
========
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# exemplo14
#! /usr/bin/perl
# script para entender hashes
# criando o hash de genes
%genes = ("FBgn0033056", "CG7856",
"FBgn0037888", "scpr-B",
"FBgn0034742", "CG424",
"FBgn0032640", "Sgt",
"FBgn0259204", "CG42308",
"FBgn0039821", "CG15556",
"FBgn0038957", "CG7059",
"FBgn0037609", "CG9773");
exit;
========
Exercício
Exercício para entrega via e-mail. Informar os comandos para todos os itens. O exercício deverá estar em um arquivo no formato txt, como o nome NomeSobrenomeE03.txt (substituir NomeSobrenome pelo próprio nome, por exemplo, TatianaTorresE03.txt). Prazo: 31/08/2018
-
Crie um script que use três sequencias informadas pelo usuário pela entrada padrão e retorne as sequências em formato fasta na ordem inversa.
Dica: Armazene as sequências em um array. -
Faça um script que use como entrada um códon, informado pelo usuário e tenha como saída o aminoácido correspondente ao códon solicitado.
Dica: Crie um hash para o código genético.