time | calls | line |
---|
| 8 | 5 | if (AnglePlot == true)
|
| 8 | 6 | width = 0.075;
|
| 8 | 7 | height = chr_height(chr);
|
| 8 | 8 | bottom = chr_posY(chr);
|
| 8 | 9 | chr_length = chr_size(chr);
|
| 8 | 10 | for segment = 1:length(chrCopyNum{chr})
|
0.01 | 12 | 11 | fprintf(['^^^ segment# = ' num2str(segment) ':' num2str(length(chrCopyNum{chr})) '\n']);
|
| | 12 |
|
| 12 | 13 | if (segment == 1) % generate sublot for each segment.
|
0.05 | 8 | 14 | subplot('Position',[0.03 bottom width (height/length(chrCopyNum{chr}))]);
|
| 4 | 15 | else
|
0.02 | 4 | 16 | subplot('Position',[0.03 (bottom+height/length(chrCopyNum{chr})*(segment-1)) width (height/length(chrCopyNum{chr}))]);
|
| 4 | 17 | end;
|
| | 18 |
|
| 12 | 19 | peaks = chrSegment_peaks{ chr}{segment};
|
| 12 | 20 | mostLikelyGaussians = chrSegment_mostLikelyGaussians{chr}{segment};
|
| 12 | 21 | actual_cutoffs = chrSegment_actual_cutoffs{ chr}{segment};
|
| 12 | 22 | segment_smoothedHistogram = chrSegment_smoothed{ chr}{segment};
|
| 12 | 23 | segment_copyNum = round(chrCopyNum{ chr}(segment));
|
| 12 | 24 | segment_chrBreaks = chr_breaks{ chr}(segment);
|
| | 25 |
|
| 12 | 26 | fprintf(['^^^ copyNum = ' num2str(segment_copyNum) '\n']);
|
| 12 | 27 | fprintf(['^^^ peaks = ' num2str(peaks) '\n']);
|
0.01 | 12 | 28 | fprintf(['^^^ mostLikelyGaussians = ' num2str(mostLikelyGaussians) '\n']);
|
0.01 | 12 | 29 | fprintf(['^^^ actual_cutoffs = ' num2str(actual_cutoffs) '\n']);
|
| | 30 |
|
| 12 | 31 | copynum = round(chrCopyNum{chr}(segment));
|
| 12 | 32 | region_ = 0;
|
0.02 | 12 | 33 | hold on;
|
| 12 | 34 | for region = mostLikelyGaussians
|
| 37 | 35 | region_ = region_+1;
|
| | 36 | % Define color of the histogram region.
|
| 37 | 37 | if (FillColors == true)
|
0.04 | 37 | 38 | fprintf(['region_ #= ' num2str(region_) '\n']);
|
| 37 | 39 | if (show_uncalibrated == true)
|
| | 40 | color = colorAB;
|
| 37 | 41 | else
|
0.07 | 37 | 42 | fprintf([' copyNum = ' num2str(copynum) '\n']);
|
| 37 | 43 | if (copynum == 0) %deletion or error
|
| 37 | 44 | elseif (copynum == 1) %monosomy
|
| 2 | 45 | if (apply_phasing == true)
|
| 2 | 46 | if (region == 2); color = colorB;
|
| 1 | 47 | else color = colorA;
|
| 1 | 48 | end;
|
| | 49 | else
|
| | 50 | if (region == 2); color = unphased_color_1of1;
|
| | 51 | else color = unphased_color_1of1;
|
| | 52 | end;
|
| | 53 | end;
|
| 2 | 54 | if (segment == 1)
|
| | 55 | set(gca,'XTick',[0 200]);
|
| | 56 | set(gca,'XTickLabel',{'a','b'});
|
| | 57 | end;
|
| 35 | 58 | elseif (copynum == 2) %disomy
|
| 29 | 59 | if (apply_phasing == true)
|
| 29 | 60 | if (region == 3); color = colorBB;
|
| 18 | 61 | elseif (region == 2); color = colorAB;
|
| 9 | 62 | else color = colorAA;
|
| 9 | 63 | end;
|
| | 64 | else
|
| | 65 | if (region == 3); color = unphased_color_2of2;
|
| | 66 | elseif (region == 2); color = unphased_color_1of2;
|
| | 67 | else color = unphased_color_2of2;
|
| | 68 | end;
|
| | 69 | end;
|
| 29 | 70 | if (segment == 1)
|
| 23 | 71 | set(gca,'XTick',0:100:200);
|
0.01 | 23 | 72 | set(gca,'XTickLabel',{'a','ab','b'});
|
| 23 | 73 | end;
|
| 6 | 74 | elseif (copynum == 3) %trisomy
|
| 6 | 75 | if (apply_phasing == true)
|
| 6 | 76 | if (region == 4); color = colorBBB;
|
| 5 | 77 | elseif (region == 3); color = colorABB;
|
| 3 | 78 | elseif (region == 2); color = colorAAB;
|
| 1 | 79 | else color = colorAAA;
|
| 1 | 80 | end;
|
| | 81 | else
|
| | 82 | if (region == 4); color = unphased_color_3of3;
|
| | 83 | elseif (region == 3); color = unphased_color_2of3;
|
| | 84 | elseif (region == 2); color = unphased_color_2of3;
|
| | 85 | else color = unphased_color_3of3;
|
| | 86 | end;
|
| | 87 | end;
|
| 6 | 88 | if (segment == 1)
|
| 4 | 89 | set(gca,'XTick',[0 66.667 133.333 200]);
|
| 4 | 90 | set(gca,'XTickLabel',{'a','aab','abb','b'});
|
| 4 | 91 | end;
|
| | 92 | elseif (copynum == 4) %tetrasomy
|
| | 93 | if (apply_phasing == true)
|
| | 94 | if (region == 5); color = colorBBBB;
|
| | 95 | elseif (region == 4); color = colorABBB;
|
| | 96 | elseif (region == 3); color = colorAABB;
|
| | 97 | elseif (region == 2); color = colorAAAB;
|
| | 98 | else color = colorAAAA;
|
| | 99 | end;
|
| | 100 | else
|
| | 101 | if (region == 5); color = unphased_color_4of4;
|
| | 102 | elseif (region == 4); color = unphased_color_3of4;
|
| | 103 | elseif (region == 3); color = unphased_color_2of4;
|
| | 104 | elseif (region == 2); color = unphased_color_3of4;
|
| | 105 | else color = unphased_color_4of4;
|
| | 106 | end;
|
| | 107 | end;
|
| | 108 | if (segment == 1)
|
| | 109 | set(gca,'XTick',0:50:200);
|
| | 110 | set(gca,'XTickLabel',{'a', '3:1', '2:2', '1:3' 'b'});
|
| | 111 | end;
|
| | 112 | elseif (copynum == 5) %pentasomy
|
| | 113 | if (apply_phasing == true)
|
| | 114 | if (region == 6); color = colorBBBBB;
|
| | 115 | elseif (region == 5); color = colorABBBB;
|
| | 116 | elseif (region == 4); color = colorAABBB;
|
| | 117 | elseif (region == 3); color = colorAAABB;
|
| | 118 | elseif (region == 2); color = colorAAAAB;
|
| | 119 | else color = colorAAAAA;
|
| | 120 | end;
|
| | 121 | else
|
| | 122 | if (region == 6); color = unphased_color_5of5;
|
| | 123 | elseif (region == 5); color = unphased_color_4of5;
|
| | 124 | elseif (region == 4); color = unphased_color_3of5;
|
| | 125 | elseif (region == 3); color = unphased_color_3of5;
|
| | 126 | elseif (region == 2); color = unphased_color_4of5;
|
| | 127 | else color = unphased_color_5of5;
|
| | 128 | end;
|
| | 129 | end;
|
| | 130 | if (segment == 1)
|
| | 131 | set(gca,'XTick',0:40:200);
|
| | 132 | set(gca,'XTickLabel',{'a', '4:!', '3:2', '2:3', '1:4' 'b'});
|
| | 133 | end;
|
| | 134 | elseif (copynum == 6) %hexasomy
|
| | 135 | if (apply_phasing == true)
|
| | 136 | if (region == 7); color = colorBBBBBB;
|
| | 137 | elseif (region == 6); color = colorABBBBB;
|
| | 138 | elseif (region == 5); color = colorAABBBB;
|
| | 139 | elseif (region == 4); color = colorAAABBB;
|
| | 140 | elseif (region == 3); color = colorAAAABB;
|
| | 141 | elseif (region == 2); color = colorAAAAAB;
|
| | 142 | else color = colorAAAAAA;
|
| | 143 | end;
|
| | 144 | else
|
| | 145 | if (region == 7); color = unphased_color_6of6;
|
| | 146 | elseif (region == 6); color = unphased_color_5of6;
|
| | 147 | elseif (region == 5); color = unphased_color_4of6;
|
| | 148 | elseif (region == 4); color = unphased_color_3of6;
|
| | 149 | elseif (region == 3); color = unphased_color_4of6;
|
| | 150 | elseif (region == 2); color = unphased_color_5of6;
|
| | 151 | else color = unphased_color_6of6;
|
| | 152 | end;
|
| | 153 | end;
|
| | 154 | if (segment == 1)
|
| | 155 | set(gca,'XTick',0:33.333:200);
|
| | 156 | set(gca,'XTickLabel',{'a', '5:1', '4:2', '3:3', '2:4', '1:5' 'b'});
|
| | 157 | end;
|
| | 158 | elseif (copynum == 7) %heptasomy
|
| | 159 | if (apply_phasing == true)
|
| | 160 | if (region == 8); color = colorBBBBBBB;
|
| | 161 | elseif (region == 7); color = colorABBBBBB;
|
| | 162 | elseif (region == 6); color = colorAABBBBB;
|
| | 163 | elseif (region == 5); color = colorAAABBBB;
|
| | 164 | elseif (region == 4); color = colorAAAABBB;
|
| | 165 | elseif (region == 3); color = colorAAAAABB;
|
| | 166 | elseif (region == 2); color = colorAAAAAAB;
|
| | 167 | else color = colorAAAAAAA;
|
| | 168 | end;
|
| | 169 | else
|
| | 170 | if (region == 8); color = unphased_color_7of7;
|
| | 171 | elseif (region == 7); color = unphased_color_6of7;
|
| | 172 | elseif (region == 6); color = unphased_color_5of7;
|
| | 173 | elseif (region == 5); color = unphased_color_4of7;
|
| | 174 | elseif (region == 4); color = unphased_color_4of7;
|
| | 175 | elseif (region == 3); color = unphased_color_5of7;
|
| | 176 | elseif (region == 2); color = unphased_color_6of7;
|
| | 177 | else color = unphased_color_7of7;
|
| | 178 | end;
|
| | 179 | end;
|
| | 180 | if (segment == 1)
|
| | 181 | set(gca,'XTick',0:28.571:200);
|
| | 182 | set(gca,'XTickLabel',{'a', '', '5:2', '', '', '2:5', '' 'b'});
|
| | 183 | end;
|
| | 184 | elseif (copynum == 8) %octasomy
|
| | 185 | if (apply_phasing == true)
|
| | 186 | if (region == 9); color = colorBBBBBBBB;
|
| | 187 | elseif (region == 8); color = colorABBBBBBB;
|
| | 188 | elseif (region == 7); color = colorAABBBBBB;
|
| | 189 | elseif (region == 6); color = colorAAABBBBB;
|
| | 190 | elseif (region == 5); color = colorAAAABBBB;
|
| | 191 | elseif (region == 4); color = colorAAAAABBB;
|
| | 192 | elseif (region == 3); color = colorAAAAAABB;
|
| | 193 | elseif (region == 2); color = colorAAAAAAAB;
|
| | 194 | else color = colorAAAAAAAA;
|
| | 195 | end;
|
| | 196 | else
|
| | 197 | if (region == 9); color = unphased_color_8of8;
|
| | 198 | elseif (region == 8); color = unphased_color_7of8;
|
| | 199 | elseif (region == 7); color = unphased_color_6of8;
|
| | 200 | elseif (region == 6); color = unphased_color_5of8;
|
| | 201 | elseif (region == 5); color = unphased_color_4of8;
|
| | 202 | elseif (region == 4); color = unphased_color_5of8;
|
| | 203 | elseif (region == 3); color = unphased_color_6of8;
|
| | 204 | elseif (region == 2); color = unphased_color_7of8;
|
| | 205 | else color = unphased_color_8of8;
|
| | 206 | end;
|
| | 207 | end;
|
| | 208 | if (segment == 1)
|
| | 209 | set(gca,'XTick',0:22.222:200);
|
| | 210 | set(gca,'XTickLabel',{'a', '', '6:2', '', '4:4', '', '2:6', '' 'b'});
|
| | 211 | end;
|
| | 212 | else % (copynum >= 9) %nonasomy
|
| | 213 | if (apply_phasing == true)
|
| | 214 | if (region == 10); color = colorBBBBBBBBB;
|
| | 215 | elseif (region == 9); color = colorABBBBBBBB;
|
| | 216 | elseif (region == 8); color = colorAABBBBBBB;
|
| | 217 | elseif (region == 7); color = colorAAABBBBBB;
|
| | 218 | elseif (region == 6); color = colorAAAABBBBB;
|
| | 219 | elseif (region == 5); color = colorAAAAABBBB;
|
| | 220 | elseif (region == 4); color = colorAAAAAABBB;
|
| | 221 | elseif (region == 3); color = colorAAAAAAABB;
|
| | 222 | elseif (region == 2); color = colorAAAAAAAAB;
|
| | 223 | else color = colorAAAAAAAAA;
|
| | 224 | end;
|
| | 225 | else
|
| | 226 | if (region == 10); color = unphased_color_9of9;
|
| | 227 | elseif (region == 9); color = unphased_color_8of9;
|
| | 228 | elseif (region == 8); color = unphased_color_7of9;
|
| | 229 | elseif (region == 7); color = unphased_color_6of9;
|
| | 230 | elseif (region == 6); color = unphased_color_5of9;
|
| | 231 | elseif (region == 5); color = unphased_color_5of9;
|
| | 232 | elseif (region == 4); color = unphased_color_6of9;
|
| | 233 | elseif (region == 3); color = unphased_color_7of9;
|
| | 234 | elseif (region == 2); color = unphased_color_8of9;
|
| | 235 | else color = unphased_color_9of9;
|
| | 236 | end;
|
| | 237 | end;
|
| | 238 | if (segment == 1)
|
| | 239 | set(gca,'XTick',0:20:200);
|
| | 240 | set(gca,'XTickLabel',{'a', '', '', '6:3', '', '', '3:6', '', '', 'b'});
|
| | 241 | end;
|
| | 242 | end;
|
| 37 | 243 | end;
|
| | 244 | else
|
| | 245 | color = colorAB;
|
| | 246 | end;
|
| | 247 |
|
0.02 | 37 | 248 | fprintf([' mostLikelyGaussian = ' num2str(region) '\n']);
|
| 37 | 249 | if (length(mostLikelyGaussians) <= 1)
|
| | 250 | % draw entire smoothed histogram.
|
| | 251 | area(1:200,segment_smoothedHistogram(1:200),'FaceColor',color,'EdgeColor',color);
|
| 37 | 252 | else
|
| | 253 | % draw segment of smoothed histogram corresponding to region.
|
| 37 | 254 | if (region_ == 1) % first region in list.
|
| 12 | 255 | coord1 = max(min(round(actual_cutoffs(region_))+1, 200), 1);
|
0.13 | 12 | 256 | area(1:coord1, segment_smoothedHistogram(1:coord1), 'FaceColor',color,'EdgeColor',color);
|
| 12 | 257 | fprintf([' angleplotCoordinates = 1:' num2str(coord1) '\n']);
|
0.02 | 25 | 258 | elseif (region_ == length(mostLikelyGaussians)) % last region in list.
|
| 12 | 259 | coord2 = max(min(round(actual_cutoffs(region_-1))+1, 200), 1);
|
0.13 | 12 | 260 | area(coord2:200, segment_smoothedHistogram(coord2:200), 'FaceColor',color,'EdgeColor',color);
|
0.01 | 12 | 261 | fprintf([' angleplotCoordinate = ' num2str(coord2) ':200\n']);
|
| 13 | 262 | else
|
| 13 | 263 | coord3 = max(min(round(actual_cutoffs(region_-1))+1, 200), 1);
|
| 13 | 264 | coord4 = max(min(round(actual_cutoffs(region_ ))+1, 200), 1);
|
0.16 | 13 | 265 | area(coord3:coord4, segment_smoothedHistogram(coord3:coord4), 'FaceColor',color,'EdgeColor',color);
|
| 13 | 266 | fprintf([' angleplotCoordinates = ' num2str(coord3) ':' num2str(coord4) '\n']);
|
| 13 | 267 | end;
|
| 37 | 268 | end;
|
0.05 | 37 | 269 | fprintf([' color = ' num2str(color) ' (colorA = [' num2str(colorA) ']; colorB = [' num2str(colorB) '])\n']);
|
0.02 | 37 | 270 | end;
|
| | 271 |
|
| 12 | 272 | colorPeak = [0.5 0.5 0.5]; % color of lines drawn at peak locations.
|
| 12 | 273 | colorCutoff = [1.0 0.0 0.0]; % color of lines drawn at cutoffs between Gaussian fits.
|
| 12 | 274 | for peak = 1:length(peaks)
|
0.10 | 37 | 275 | plot([peaks(peak); peaks(peak)],[0; 1],'color',colorPeak);
|
| 37 | 276 | end;
|
| 12 | 277 | for cutoff = 1:length(actual_cutoffs)
|
0.06 | 25 | 278 | plot([actual_cutoffs(cutoff); actual_cutoffs(cutoff)],[0; 1],'color',colorCutoff);
|
| 25 | 279 | end;
|
| 12 | 280 | set(gca,'FontSize',stacked_axis_font_size);
|
| 12 | 281 | hold off;
|
| 12 | 282 | set(gca,'YTick',[]);
|
| 12 | 283 | if (segment ~= 1)
|
| 4 | 284 | set(gca,'XTick',[]);
|
| 4 | 285 | end;
|
| 12 | 286 | xlim([0,200]);
|
| 12 | 287 | ylim([0,1]);
|
| 12 | 288 | end;
|
| 8 | 289 | end;
|