2
|
1 library(argparse)
|
|
2
|
|
3 parser <- ArgumentParser(description="Select the best TITAN cluster");
|
|
4
|
|
5 parser$add_argument(
|
|
6 '--input_params', "-ip",
|
|
7 nargs="+",
|
|
8 required="True",
|
|
9 help="Input parameter files from TITAN"
|
|
10 );
|
|
11
|
|
12 parser$add_argument(
|
|
13 '--input_segments', "-is",
|
|
14 nargs="+",
|
|
15 required="True",
|
|
16 help="Input segment files from TITAN"
|
|
17 );
|
|
18
|
|
19 parser$add_argument(
|
|
20 "--method", "-m",
|
|
21 choices=c('validity_index', 'validity_index_and_pga'),
|
|
22 required="True",
|
|
23 help="Algorithm to use for cluster selection"
|
|
24 );
|
|
25
|
|
26 parser$add_argument(
|
|
27 "--percent_genome_alteration", "-pga",
|
|
28 metavar="PGA",
|
|
29 type="double",
|
|
30 default="0.8",
|
|
31 help="Maximum percent genome alteration to accept in a cluster"
|
|
32 );
|
|
33
|
|
34 parser$add_argument(
|
|
35 "--output_param", "-op",
|
|
36 required="True",
|
|
37 help="Output file to store optimal parameter file"
|
|
38 );
|
|
39
|
|
40 parser$add_argument(
|
|
41 "--output_segment", "-os",
|
|
42 required="True",
|
|
43 help="Output file to store optimal segment file"
|
|
44 );
|
|
45
|
|
46 parser$add_argument(
|
|
47 "--cancer_genomics_functions_path", "-cgfp",
|
|
48 required="True",
|
|
49 help="Path to cancer genomics functions in R"
|
|
50 )
|
|
51
|
|
52 args <- parser$parse_args();
|
|
53
|
|
54 source(paste(args$cancer_genomics_functions_path, "functions.R", sep="/"));
|
|
55
|
|
56 current_index <- 0;
|
|
57 current_val_index <- 1;
|
|
58 genome_frame <- generate_common_genome_frame();
|
|
59 for (i in 1:length(args$input_params)) {
|
|
60 if (args$method == "validity_index_and_pga") {
|
|
61 titan_segs <- read_titan_cnv_file(args$input_segments[i]);
|
|
62 pga <- calculate_percent_genome_alteration(titan_segs, genome_frame);
|
|
63 if (pga >= args$percent_genome_alteration) {
|
|
64 next;
|
|
65 }
|
|
66 }
|
|
67
|
|
68 titan_params <- read_titan_params_file(args$input_params[i]);
|
|
69 val_index <- fetch_validity_index(titan_params)
|
|
70 if (current_val_index > val_index) {
|
|
71 current_val_index <- val_index;
|
|
72 current_index <- i;
|
|
73 }
|
|
74 }
|
|
75
|
|
76 command_params <- paste(
|
|
77 "cp",
|
|
78 args$input_params[current_index],
|
|
79 args$output_param,
|
|
80 sep=" "
|
|
81 );
|
|
82
|
|
83 system(command_params);
|
|
84
|
|
85
|
|
86 command_segments <- paste(
|
|
87 "cp",
|
|
88 args$input_segments[current_index],
|
|
89 args$output_segment,
|
|
90 sep=" "
|
|
91 );
|
|
92
|
|
93 system(command_params);
|