rbd.find_new_pattern <- function(pattern_num,list_of_cleaves,cleave_offset,direction=c('less','more')){
  new_pattern_num <- pattern_num
  #make a boolean statement up here before the rest of the
  #will depend on the direction statement
  #return NULL?
  #can turn character (min or max)
  if((direction == "less") && (new_pattern_num > max(list_of_cleaves))){
    return('max') #if the end pattern is beyond the last letter --> return 'max'
  } else if((direction == "more") && (new_pattern_num < min(list_of_cleaves))){
    return('min') #if the start pattern is beyond the last letter --> return 'min'
  }
  if(!(pattern_num %in% list_of_cleaves)){
    #list_of_cleaves_sub <- list_of_cleaves[pattern_num > list_of_cleaves]
    pattern_num2 <- pattern_num
    cleave_site_found <- FALSE
    first_round <- TRUE
    #need to first check if the difference between pattern_num2 and
    while(cleave_site_found == FALSE){
      if(direction == "more"){
        list_of_cleaves_sub <- list_of_cleaves[pattern_num2 > list_of_cleaves]
        last_cleave <- tail(list_of_cleaves_sub,n=1) #last integer
        last_cleave2 <- tail(list_of_cleaves_sub,n=2)[1] #second to last integer
        # if(((pattern_num2-last_cleave) < cleave_offset) && first_round == TRUE){
        #   #if the difference is more, use the last one
        #   cleave_site_found <- TRUE
        #   new_pattern_num <- last_cleave
        #   break
        # }
      } else if(direction == "less"){
        list_of_cleaves_sub <- list_of_cleaves[pattern_num2 < list_of_cleaves]
        last_cleave2 <- head(list_of_cleaves_sub,n=1) #last integer
        last_cleave <- head(list_of_cleaves_sub,n=2)[2] #second to last integer
      } else {
        warning("No direction chosen --> Returning NULL")
        return(NULL)
      }
      if(is.na(last_cleave) || is.na(last_cleave2)){
        last_cleave <- pattern_num2
        cleave_site_found <- TRUE
        if(direction == "more"){
          new_pattern_num <- min(list_of_cleaves)
        } else if(direction == "less"){
          new_pattern_num <- max(list_of_cleaves)
        }
        break
      }
      if((last_cleave-last_cleave2) <= cleave_offset){
        #if TRUE, the difference is less, so the start pattern should be changed to the last_cleave
        pattern_num2 <- last_cleave
        first_round <- FALSE
        next
        #need to account for the fact that need to take last_cleave2 if on more than the second iteration
        #so if this
      } else {#end if((last_cleave-last_cleave2) > cleave_offset){
        cleave_site_found <- TRUE
        if(direction == "more"){
          new_pattern_num <- list_of_cleaves[match(last_cleave,list_of_cleaves)]+1
        } else if(direction == "less"){
          new_pattern_num <- list_of_cleaves[match(last_cleave,list_of_cleaves)-1]
        }
      }#end else to if((last_cleave-last_cleave2) > cleave_offset){
    } #end while(cleave_site_found == FALSE){
  } #end if(!(pattern_num %in% list_of_cleaves)){
  if(direction == "more"){
    if(pattern_num < new_pattern_num){
      new_pattern_num <- pattern_num
    }
  } else if(direction == "less"){
    if(pattern_num > new_pattern_num){
      new_pattern_num <- pattern_num
    }
  } else {
    warning("No direction chosen --> Returning NULL")
    return(NULL)
  }
  return(new_pattern_num)
} #end function rbd.find_new_pattern
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.