annotate select_optimal_cluster.R @ 2:7edf4d48a350 draft default tip

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