Você está na página 1de 11

Estat sticas sobre Sequencias de DNA utilizando Software R

Carlos Adriano Beserra da Silva, Jos e Carlos Liberato de Farias, Maria Beatrice Gueiros Silva e Yasmin Lucio Martins. 21 de agosto de 2013
Resumo Neste trabalho constru mos um c odigo que percorre um determinado banco de dados, onde dentro do mesmo cont em v arias esp ecies separadas em tabelas, assim sendo, o c odigo verica todos esses dados fazendo a contagem das bases nitrogenadas de uma sequencia de DNA de uma determinada esp ecie, quantas bases h a para cada uma delas, determina o tamanho dessa sequencia e depois mostra a quantidade de DNA-n ao codicante. Palavras Chaves: Bases nitrogenadas, software R, gr acos, DNA.

Sum ario 1 Introdu c ao

O presente trabalho tem como objetivo principal vericar quais s ao as bases nitrogenadas de algumas esp ecies dadas em um determinado banco de dados, aplicando assim conceitos de estat stica vistos em sala de aula. Para a realiza c ao dos procedimentos do trabalho contamos com o apoio do software estat stico R que atua como plataforma e linguagem de programa c ao, recebendo instru c oes, processando-as e manipulando dados. Como saida do programa escrito temos um relat orio de dados sobre as esp ecies como contagem das bases, tamanho da sequ encia e quantidade de DNA n ao codicante. Al em de efetuar algumas manipula c oes na base de dados descritas na se c ao: Desenvolvendo do Trabalho. Ap os essa etapa o programa escrito em linguagem R apresenta gr acos estat sticos sobre cada base. A exibi c ao do programa codicado em linguagem R ser a divida em algumas etapas atrav es de coment arios no e por m ser a mostrado o c odigo na ntegra.

Desenvolvendo do Trabalho

O algoritmo foi desenvolvido com Software Estat stico R, e foi .utilizado um banco dados que possui sequ encias de DNA de v arias esp ecies. O banco de dados fornecido cont em 18 esp ecies de animais para inicializa c ao do projeto. S ao elas: NBos indicus ,NConsBos indicus, NBos taurus, NConsBos taurus, NBubalus bubalis, NConsBubalus bubalis, NBubalus bubalis breed Mehsana, NConsBubalus bubalis breed Mehsana, NBubalus bubalis breed Murrah, NConsBubalus bubalis breed Murrah, NBubalus bubalis bubalis, NConsBubalus bubalis bubalis, NBubalus carabanensis, NConsBubalus carabanensis, NCapra hircus, NConsCapra hircus, NOvis Aries, NConsOvis Aries . O algoritmo desenvolvido e capaz de contar a bases nitrogenadas de uma sequ encia de DNA, determinar o tamanho da sequ encia e por m transformar as bases adenina e citosina em 1 e guanina e timina em 0.

O algoritmo no R

Nesse momento e exibido o algoritmo desenvolvido no software R, separado por etapas.

3.1

Importa c oes e prepara co es iniciais

#Importa c~ ao da biblioteca seqinr que manipula sequencias biol ogicas no R. #Leitura das bases de dados contidas no arquivo "AlinhamentoGeralNucleotideos.fasta" #previamente fornecido pelo professor da disciplina. require(seqinr) setwd("C:\\BD_Estatistica") seq=read.fasta(file = "AlinhamentoGeralNucleotideos.fasta") #Cria c~ ao de lista que contendo as esp ecies avaliadas. listaBD=seq nomesEspecies=list( "NBos indicus" , "NConsBos indicus", "NBos taurus", "NConsBos taurus", "NBubalus bubalis", "NConsBubalus bubalis", "NBubalus bubalis breed Mehsana", "NConsBubalus bubalis breed Mehsana", "NBubalus bubalis breed Murrah", "NConsBubalus bubalis breed Murrah", "NBubalus bubalis bubalis", "NConsBubalus bubalis bubalis", "NBubalus carabanensis", "NConsBubalus carabanensis", "NCapra hircus", "NConsCapra hircus", "NOvis aries", "NConsOvis aries") #Contadores de bases de nucleot deos

A=0 G=0 C=0 T=0

3.2

Algoritmo Contador e Manipulador de bases

