# Function used in Doña et al. 2020 "Comparing rates of introgression in parasitic feather lice with differing dispersal capabilities" to account for index-swapping incidence in the results library(filenamer) library(knitr) '%ni%' <- Negate('%in%') p_values<- numeric() f_values<- numeric() Table_s1<- numeric() data_ggplot_values<-numeric() for(j in (1:100)){ setwd("") filenames <- list.files() name_file<-numeric() introgression<-numeric() for(i in 1:length(filenames)){ name<- filenames[i] setwd(file.path("", name)) data<-read.table("OUT_speciesAvgDepth-d.txt") data<-droplevels(data[-2,]) data<-droplevels(data[-1,]) data[,4]<-as.numeric(levels(data[,4]))[data[,4]] sum_mistagging<-sum(data[,4]) per_mistagging<-sum_mistagging*9/100 for(z in 1:length(data[,4])){ mistaggin_random<- runif(min = 0, max = per_mistagging, n= 1) data[z,4]<-data[z,4]-mistaggin_random per_mistagging<-per_mistagging-mistaggin_random } sp<- max(data[,4]) intro_total<- sum(data[,4])-sp intro_total<-intro_total/sp name_max<-data[which.max(data[,4]),] name_max<-droplevels(name_max[1,2]) introgression<- rbind(cbind(paste(name_max),paste(intro_total),paste(filenames[i])),introgression) setwd("") } ## setwd("") names_ind<-read.csv("", header = FALSE) filenames <- list.files() name_file<-numeric() introgression_2<-numeric() for(h in 1:length(filenames)){ name<- filenames[h] setwd(file.path("", name)) data<-read.table("") data<-data[-2,] data<-droplevels(data[-1,]) data[,4]<-as.numeric(levels(data[,4]))[data[,4]] sum_mistagging<-sum(data[,4]) per_mistagging<-sum_mistagging*9/100 for(q in 1:length(data[,4])){ mistaggin_random<- runif(min = 0, max = per_mistagging, n= 1) data[q,4]<-data[q,4]-mistaggin_random per_mistagging<-per_mistagging-mistaggin_random } sp<- max(data[,4]) if(name == "SRR3632571") { sp<- data[5,4] } intro_total<- sum(data[,4])-sp intro_total<-intro_total/sp name_max<-data[which.max(data[,4]),] name_max<-droplevels(name_max[1,2]) if(name == "SRR3632571") { name_max<-data[5,4] name_max<-"Physconelloides_eurysema_2" } indv_name<-droplevels(subset(names_ind, names_ind[,1] == name)) indv_name<- droplevels(indv_name[1,2]) introgression_2<- rbind(cbind(paste(name_max),paste(intro_total),paste(indv_name)),introgression_2) setwd("") }