====== Hevelim Serrão de Lima ====== {{:bie5782:01_curso_atual:alunos:trabalho_final:hevelimsl:dacf02de-c3e2-4422-90fe-2b5903d11868.jpg?135}} Mestranda em Oceanografia Biológica pelo Instituto Oceanográfico-IO USP Desenvolvendo projeto com foco no fluxo de carbono na teia trófica pelágica no município de Ubatuba- SP, pelo Laboratório de Biogeoquímica Marinha-LABMAR [[http://www.io.usp.br/index.php/pesquisa/laboratorios#laboratório-de-biogeoquímica-marinha-labmar|Laboratório de Biogeoquímica Marinha]] [[.:exec]] 8-O **Trabalho Final** **Proposta A** A identificação de organismos e a contagem destes geram grandes bancos de dados. Principalmente quando se trabalha com microorganismos, pois a contagem de indivíduos por lâmina ultrapassa 200. Administrar todas as informações sempre leva mais tempo do que o necessário. A minha proposta é tornar a análise dos dados quali- e quantitativos rápida e eficaz. Uma função que organize mais de um banco de dados para análises qualitativas e quantitativas em uma tabela única. O objeto de entrada deve ser um arquivo csv ou txt, retornará colunas com o nome das classes,o nome das espécies, somatório total de cada espécie, média, desvio padrão. A partir disso, vai gerar um barplot apenas das classes com a porcentagem destas na amostra total. Ex.: planilhas com nomes de espécies de microalgas, suas classes e contagem a cada amostra, poderão ser agrupadas em uma tabela única, e realizar as análises básicas de dados, somatório, média e desvio padrão. Oi Hevelim, preciso de mais informações pra poder te ajudar. Quais as infos que vc tem sobre cada indivíduo? A função vai ler mais de um arquivo csv/txt de uma vez e vai montar uma única tabela? E se as colunas nos bancos de dados não estiverem na mesma ordem, ou com o mesmo nome no cabeçalho? Não entendi que tipo de gráfico seria devolvido ao usuário. Não entendi que média e desvio padrão será calculado. Tem alguma coisa a ver com a abundância das espécies? Dá uma olhada nos pacotes tidyr e dplyr pra já ir tendo umas ideias, ok? bjos ----//[[renata.orofino@gmail.com|Rena]]// **Proposta B** Função que calculará a taxa de predação ou herbivoria (quantitativo de presa e predador) em relação a um período de tempo determinado pelo usuário. Os objetos de entrada devem ser arquivos csv ou txt, contendo a contagem de presa e predador para cada tempo já pré-determinado pelo pesquisador (ex.: tempo 0, 6h, 12h, 18h e 24h). Será calculado o somatório total de presas e predadores para cada tempo e a partir da diferença entre estes em relação ao tempo zero, gerará um gráfico de regressão evidenciando a taxa de predação a cada período de tempo. Caso haja mais de uma espécie de presa, um barplot será criado mostrando as espécies mais consumidas pelo predador. Ex.: Inter-relação fitoplâncton e zooplâncton A função calculará a quantidade de organismos fitoplanctônicos consumidos pelo zooplâncton dentro do ciclo circadiano, gerando um gráfico de regressão linear e um barplot com as espécies de fitoplâncton mais consumidas. Oi de novo, Essa pareceu mais bacanuda, hein? Ainda assim, você não conseguiu deixar a proposta muito clara. Quais devem ser os dados da entrada? O usuário precisa avisar quem é predador e quem é presa? O intervalo é um argumento da função, ou é um vetor a mais na tabela de origem? Quais serão os objetos de saída? Só o gráfico? Qual o objetivo desse tipo de análise? Estamos esgotando todas as "contas" possíveis a partir desse conjunto de dados? bjos ----//[[renata.orofino@gmail.com|Rena]]// Oii Rena! Desculpe o atraso na resposta. Vou tentar explicar melhor minha proposta B. Os dados de entrada devem ser arquivos csv ou txt com as colunas de presas e predadores separadas, o usuário precisa defini-los A ideia é ter um csv de presas e outro para predadores. Todas as espécies de presas em uma coluna e em outra coluna a sua abundância (a quantidade de cada espécie no determinado período de tempo). Portanto se a contagem de presas for feita dentro de um período de 6 em 6h em 1 dia, teremos 4 colunas (6am, 12pm, 6pm, 12am) de abundancia. O mesmo se aplica ao csv dos predadores. Pensando em predadores e presas de um ecossistema, algo mais amplo como herbívoros (zoo e fitoplâncton) O intervalo de tempo é mais um vetor. Os meus objetos de saída serão as análises estatísticas de média, desvio, variância e o gráfico mostrando a variação da abundância de presas e de predadores a cada período de tempo. E um barplot com as espécies que mais foram predadas somando os dados de todos os intervalos de tempo. Não se ficou mais claro. bjs Oi Hevelim, Entendi. Acho que pode começar a fazer essa proposta B que vai dar jogo. Tenha carinho pelo conjunto de dados de entrada, pois talvez a forma como vc pensou em organizar te dê mais trabalho para manipular os dados. Faça brincadeiras com essa organização antes de começar a pensar a função. vc pode colocar cada espécie como sendo uma coluna e indicar as abundâncias ao longo do tempo nas diferentes linhas Tempo | Plecia sp. | Boa c. 12 | 20 | 2 24 | 18 | 2 36 | 14 | 3 48 | 8 | 3 Veja se entendeu minha "tabela", pq eu não soube faze-la na wiki... Se precisar de qq ajuda, me avise. Beijo ---- ====== Projeto Final ===== ===== Função ===== **Análise de Predação** setwd() # altera diretório analise.predacao = function(file1,file2) #criando a função { options(digits=4) # limita número de casas decimais nos outputs presas = read.csv(file = file1, sep=",", head=T) # lê primeiro arquivo de dados de entrada predadores = read.csv(file = file2, sep=",", head=T) # lê segundo arquivo de dados de entrada ######################################################### ##### GERANDO ANÁLISE DESCRITIVA PARA PRESAS E PREDADORES ##### SOMA, MÉDIA, DESVIO-PADRAO, MÁXIMO, MEDIANA, MÍNIMO ######################################################### ########################################## # Presas ########################################## presas.2=presas[c(-1,-2)][presas$predacao==1,] #selecionando apenas colunas com os períodos de tempo onde predacao=1. soma.presas=apply(presas.2, 2, sum) # soma para cada tempo media.presas=apply(presas.2, 2, mean) # média para cada tempo std.presas=sqrt(apply(presas.2, 2, var)) # desvio-padrão para cada tempo min.presas=apply(presas.2, 2, min) # mínimo para cada tempo mediana.presas=apply(presas.2, 2, median) # mediana para cada tempo max.presas=apply(presas.2, 2, max) # máximo para cada tempo analise.presas=t(data.frame(soma.presas,media.presas,std.presas,min.presas,mediana.presas,max.presas)) # junta resultados de presas em um data.frame rownames(analise.presas)=c("Soma","Média","Desvio-Padrão","Mínimo","Mediana","Máximo") print("Análise Descritiva Presas") # exibe o "título" da tabela print(analise.presas) # exibe output no console View(analise.presas) # exibe output em uma janela ########################################## # Predadores ########################################## predadores.2=predadores[c(-1)] #selecionando apenas colunas com os períodos de tempo soma.predadores=apply(predadores.2, 2, sum) # soma para cada tempo media.predadores=apply(predadores.2, 2, mean) # média para cada tempo std.predadores=sqrt(apply(predadores.2, 2, var)) # desvio-padrão para cada tempo min.predadores=apply(predadores.2, 2, min) # mínimo para cada tempo mediana.predadores=apply(predadores.2, 2, median) # mediana para cada tempo max.predadores=apply(predadores.2, 2, max) # máximo para cada tempo analise.pred=t(data.frame(soma.predadores,media.predadores,std.predadores,min.predadores,mediana.predadores,max.predadores)) # junta resultados de predadores em um data.frame rownames(analise.pred)=c("Soma","Média","Desvio-Padrão","Mínimo","Mediana","Máximo") print("Análise Descritiva predadores") # exibe o "título" da tabela print(analise.pred) # exibe output no console View(analise.pred) # exibe output em uma janela ########################################## ### Gráfico 1 evidenciando a soma de predadores e presas observadas em cada período de tempo ########################################## ### argumentos para o "plot" tempo=names(soma.presas) # nomes dos intervalos de tempo ymin=min(soma.presas,soma.predadores) # valor mínimo do eixo "y" do gráfico ymax=max(soma.presas,soma.predadores) # valor máximo do eixo "y" do gráfico x.axis=1:length(soma.presas) # intervalos no eixo "x" #Grafico1 png(filename="presasvspredadores.png") #Salva gráfico no diretório atual plot(x.axis,soma.presas, xlab="Tempo", ylab="Quantidade de Individuos",ylim = c(ymin,ymax), xaxt="n", type='o', col="green", lwd=1.5) # plota gráfico axis(1,at=1:length(tempo), labels=tempo) # nomes dos intervalos no eixo "x" points(1:length(soma.presas),soma.predadores,pch=2, type='o', col="red", lwd=1.5) #adiciona linha de predadores no gráfico legend("topleft", c("Presas","Predadores"),col=c("green","red"), pch=c(1,2),cex = 0.8) # adiciona legenda dev.off() # retira exibição do gráfico #Exibe gráfico no R plot(x.axis,soma.presas, xlab="Tempo", ylab="Quantidade de Individuos",ylim = c(ymin,ymax), xaxt="n", type='o', col="green", lwd=1.5) # plota gráfico axis(1,at=1:length(tempo), labels=tempo) # nomes dos intervalos no eixo "x" points(1:length(soma.presas),soma.predadores,pch=2, type='o', col="red", lwd=1.5) #adiciona linha de predadores no gráfico legend("topleft", c("Presas","Predadores"),col=c("green","red"), pch=c(1,2),cex = 0.8) # adiciona legenda # Criando tabela com consumo de presas presas=presas[with(presas,order(-predacao,generos)),] #ordena tabela em ordem decrescente de "predacao" e depois em ordem alfabética de "generos" presas1=presas[c(-1,-2)][presas$predacao==1,] # seleciona tempos com "predacao"=1 presas0=presas[c(-1,-2)][presas$predacao==0,] # seleciona tempos com "predacao"=0 diferenca=presas0-presas1 # faz a diferença das quantidades de presas em cada tempo obtendo o consumo das presas generos=presas[presas$predacao==1,1] # seleciona apenas generos consumo.presas=data.frame(generos,diferenca$t0,diferenca$t1,diferenca$t2,diferenca$t3,diferenca$t4) # cria data.frame de consumo colnames(consumo.presas)=names(presas[c(-2)]) # nomeia as colunas soma.consumo.presas=data.frame(consumo.presas,rowSums(consumo.presas[c(-1)])) # cria coluna de soma colnames(soma.consumo.presas)=c(names(consumo.presas),"total") # nomeia colunas print("Consumo de Presas") # exibe "título" da tabela de consumo print(soma.consumo.presas) # exibe tabela de consumo View(soma.consumo.presas) # exibe tabela de em uma janela #write.table(consumo.presas,"soma.consumo.presas.csv", sep=",") #print(soma.consumo.presas,row.names = FALSE) #Top 10 generos mais consumidos maiores.consumos=head(soma.consumo.presas[with(soma.consumo.presas,order(-total)),],10) #Top 10 generos menos consumidos menores.consumos=head(soma.consumo.presas[with(soma.consumo.presas,order(total)),],10) ymax=max(soma.consumo.presas$total) # valor máximo eixo "y" #Grafico 2 png(filename="maisconsumidos.png") # salva gráfico dos mais consumidos print("Presas mais consumidas") # "título" gráfico mais consumidos par(las=2) # altera direção dos labels do eixo "x", posição vertical barplot(maiores.consumos$total,names.arg=maiores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos mais consumidos #dev.off() # retira exibição do gráfico dev.new() par(las=2) # altera direção dos labels do eixo "x", posição vertical barplot(maiores.consumos$total,names.arg=maiores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos mais consumidos #Grafico 3 png(filename="menosconsumidas.png") # salva gráfico dos mais consumidos print("Presas menos consumidas") par(las=2) # altera direção dos labels do eixo "x", posição vertical barplot(menores.consumos$total,names.arg=menores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos menos consumidos #dev.off() # retira exibição do gráfico dev.new() par(las=2) # altera direção dos labels do eixo "x", posição vertical barplot(menores.consumos$total,names.arg=menores.consumos$generos,col = "blue", cex.names=0.6,ylim = c(0,ymax*1.25)) # exibe barplot dos menos consumidos } ################################################################### ---- **Help da função** analise.predacao() package:unknown R Documentation Análise descritiva, cálculo do consumo de presas e visualização gráfica Description: Realiza as análises descritivas de dados de presas e predadores e calcula o consumo das presas em função de diferentes períodos de tempo e os exibe em tabelas. A partir da somatório individual de presas e predadores gera um gráfico de linhas evidenciando a quantidade de indivíduos em cada período de tempo estabelecido. Gera dois gráficos de barras destacando até as dez espécies de presas mais consumidas e menos consumidas respectivamente. Usage: analise.predacao("file1.csv", "file2.csv") Arguments: file1.csv Um arquivo do tipo .csv com o número de espécies de presas observadas em cada tempo com e sem predação File2.csv Um arquivo do tipo .csv com dados de predadores Details: O arquivo file.1 deve conter dados de um experimento que consiste de um grupo controle, onde as presas foram observadas em habitats sem predadores para comparar com um grupo com a presença de predadores. Deve conter na primeira coluna o nome dos gêneros ou espécies, na segunda coluna deve conter a informação de predação apenas com 1 e 0, sendo 1="com predadores no habitat" e 0="sem a presença de predadores". As demais colunas devem representar a quantidade de presas observadas em cada período de tempo. Author(s): Hevelim Serrao de Lima hevelimsl@usp.br São Paulo, 25 de Junho, 2017. Examples: ##Utilizando experimento com gêneros de fitoplâncton (presas) e zooplâncton (predadores) seguindo o ciclo circadiano. analise.predacao("presas.n.csv","predadores.n.csv") **Exemplo** {{:bie5782:01_curso_atual:alunos:trabalho_final:hevelimsl:presas.n.csv|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:hevelimsl:predadores.n.csv|}}