Nesta etapa do algoritmo um la co de repeti c ao percorre as 18 esp ecies, copiando a vers ao da base de dados para uma vari avel, contando as quantidades e fazendo as devidas manipula c oes em cada registro de cada base conforme especica c oes fornecidads e apresentadas na introdu c ao deste trabalho, a saber, adenina e citosina em 1 e guanina e timina em 0. Os contadores A,G,C e T mostrados na subse ca o anterior, s ao atualiza c oes a cada itera c ao do loop para contar as quantidades de bases. contadorBases=list() for(j in 1:18){ listaAtual = listaBD[[j]] listaConvertida = listaBD[[j]] tamListaAtual = length(listaBD[[j]]) for(i in 1:tamListaAtual){ if(listaAtual[i]=="a"){ A = A+1 listaAtual[i]=1 listaConvertida[i]=1 } else if(listaAtual[i]=="t"){ T = T+1 listaAtual[i]=2 listaConvertida[i]=1 } else if(listaAtual[i]=="g"){ G = G+1 listaAtual[i]=3 listaConvertida[i]=0 } else if(listaAtual[i]=="c"){ C = C+1 listaAtual[i]=4 listaConvertida[i]=0 } }

3.3

Apresenta c ao de resultados na tela

Neste momento e feita a contagem de cada bases para cada esp ecie e apresentado na tela o resumo de dados contadorBases[j] = c(A + G + C + T) print(paste("Nome da Esp ecie: ",nomesEspecies[j])) print(paste("Comprimento da Sequ^ encia: ",contadorBases[j])) print(paste("Bases de Nucleot deos")) print(paste("Adenina: ",A)) print(paste("Guanina: ",G)) print(paste("Citosina: ",C)) print(paste("Timina: ",T))

print(paste("DNA 0 da Sequ^ encia: ",tamListaAtual-(A+G+C+T))) print("------------------------------------------------------ ") #Zerando os contadores de bases de nucleot deos para a pr oxima itera c~ ao do loop. G=0 A=0 C=0 T=0 }

3.4

Plotagem de Gr acos

Por m, o c odigo conta com uma u ltima linha onde e poss vel ajustar par ametros e plotar o gr aco da Distribui c ao Gen etica de cada base #modelo de linha para plot, alterar apenas o indice (de 1 a 18) #da lista: listaConvertida e para o nome que aparece no gr afico nomesEspecies plot(listaConvertida[[1]][1:300],type="l",xlab="Comprimento",ylab="Valor", main=paste("Distribui c~ ao Gen etica",nomesEspecies[1]))

3.5

O algoritmo na ntegra

require(seqinr) setwd("C:\\BD_Estatistica") seq=read.fasta(file = "AlinhamentoGeralNucleotideos.fasta") #Cria c~ ao de lista que contendo as esp ecies avaliadas. listaBD=seq nomesEspecies=list( "NBos indicus" , "NConsBos indicus", "NBos taurus", "NConsBos taurus", "NBubalus bubalis", "NConsBubalus bubalis", "NBubalus bubalis breed Mehsana", "NConsBubalus bubalis breed Mehsana", "NBubalus bubalis breed Murrah", "NConsBubalus bubalis breed Murrah", "NBubalus bubalis bubalis", "NConsBubalus bubalis bubalis", "NBubalus carabanensis", "NConsBubalus carabanensis", "NCapra hircus", "NConsCapra hircus", "NOvis aries",

"NConsOvis aries") #Contadores de bases de nucleot deos A=0 G=0 C=0 T=0 contadorBases=list() for(j in 1:18){ listaAtual = listaBD[[j]] listaConvertida = listaBD[[j]] tamListaAtual = length(listaBD[[j]]) for(i in 1:tamListaAtual){ if(listaAtual[i]=="a"){ A = A+1 listaAtual[i]=1 listaConvertida[i]=1 } else if(listaAtual[i]=="t"){ T = T+1 listaAtual[i]=2 listaConvertida[i]=1 } else if(listaAtual[i]=="g"){ G = G+1 listaAtual[i]=3 listaConvertida[i]=0 } else if(listaAtual[i]=="c"){ C = C+1 listaAtual[i]=4 listaConvertida[i]=0 } } contadorBases=list() for(j in 1:18){ listaAtual = listaBD[[j]] listaConvertida = listaBD[[j]] tamListaAtual = length(listaBD[[j]]) for(i in 1:tamListaAtual){ if(listaAtual[i]=="a"){ A = A+1 listaAtual[i]=1 listaConvertida[i]=1 } else if(listaAtual[i]=="t"){ 5

