Changeset 2956
- Timestamp:
- Nov 26, 2006, 11:33:11 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.1/src/plugins/core/net/sf/basedb/plugins/BioAssaySetExporter.java
r2953 r2956 197 197 for (String key : parameters.keySet()) 198 198 { 199 out.println(key+" /t"+parameters.get(key));199 out.println(key+"\t"+parameters.get(key)); 200 200 } 201 201 out.println("%"); … … 204 204 205 205 // assay section 206 out.println("section /tassays");206 out.println("section\tassays"); 207 207 208 208 out.println("%"); … … 214 214 out.print("\t"); 215 215 Set<Object> values = BioAssaySetUtil.getAnnotationValues(dc, ba, at); 216 for (Object v : values) out.print(" /t"+v);216 for (Object v : values) out.print("\t"+v); 217 217 } 218 218 } … … 220 220 221 221 // spot section(s) 222 out.println("section /tspots");222 out.println("section\tspots"); 223 223 out.println("%"); 224 224 out.println(); … … 226 226 227 227 228 private void exportMeV(BioAssaySet bioassayset, File file) 228 private void exportMeV(BioAssaySet bioassayset, File file, 229 ProgressReporter progress) 229 230 throws IOException, SQLException 230 231 { … … 241 242 */ 242 243 243 // data header 244 out.write("UID\tID"); 244 List<ExtendedProperty> reporterProperties = 245 ExtendedProperties.getProperties("ReporterData"); 246 247 // Data header 248 // Reporter headers 249 out.write("reporterInternalId\treporterID\tlastUpdate\tgeneSymbol"); 250 for (ExtendedProperty ep : reporterProperties) 251 out.write("\t"+ep.getName()); 252 // Number 3 in below statement comes from using three reporter 253 // entries from ReporterData. Below there is dependencies on this 254 // '3' such as the selectReporter("") in below query.select() 255 // statements (and more). 256 int nof_reporter_columns=3+reporterProperties.size(); 257 // Bioassay headers 258 out.write("\texperimentalFactor"); 245 259 short nof_bioassays=0; 246 260 for (BioAssay bioassay : bioassayset.getBioAssays().list(dc)) … … 250 264 } 251 265 252 // data 266 // Experimental factors 267 for (AnnotationType at : getExperimentalFactors(dc, bioassayset)) 268 { 269 out.write("\n"); 270 for (int i=0; i<nof_reporter_columns; ++i) out.write("\t"); 271 out.write("\t"+at.getName()); 272 for (BioAssay bioassay : bioassayset.getBioAssays().list(dc)) 273 { 274 Set<Object> values = BioAssaySetUtil.getAnnotationValues(dc,bioassay,at); 275 for (Object v : values) out.write("\t"+v); 276 } 277 } 278 279 progress.display(0, "Exporting ... performing database query"); 280 // Reporter annotations and expression levels 253 281 int nofchannels=bioassayset.getRawDataType().getChannels(); 254 282 DynamicSpotQuery query=bioassayset.getSpotData(); … … 257 285 query.select(Dynamic.select(VirtualColumn.COLUMN)); 258 286 query.select(Dynamic.selectReporter("externalId")); 287 query.select(Dynamic.selectReporter("lastUpdate")); 288 query.select(Dynamic.selectReporter("symbol")); 289 for (ExtendedProperty ep : reporterProperties) 290 { 291 query.select(Dynamic.selectReporter(ep.getName())); 292 } 259 293 for (int i=1; i<=nofchannels; ++i) 260 294 { … … 266 300 int column_position=spotData.getIndex(VirtualColumn.POSITION.getName()); 267 301 int column_column=spotData.getIndex(VirtualColumn.COLUMN.getName()); 268 int column_reporter=spotData.getIndex("externalId"); 302 int[] column_reporter= new int[nof_reporter_columns]; 303 column_reporter[0]=spotData.getIndex("externalId"); 304 column_reporter[1]=spotData.getIndex("lastUpdate"); 305 column_reporter[2]=spotData.getIndex("symbol"); 306 int idx=3; 307 for (ExtendedProperty ep : reporterProperties) 308 { 309 column_reporter[idx++]=spotData.getIndex(ep.getName()); 310 } 269 311 int[] column_channel = new int[nofchannels]; 270 312 for (int i=1; i<=nofchannels; ++i) … … 275 317 short column=nof_bioassays; 276 318 double log2=Math.log(2.0); 319 int nof_reporters=bioassayset.getNumReporters(); 320 int progress_report_interval=nof_reporters/10; 321 int nof_processed_reporters=0; 277 322 while (spotData.hasNext()) 278 323 { 324 if (nof_processed_reporters%progress_report_interval == 0) 325 { 326 progress.display(100 * nof_processed_reporters / nof_reporters, 327 "Exporting ... " + nof_processed_reporters + " of " + 328 nof_reporters + " done."); 329 } 330 279 331 SqlResult item = spotData.next(); 280 332 int thisposition=item.getInt(column_position); … … 283 335 if (position!=thisposition) // new reporter 284 336 { 337 ++nof_processed_reporters; 285 338 // fill missing values before next spot 286 339 while (nof_bioassays>column++) out.write("\t"); 287 340 column=0; 288 341 position=thisposition; 289 out.write("\npos:" + position + "\t" + item.getString(column_reporter)); 342 out.write("\n" + position); 343 for (int i=0; i<nof_reporter_columns; ++i) 344 { 345 String str=item.getString(column_reporter[i]); 346 out.write("\t" + (str!=null ? str : "")); 347 } 348 out.write("\t"); // experimentalFactor is always empty for reporters 290 349 } 291 350 // fill missing values up to next available column (bioassay) … … 602 661 bioassayset = BioAssaySet.getById(dc, bioassayset.getId()); 603 662 604 progress.display( 1, "Exporting ...");663 progress.display(0, "Exporting ..."); 605 664 606 665 // Add other export formats here 607 666 String format = (String) job.getValue("fileformat"); 608 if (format.equals(FORMAT_MEV)) exportMeV(bioassayset,file );667 if (format.equals(FORMAT_MEV)) exportMeV(bioassayset,file,progress); 609 668 else if (format.equals(FORMAT_BASEFILE)) 610 669 {
Note: See TracChangeset
for help on using the changeset viewer.