Mercurial > repos > morinlab > select_optimal_cluster
changeset 2:7edf4d48a350 draft default tip
Uploaded
author | morinlab |
---|---|
date | Sun, 04 Dec 2016 15:57:18 -0500 |
parents | 7717e4a7ca07 |
children | |
files | select_optimal_cluster.R |
diffstat | 1 files changed, 93 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/select_optimal_cluster.R Sun Dec 04 15:57:18 2016 -0500 @@ -0,0 +1,93 @@ +library(argparse) + +parser <- ArgumentParser(description="Select the best TITAN cluster"); + +parser$add_argument( + '--input_params', "-ip", + nargs="+", + required="True", + help="Input parameter files from TITAN" + ); + +parser$add_argument( + '--input_segments', "-is", + nargs="+", + required="True", + help="Input segment files from TITAN" + ); + +parser$add_argument( + "--method", "-m", + choices=c('validity_index', 'validity_index_and_pga'), + required="True", + help="Algorithm to use for cluster selection" + ); + +parser$add_argument( + "--percent_genome_alteration", "-pga", + metavar="PGA", + type="double", + default="0.8", + help="Maximum percent genome alteration to accept in a cluster" + ); + +parser$add_argument( + "--output_param", "-op", + required="True", + help="Output file to store optimal parameter file" + ); + +parser$add_argument( + "--output_segment", "-os", + required="True", + help="Output file to store optimal segment file" + ); + +parser$add_argument( + "--cancer_genomics_functions_path", "-cgfp", + required="True", + help="Path to cancer genomics functions in R" + ) + +args <- parser$parse_args(); + +source(paste(args$cancer_genomics_functions_path, "functions.R", sep="/")); + +current_index <- 0; +current_val_index <- 1; +genome_frame <- generate_common_genome_frame(); +for (i in 1:length(args$input_params)) { + if (args$method == "validity_index_and_pga") { + titan_segs <- read_titan_cnv_file(args$input_segments[i]); + pga <- calculate_percent_genome_alteration(titan_segs, genome_frame); + if (pga >= args$percent_genome_alteration) { + next; + } + } + + titan_params <- read_titan_params_file(args$input_params[i]); + val_index <- fetch_validity_index(titan_params) + if (current_val_index > val_index) { + current_val_index <- val_index; + current_index <- i; + } + } + +command_params <- paste( + "cp", + args$input_params[current_index], + args$output_param, + sep=" " + ); + +system(command_params); + + +command_segments <- paste( + "cp", + args$input_segments[current_index], + args$output_segment, + sep=" " + ); + +system(command_params);