T = T+1 listaAtual[i]=2 listaConvertida[i]=1 } else if(listaAtual[i]=="g"){ G = G+1 listaAtual[i]=3 listaConvertida[i]=0 } else if(listaAtual[i]=="c"){ C = C+1 listaAtual[i]=4 listaConvertida[i]=0 } } contadorBases[j] = c(A + G + C + T) print(paste("Nome da Esp ecie: ",nomesEspecies[j])) print(paste("Comprimento da Sequ^ encia: ",contadorBases[j])) print(paste("Bases de Nucleot deos")) print(paste("Adenina: ",A)) print(paste("Guanina: ",G)) print(paste("Citosina: ",C)) print(paste("Timina: ",T)) print(paste("DNA 0 da Sequ^ encia: ",tamListaAtual-(A+G+C+T))) print("------------------------------------------------------ ") #Zerando os contadores de bases de nucleot deos para a pr oxima itera c~ ao do loop. G=0 A=0 C=0 T=0 } #modelo de linha para plot, alterar apenas o indice (de 1 a 18) #da lista: listaConvertida e para o nome que aparece no gr afico nomesEspecies plot(listaConvertida[[1]][1:300],type="l",xlab="Comprimento",ylab="Valor", main=paste("Distribui c~ ao Gen etica",nomesEspecies[1]))

Resultados Obtidos

Como sa da do programa codicado para o algoritmo, v arios dados calculos que exibiremos em forma de tabelas e gr acos.

NBos indicus Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante NConsBos indicus Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

954 187 245 274 248 1348

2302 435 603 751 513 42

4.1

Tabelas de Resultados

As tabelas a seguir apresentam reumos dos dados c alculos pelo algoritmo na leitura da base de dados fornecida.

4.2

Gr acos Produzidos pelo software R

Reservamos essa se c ao para apresenta c ao dos gr acos de Distribui c ao Gen etica, plotados pelo software R.

Conclus ao

A atividade compreendeu a aplica c ao de conceitos da disciplina de probabilidade e estat stica num contexto real. Permitiu dessa forma amplicar os horizontes da vis ao dos alunos no conteudo. Al em disso a atividade incentivou o uso de ferramentas de apoio dando aos alunos uma oportunidade in edita de aprender sobre elas. Tais ferramentas foram o software estat stico R no qual tivemos que aprender a manusear para programar o algoritmo da atividade e ferramentas de processamento de texto em Latex como o WinEdit. NBos taurus Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

2276 453 626 673 524 42

NConsBos taurus Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

2302 435 603 751 513 16

NBubalus bubalis Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

1556 316 390 468 382 756

NConsBubalus bubalis Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

2302 435 435 751 513 10

NBubalus bubalis breed Mehsana Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

1898 381 495 582 440 443

NConsBubalus bubalis breed Mehsana Tamanho da sequ encia 2302 Quantidade de Adenina 435 Quantidade de Guanina 603 Quantidade de Citosina 751 Quantidade de Timina 513 Quantidade de DNA n ao - codicante 8

NBubalus bubalis bubalis Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

1729 304 468 560 397 574

NConsBubalus bubalis bubalis Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

2302 435 603 751 513 1

NBubalus carabenensis Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

1647 294 442 526 385 655

NConsBubalus carabenensis Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

2302 435 603 751 513 0

NCapra hircus Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

448 99 148 102 99 1858

NConsCapra hircus Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

2302 435 603 751 513 4

NOvis aries Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

1494 378 407 367 342 820

NConsOvis aries Tamanho da sequ encia Quantidade de Adenina Quantidade de Guanina Quantidade de Citosina Quantidade de Timina Quantidade de DNA n ao - codicante

2302 435 603 751 513 12

10

Figura 1: Figura1

Figura 2: Figura2 A aplica c ao dos conceitos vistos em aula associada ao uso de ferrentas enriqueceu o aprendizado do conte udo da disciplina e o leque de conhecimento, contribuindo de forma geral para a forma c ao de Bacharelado em ci encia da computa c ao.

11

Você também pode gostar