Nothing
#' @name armRatioCI
#' @aliases swapChrRegionDfSizeAndMarks
#' @title FUNCTIONS armRatioCI and swapChrRegionDfSizeAndMarks.
#' @description armRatioCI: reads a data.frame and produces AR (arm ratio), CI
#' (centromeric index) , Guerra and Levan classifications.
#' @description swapChrRegionDfSizeAndMarks: reads data.frames to swap arms
#'
#' @param dfChrSize name of data.frame with columns: shortArmSize, longArmSize
#' @param dfMarkPos name of data.frame of marks
#' @param rnumeric boolean, returns only numeric AR, CI
#' @param chrNamesToSwap name of chr. names to swap arms
#'
#' @keywords data.frame size arm
#' @examples
#' armRatioCI(dfOfChrSize)
#' armRatioCI(bigdfOfChrSize)
#'
#' @seealso \code{\link{chrbasicdatamono}}
#' @references LEVAN A, FREDGA K, SANDBERG AA (1964) NOMENCLATURE FOR
#' CENTROMERIC POSITION ON CHROMOSOMES. Hereditas 52:201–220.
#' @references Guerra. 1986. Reviewing the chromosome nomenclature of Levan et
#' al. Braz. Jour. Gen. Vol IX, 4, 741-743
#'
#' @return data.frame (armRatioCI)
#' @rdname armRatioCI
#' @export
#'
armRatioCI <- function(dfChrSize, rnumeric=FALSE){
dfChrSize<-as.data.frame(dfChrSize)
# message("\nCalculating chromosome indexes\n")
if(!"shortArmSize" %in% colnames(dfChrSize)) {
message("\nSorry, shortArmSize column, mandatory\n")
return(data.frame())
}
if(!"longArmSize" %in% colnames(dfChrSize)) {
message("\nSorry, longArmSize column, mandatory\n")
return(data.frame())
}
dfChrSize$smallest<-pmin(dfChrSize$shortArmSize, dfChrSize$longArmSize)
dfChrSize$largest <-pmax(dfChrSize$shortArmSize, dfChrSize$longArmSize)
dfChrSize$chrSize <-dfChrSize$smallest+dfChrSize$largest
dfChrSize<-dfChrSize[which(!is.na(dfChrSize$chrSize)),]
if(!identical(dfChrSize$smallest,dfChrSize$shortArmSize) ){
dfChrSize$diffSmallShort <- dfChrSize$shortArmSize-dfChrSize$smallest
message(crayon::red("\nERROR in short/long arm classif. It will not be fixed\nChr. (cen) indexes will not be calculated") )
attr(dfChrSize, "indexStatus")<-"failure"
return(dfChrSize)
}
if("OTU" %in% colnames(dfChrSize)){message(paste("\nCalculating chromosome indexes in",unique(dfChrSize$OTU) )
) }
dfChrSize$AR<-format(round(dfChrSize$largest/dfChrSize$smallest,1),nsmall = 1)
dfChrSize$CI<-format(round(dfChrSize$smallest*100/(dfChrSize$longArmSize+dfChrSize$shortArmSize),1),nsmall = 1)
dfChrSize$ARnum<-as.numeric(dfChrSize$AR)
dfChrSize$CInum<-as.numeric(dfChrSize$CI)
dfChrSize$Guerra<-ifelse(dfChrSize$ARnum<=1.49999999999,"M",
ifelse(dfChrSize$ARnum>=1.5 & dfChrSize$ARnum<=2.999999999, "SM",
ifelse(dfChrSize$ARnum>=3, "A","" )
)
)
dfChrSize$Levan<-ifelse(dfChrSize$ARnum==1,"M",
ifelse(dfChrSize$ARnum>1 & dfChrSize$ARnum<1.7,"m",
ifelse(dfChrSize$ARnum==1.7, "m-sm",
ifelse(dfChrSize$ARnum>1.7 & dfChrSize$ARnum<3, "sm",
ifelse(dfChrSize$ARnum==3,"sm-st",
ifelse(dfChrSize$ARnum>3 & dfChrSize$ARnum<7,"st",
ifelse(dfChrSize$ARnum==7,"st-t",
ifelse(dfChrSize$ARnum>7,"t","")
)
)
)
)
)
)
)
if(rnumeric){
dfChrSize$CI<-dfChrSize$CInum
dfChrSize$CInum<-NULL
dfChrSize$AR<-dfChrSize$ARnum
dfChrSize$ARnum<-NULL
}
attr(dfChrSize, "indexStatus")<-"success"
return(dfChrSize)
}
#'
#' @rdname armRatioCI
#' @return list of data.frames (swapChrRegionDfSizeAndMarks)
#' @examples
#' swapChrRegionDfSizeAndMarks(dfOfChrSize,dfOfMarks,"1")
#' @export
swapChrRegionDfSizeAndMarks<- function(dfChrSize,dfMarkPos,chrNamesToSwap){
dfChrSize$chrName<-as.character(dfChrSize$chrName)
dfMarkPos$chrName<-as.character(dfMarkPos$chrName)
for (c in chrNamesToSwap){
index<-NULL
markIndex<-NULL
index<-which(dfChrSize$chrName %in% c )
if(length(index)>0){
dfChrSize$shortArmSize2<-dfChrSize$longArmSize
dfChrSize[index,]$longArmSize<-dfChrSize[index,]$shortArmSize
dfChrSize[index,]$shortArmSize<-dfChrSize[index,]$shortArmSize2
dfChrSize$shortArmSize2<-NULL
}
if(!missing(dfMarkPos)){
markIndex<-which(dfMarkPos$chrName %in% c)
if(length(markIndex)>0){
dfMarkPos$chrRegion2 <- dfMarkPos$chrRegion
dfMarkPos[markIndex,]$chrRegion2[dfMarkPos[markIndex,]$chrRegion %in% "p"]<-"q"
dfMarkPos[markIndex,]$chrRegion2[dfMarkPos[markIndex,]$chrRegion %in% "q"]<-"p"
dfMarkPos[markIndex,]$chrRegion <- dfMarkPos[markIndex,]$chrRegion2
dfMarkPos$chrRegion2<-NULL
}
}
}
mylist<-list(dfChrSize,dfMarkPos)
names(mylist)<-c("dfChrSize","dfMarkPos")
return(mylist )
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.