Uma das maiores vantagens de usar o R é o grande número de pacotes especializados disponíveis. Um ótimo lugar para ver estes pacotes, agrupados por área, é a página do CRAN Task Views. Aqui você pode encontrar pacotes R que lidam com tudo, desde Quimiometria até Ambientometria e pacotes que lidam com Tecnologias Web e Pesquisa de Reprodução. Neste post, apresentarei pacotes R na área de Biologia, que na verdade pertencem a várias subáreas no CRAN Task View, visto que existem páginas sobre genética, ensaios clínicos, análise de sobrevivência, filogenética e farmacocinética, por exemplo. Já que a biologia é um campo enorme que requer conhecimentos especializados, vou me concentrar apenas em maneiras simples de visualizar dados desse tipo (visto que não sou biólogo). Também é possível encontrar recursos on-line para lidar com Biologia em R, por exemplo: aqui, aqui e aqui.
Uma maneira visualmente impressionante para apresentar seus dados biológicos é usando o phylopics da página phylopic.org, que disponibiliza imagens de silhuetas. Vamos imaginar que queremos representar graficamente o surto do Zika Vírus. No código a seguir, eu carrego as bibliotecas necessárias (que você precisará instalar com install.packages() caso não as tenha), baixamos a imagem de phylopic.org, simulamos o surto de vírus e o plotamos usando ggplot2. O pacote OutbreakTools irá automaticamente gerar um lote semelhante para você, mas aqui eu decidi adicionar o phylopic, então eu mesmo construí o gráfico.
library(dplyr) library(tidyr) library(rphylopic) library(OutbreakTools) # baixar imagem mosquito <- image_data("f538aa99-5c08-4f96-97d9-2e094ef5d84f", size = "512")[[1]] # simular surto set.seed(1) virus <- simuEpi(N = 100, D = 20, beta = 0.01, makePhylo = TRUE, plot = FALSE) # plotar gráfico v <- virus$dynamics %>% gather(category, tally, Susceptible:Recovered) ggplot(v, aes(x = date, y = tally, group = category, colour = category)) + add_phylopic(mosquito, alpha = .3, color = "black") + geom_line(size = 1, linetype = 1) + scale_color_manual(values = c("#CD2626", "gold", "#FF7F00")) + theme_minimal() + theme(axis.title = element_blank())
Esse pacote também torna a plotagem de redes de transmissão muito fáceis:
plot(virus$x, "contacts", main="Transmission tree")
Conheça mais do curso de Programação em R oferecido pelo IBPAD – Inscrições abertas em São Paulo e no Rio de Janeiro!
Podemos também usar esse método de visualização para representar estatísticas descritivas, como o número de espécies observadas em uma determinada área ao longo de um período de trinta dias. Primeiro vamos simular alguns dados, e então podemos criar gráficos como fizemos acima.
# simular dados species <- data_frame(animals = rep(c("tarantula", "tiger", "bear"), each = 30), days = c(1:30, 1:30, 1:30), count = c(rnorm(30, mean = 15, sd = 2), rnorm(30, 9, 2), rnorm(30, 30, 2))) %>% mutate(count = ceiling(count)) # baixar imagens tarantula <- get_image("d780fdc0-311f-4bc5-b4fc-1a45f4206d27", size = "512")[[1]] lizard <- get_image("9cae2028-126b-416f-9094-250782c5bc22", size = "512")[[1]] moth <- get_image("8229756b-82c3-4a9f-a1c6-e88f958e623e", size = "512")[[1]] # plotar gráfico library(gridExtra) # put plots side by side plot_1 <- ggplot(species[1:30,], aes(x = days, y = count)) + add_phylopic(tarantula, alpha = 0.5) + theme_minimal() + geom_point() plot_2 <- ggplot(species[31:60,], aes(x = days, y = count)) + add_phylopic(lizard, color = "palegreen4", alpha = 0.5) + theme_minimal() + geom_point(colour = "palegreen4") plot_3 <- ggplot(species[61:90,], aes(x = days, y = count)) + add_phylopic(moth, color = "firebrick", alpha = 0.5) + theme_minimal() + geom_point(colour = "firebrick") grid.arrange(plot_1, plot_2, plot_3, ncol=3)
E pronto! Com algumas linhas de código R, você pode criar visualizações impressionantes para a pesquisa nas Ciências Biológicas.