https://github.com/charlyknz/HostParasite
Raw File
Tip revision: 5f2604fe866f547dd80d5a77f99ef8887b9f10e1 authored by charlyknz on 07 February 2022, 15:30:02 UTC
Update README.md
Tip revision: 5f2604f
HOBO.R
# R Script to analyse HOBO data
## by Charlotte Kunze 01 May 2019

setwd("~/Desktop/Irland/data")
library(lubridate)
library(tidyverse)
library(scales)

#### import data ####
## constant HOBOs
constant_10 <- read_csv2('~/Desktop/Irland/data/hobo/10_degree_constant_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp) %>%
  filter(temp != 'NA') 

constant_13 <- read_csv2('~/Desktop/Irland/data/hobo/13_degree_constant_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp) %>%
  filter(temp != 'NA') 

constant_16 <- read_csv2('~/Desktop/Irland/data/hobo/16_degree_light_constant_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp, light) %>%
  filter(temp != 'NA') 
constant_16_t <- select(constant_16, -light)
constant_19 <- read_csv2('~/Desktop/Irland/data/hobo/19_degree_constant_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp) %>%
  filter(temp != 'NA') 

constant_22 <- read_csv2('~/Desktop/Irland/data/hobo/22_degree_constant_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp)%>%
  filter(temp != 'NA') 

constant_25 <- read_csv2('~/Desktop/Irland/data/hobo/25_degree_constant_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp)%>%
  filter(temp != 'NA') 

constant_28 <- read_csv2('~/Desktop/Irland/data/hobo/28_degree_constant_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp)%>%
  filter(temp != 'NA') 



## FLUX HOBOs ### 
flux_mean13 <- read_csv2('~/Desktop/Irland/data/hobo/10-16_degree_flux_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp)%>%
  filter(temp != 'NA') 
  
flux_mean16 <- read_csv2('~/Desktop/Irland/data/hobo/13-19_degree_flux_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp)%>%
  filter(temp != 'NA') 

  
flux_mean19 <- read_csv2('~/Desktop/Irland/data/hobo/16-22_degree_flux_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp)%>%
  filter(temp != 'NA') 


flux_mean22 <- read_csv2('~/Desktop/Irland/data/hobo/19-25_degree_flux_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp)%>%
  filter(temp != 'NA') 

flux_mean25 <- read_csv2('~/Desktop/Irland/data/hobo/22-28_degree_flux_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp)%>%
  filter(temp != 'NA') 


## PULSE HOBOs

pulse_13 <- read_csv2('~/Desktop/Irland/data/hobo/13_degree_pulse_+6_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp)%>%
  filter(temp != 'NA') 

pulse_16 <- read_csv2('~/Desktop/Irland/data/hobo/16_degree_pulse_+6_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp)%>%
  filter(temp != 'NA')

pulse_19 <- read_csv2('~/Desktop/Irland/data/hobo/19_degree_pulse_+6_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp)%>%
  filter(temp != 'NA')

pulse_22 <- read_csv2('~/Desktop/Irland/data/hobo/22_degree_light_pulse_+6_end.csv', col_types = cols(date = col_datetime(format = "%m.%d.%y %I:%M:%S%p")) )%>%
  select(no, date, temp, light)%>% # light HOBO
  filter(temp != 'NA')
pulse_22_t <- select(pulse_22, -light)


### --------------------------------------------------------------------------------###
#### add tratment information 
constant_10 <- mutate(constant_10, id = paste('constant 10'),
                      expected_temp = paste(10)) 
constant_13 <- mutate(constant_13, id = paste('constant 13'),
                      expected_temp = paste(13))
constant_16_t <- mutate(constant_16_t, id = paste('constant 16'),
                        expected_temp = paste(16))
constant_19 <- mutate(constant_19, id = paste('constant 19'),
                      expected_temp = paste(19))
constant_22 <- mutate(constant_22, id = paste('constant 22'),
                      expected_temp = paste(22))
constant_25 <- mutate(constant_25, id = paste('constant 25'),
                      expected_temp = paste(25))
constant_28 <- mutate(constant_28, id = paste('constant 28'),
                      expected_temp = paste(28))
flux_mean13 <- mutate(flux_mean13, id = paste('flux 13'),
                      expected_temp = paste(13))
flux_mean16 <- mutate(flux_mean16, id = paste('flux 16'),
                      expected_temp = paste(16))
flux_mean19 <- mutate(flux_mean19, id = paste('flux 19'),
                      expected_temp = paste(19))
flux_mean22 <- mutate(flux_mean22, id = paste('flux 22'),
                      expected_temp = paste(22))
flux_mean25 <- mutate(flux_mean25, id = paste('flux 25'),
                      expected_temp = paste(25))
pulse_13 <- mutate(pulse_13, id = paste('pulse 13'),
                   expected_temp = paste(13))
pulse_16 <- mutate(pulse_16, id = paste('pulse 16'),
                   expected_temp = paste(16))
pulse_19 <- mutate(pulse_19, id = paste('pulse 19'),
                   expected_temp = paste(19))
pulse_22_t <- mutate(pulse_22_t, id = paste('pulse 22'),
                     expected_temp = paste(22))

# bind all data together
all_raw_temp <- rbind(constant_10, constant_13, constant_16_t, constant_19, constant_22, constant_25, constant_28,
                      flux_mean13,flux_mean16,flux_mean19, flux_mean22,flux_mean25, pulse_13, pulse_16,  pulse_19, pulse_22_t) 
#write.csv(all_raw_temp, file = 'all_raw_temperatures_hobo.csv')


### --------------------------------------------------------------------------------###
## --------------------------------------------------------------------------------###
#-----------------------------------------------------------------------------------#
#### calculate mean temperatures####
names(all_raw_temp)
mean_temp <- all_raw_temp %>%
  group_by(id) %>%
  summarise(realtemp = mean(temp)) %>%
  separate(id, into = c('treat', 'expected_temp'), sep = ' ')

# plot the expected temperature against observed temperatures 
ggplot(mean_temp, aes(x = as.numeric(expected_temp), y= realtemp, col = as.factor(treatment)))+
  geom_point(size = 3)+
  geom_abline(intercept = 0, slope = 1)+ #adds a vertical line
  labs( col = 'Treatment', x = 'expected mean temperature (in °C)', y = 'measured mean temperature (in °C)')+
  scale_color_manual(values=c('#003C67FF','#EFC000FF','#A73030FF'),labels = c('constant', 'fluctuating', 'heat wave'))+
  theme( panel.background = element_rect(fill = NA), #loescht den Hintergrund meines Plots/ fuellt ihn mit nichts
         panel.grid.major.y = element_line(color='grey', linetype = 'dashed', size=0.2),
         panel.border= element_rect(colour = "black", fill=NA, size=0.5),
         strip.background = element_rect(color = 'black', fill = 'grey95'),
         legend.background = element_blank(),
         legend.title = element_text(hjust=3), #schiebt text nach links in der Legende
         legend.position  ='bottom',
         legend.key = element_blank(),
         text = element_text(size = 13))
#ggsave('temperature_range.png',plot = last_plot(), width = 8, height = 6) #saves your plot at the given directory

mean_temp <- mean_temp %>%
  select(-expected_temp) %>%
  rename(meanTemp = realtemp, 
         treatment = treat) %>%
  mutate(treatment = paste(ifelse(treatment == 'flux', 'fluctuation', treatment)))
write.csv(MeanTempTreatments.csv)
names(mean_temp)
 
write.csv(mean_temp, 'MeanTempTreatments.csv')


#### temperature plots ####
temperature<-all_raw_temp  %>%
  filter(date > ymd_hms("2019-04-09 18:24:09"))%>%
  filter(date < ymd_hms("2019-05-06 09:24:09"))
#constant
ggplot(subset(temperature, id %in% c('constant 10', 'constant 13', 'constant 16', 'constant 19', 'constant 22', 'constant 25', 'constant 28' )), aes(x = date, y = temp))+
         geom_point()+
  facet_wrap(~id)+
  #scale_y_continuous(breaks = seq(10,28,6), limits = c(5, 30))+
  #scale_x_datetime(breaks = '7 days', date_labels = '%d.%m')+  
  labs(x = 'Date', y = 'Temperature (in °C)')+
  theme_classic()

#other
ggplot(subset(temperature, !id %in% c('pulse 22','constant 10', 'constant 13', 'constant 16', 'constant 19', 'constant 22', 'constant 25', 'constant 28' )), aes(x = date, y = temp))+
  geom_point(size = 0.5)+
  geom_line(size = 1)+
  facet_wrap(~id)+
 labs(x = 'Date', y = 'Temperature (in °C)')+
  theme_classic()
#ggsave(last_plot(), file = 'variable_temperatures.png',height = 8, width = 11)

pulse_22 %>%
  filter(date > ymd_hms("2019-04-09 18:24:09"))%>%
  filter(date < ymd_hms("2019-05-06 09:24:09"))%>%
  ggplot(., aes(x = date, y = temp))+
  geom_point()+
  geom_line()+
  geom_hline(aes(yintercept = mean(temp)), colour="blue")+
  scale_x_datetime(breaks = '3 days', date_labels = "%d.%m")+
  scale_y_continuous(breaks = seq(21, 29, 2), limits = c(20, 29))+
  labs(x = ' ', y = 'Temperature (in °C)')+
  theme_bw()


#light plot
pulse_22 %>%
  filter(date > ymd_hms("2019-04-09 18:24:09"))%>%
  filter(date < ymd_hms("2019-05-06 09:24:09"))%>%
  ggplot(., aes(x = date, y = light))+
  geom_point()+
  geom_line()+
  geom_hline(aes(yintercept = mean(light)), colour="blue")+
  scale_x_datetime(breaks = '3 days', date_labels = "%d.%m")+
  scale_y_continuous(breaks = seq(0, 3500, 500), limits=c(0, 3500))+
  labs(x = ' ', y = 'Light intensity (in lux)')+
  theme_bw()
#ggsave('pulse_22_light.png',plot = last_plot(), width = 8, height = 6) #saves your plot at the given directory

back to top