#SOSCC algorithm #George M. Garrity and Timothy G. Lilburn #Copyright Michigan State University 2004, all rights reserved "step12" = function(taxon.subset, genus.order) { #print("inside step12") all.genus <- substring(as.character(taxon.subset[, 4]), 1, regexpr("[^a-zA-Z]", as.character(taxon.subset[, 4])) - 1) reorder <- as.data.frame(cbind(as.character(taxon.subset[, 5]), all.genus)) dimnames(reorder)[[1]] <- as.factor(dimnames(taxon.subset)[[1]]) x <- NULL for(i in 1:length(all.genus)) { x <- c(x, dimnames(reorder)[[1]][reorder[, 2] == genus.order[i]]) #x <- c(x, dimnames(reorder)[[1]][reorder[, 1] == genus.order[i]]) } taxon.subset <- taxon.subset[x, ] family.order <- taxon.subset[1, 5] j <- length(family.order) for(i in 1:nrow(taxon.subset)) { if(taxon.subset[i, 5] == family.order[j]) next if(taxon.subset[i, 5] != family.order[j]) { family.order <- c(as.character(family.order), as.character(taxon.subset[i, 5])) j <- j + 1 } } return(x, family.order) }