## ExerciseBox_24.1_reverse_comp # preliminary, generate upper and lower case sequences randomDNAup<-paste(sample(c("A","C","G","T"),100,rep=TRUE,prob=c(0.25,0.25,0.25,0.25)),collapse="") randomDNAlow<-paste(sample(c("a","c","g","t"),100,rep=TRUE,prob=c(0.25,0.25,0.25,0.25)),collapse="") # Part 1 s<-randomDNAup #OR s<-randomDNAlow # test if upper case ifelse(s==toupper(s),is.upper<-TRUE,is.upper<-FALSE) is.upper library(seqinr) reverse_complement<-paste(rev(comp(unlist(strsplit(s,"")))),collapse="") if(is.upper) reverse_complement<-toupper(reverse_complement) #reverse_complement # Part 2 # preliminary, generate upper and lower casesequences randomDNAwithXs<-paste(sample(c("A","C","G","T","N","X"),100,rep=TRUE,prob=c(0.23,0.23,0.23,0.23,.02,.04)),collapse="") # randomDNAwithXs s<-unlist(strsplit(randomDNAwithXs,"")) map=c("A"="T","T"="A","G"="C","C"="G","N"="N","X"="X","t"="a","a"="t","c"="g","g"="c","n"="n","x"="x") revcompDNAwithNX<- paste(rev(map[s]),collapse="") revcompDNAwithNX