Vetores (Arrays e Hashes)

Apresentação

aula04.pdf

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

  1. 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.

  2. 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.