Changeset 577
- Timestamp:
- Feb 8, 2008, 1:33:31 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/net/sf/basedb/illumina/src/net/sf/basedb/illumina/install/Install.java
r572 r577 30 30 import net.sf.basedb.core.DbControl; 31 31 import net.sf.basedb.core.FileType; 32 import net.sf.basedb.core.Hardware; 33 import net.sf.basedb.core.HardwareType; 32 34 import net.sf.basedb.core.InvalidDataException; 33 35 import net.sf.basedb.core.Item; … … 109 111 private static final Set<Permissions> permissions = new HashSet<Permissions>(); 110 112 111 /*TODO 112 private static final PluginParameter<Boolean> installSnpVariantParameter = new PluginParameter<Boolean> 113 ( 114 "installSnp", 115 "SNP variant", 116 "TRUE if he SNP variant of Illumina should be installed, FALSE otherwise.", 117 new BooleanParameterType(true, true) 118 ); 113 /*TODO SNP 114 private static final PluginParameter<Boolean> installSnpVariantParameter 119 115 */ 120 private static final PluginParameter<Boolean> installExp1VariantParameter = new PluginParameter<Boolean> 116 private PluginParameter<String> installExp1VariantParameter; 117 private PluginParameter<String> installExp2VariantParameter; 118 119 private PluginParameter<String> installScannerParameter; 120 private PluginParameter<String> scannerNameParameter; 121 private PluginParameter<String> scannerVersionParameter; 122 123 124 //Parameter section headers 125 private static final PluginParameter<String> variantSection = new PluginParameter<String> 121 126 ( 122 "installExp1", 123 "Expression 1", 124 "TRUE if the Expression 1 variant of Illumina should be installed, FALSE otherwise.\n" + 125 "Expression 1 has one strip on each array.", 126 new BooleanParameterType(true, true) 127 ); 128 private static final PluginParameter<Boolean> installExp2VariantParameter = new PluginParameter<Boolean> 127 "variantSection", 128 "Variants", 129 "Variants available to be installed", 130 null 131 ); 132 private static final PluginParameter<String> hardwareSection = new PluginParameter<String> 129 133 ( 130 "installExp2", 131 "Expression2", 132 "TRUE if the Expression 2 variant of Illumina should be installed, FALSE otherwise.\n" + 133 "Expression 2 has two strips on each array.", 134 new BooleanParameterType(true, true) 134 "hardwareSection", 135 "Hardware", 136 "Hardware used with the Illumina platform", 137 null 138 ); 139 private static final PluginParameter<String> errorSection = new PluginParameter<String> 140 ( 141 "errorSection", 142 "Error handling", 143 "Settings how to handling when errors occur", 144 null 135 145 ); 136 146 137 147 public static final String SKIP_OPTION = "skip"; 138 148 public static final String ABORT_OPTION = "abort"; 149 150 private static final String YES_OPTION = "yes"; 151 private static final String NO_OPTION = "no"; 139 152 140 153 private static final String BGX_FILEYTPE_EXTENSION = "bgx"; … … 203 216 boolean installSnp = (Boolean)job.getValue("installSnp"); 204 217 */ 205 boolean installExp1 = (Boolean)job.getValue("installExp1"); 206 boolean installExp2 = (Boolean)job.getValue("installExp2"); 218 boolean installExp1 = ((String)job.getValue("installExp1")).equals(YES_OPTION); 219 boolean installExp2 = ((String)job.getValue("installExp2")).equals(YES_OPTION); 220 boolean installScanner = ((String)job.getValue("installScanner")).equals(YES_OPTION); 207 221 String alreadyExistingItem = (String)job.getValue("alreadyInstalledError"); 208 222 … … 211 225 if (installExp2) expressionTypes.add(2); 212 226 213 installIlluminaItems(null, expressionTypes, alreadyExistingItem.equals(SKIP_OPTION), progress); 227 Map<String, Object> scannerProperties = null; 228 if (installScanner) 229 { 230 scannerProperties = new HashMap<String, Object>(); 231 scannerProperties.put("name", (String)job.getValue("scannerName")); 232 scannerProperties.put("version", (String)job.getValue("scannerVersion")); 233 scannerProperties.put("description", "The Illumina BeadArray Reader is a " + 234 "scanner that can read arrays including Illumina Sentrix BeadChips and " + 235 "Sentrix Array Matrices (SAMs)."); 236 } 237 238 installIlluminaItems(null, expressionTypes, scannerProperties, alreadyExistingItem.equals(SKIP_OPTION), progress); 214 239 } 215 240 catch(Throwable ex) … … 273 298 return; 274 299 } 300 if (((String)request.getParameterValue(installScannerParameter.getName())).equals(YES_OPTION) && 301 request.getParameterValue(scannerNameParameter.getName()) == null) 302 { 303 response.setError("The scanner to create must have a name. Please specify a name in 'Scanner name'-parameter", null); 304 return; 305 } 275 306 storeValue(job, request, alreadyInstalledErrorParameter); 276 307 storeValue(job, request, installExp1VariantParameter); … … 280 311 */ 281 312 313 storeValue(job, request, installScannerParameter); 314 storeValue(job, request, scannerNameParameter); 315 storeValue(job, request, scannerVersionParameter); 316 282 317 response.setDone("The job configuration is complete."); 283 318 } … … 308 343 @param expressionTypes A set of numbers. A expression variant will be created for each object in the set 309 344 and the number itself represent the number of strip(s) in an array of the variant to create. 345 @param scannerProperties A map with properties to set on a scanner/hardware when it is created. Null if no hardware should be installed. 310 346 @param ignoreExistingItems TRUE if items already existing should be ignored and the rest should be installed. 311 347 FALSE if NO items should be created when there is one or more already existing in BASE. 312 348 @throws ItemAlreadyExistsException If ignoreInstalledItems = FALSE and one of the 313 349 */ 314 public void installIlluminaItems(Boolean installSNP, Set<Integer> expressionTypes, boolean ignoreExistingItems, ProgressReporter progress)350 public void installIlluminaItems(Boolean installSNP, Set<Integer> expressionTypes, Map<String, Object> scannerProperties, boolean ignoreExistingItems, ProgressReporter progress) 315 351 throws ItemAlreadyExistsException 316 352 { … … 345 381 dc = sc.newDbControl(); 346 382 383 Hardware scanner = null; 384 if (scannerProperties != null) 385 { 386 String name = (String)scannerProperties.get("name"); 387 String scannerVersion = (String)scannerProperties.get("version"); 388 String description = (String)scannerProperties.get("description"); 389 int typeId = SystemItems.getId(HardwareType.SCANNER); 390 scanner = Hardware.getNew(dc, HardwareType.getById(dc, typeId)); 391 dc.saveItem(scanner); 392 scanner.setName(name == null ? "Illumina hardware" : name); 393 scanner.setVersionString(scannerVersion); 394 scanner.setDescription(description); 395 } 396 347 397 reporterMapType = FileType.getById(dc, SystemItems.getId("net.sf.basedb.core.FileType.REPORTER_MAP")); 348 398 rawDataType = FileType.getById(dc, SystemItems.getId("net.sf.basedb.core.FileType.RAW_DATA")); 349 399 350 Map<String, DataFileType> dataFileTypes = new HashMap<String, DataFileType>();351 400 //Data file types 401 Map<String, DataFileType> dataFileTypes = new HashMap<String, DataFileType>(); 352 402 DataFileType bgx = createDataFileType(dc, 353 403 Illumina.BGX_FILE_ID, "BGX file", "Illumina Sentrix Array binary manifest file", … … 355 405 bgx.setValidatorClass(Illumina.BGX_VALIDATOR_METADATAREADER); 356 406 bgx.setMetadataReaderClass(Illumina.BGX_VALIDATOR_METADATAREADER); 357 358 407 for (int i = 1; i <= largestNumOfStrips; i++ ) 359 408 { … … 367 416 //TODO Create data file type for SNP filer. 368 417 418 //Platform and variants 369 419 Platform illuminaPlatform = createPlatform(dc, Illumina.PLATFORM_ID, "Illumina", ignoreExistingItems); 370 420 if (illuminaPlatform.getDescription() == null || illuminaPlatform.getDescription().equals("")) … … 403 453 platformVariants.add(pfv); 404 454 } 405 */ 455 */ 456 406 457 dc.commit(); 407 458 } … … 419 470 if (configureJob == null) 420 471 { 472 boolean firstTimeInstallation = isFirstTimeInstallation(); 473 String[] options = {YES_OPTION, NO_OPTION}; 474 StringParameterType installOptionType = new StringParameterType 475 ( 476 255, 477 firstTimeInstallation ? YES_OPTION : NO_OPTION, 478 true, 479 1, 0, 0, 480 Arrays.asList(options) 481 ); 482 483 installExp1VariantParameter = new PluginParameter<String> 484 ( 485 "installExp1", 486 "Create Expression 1", 487 "Select '" + YES_OPTION + "' to create an Illumina expression variant with one strip/array.", 488 installOptionType 489 ); 490 491 installExp2VariantParameter = new PluginParameter<String> 492 ( 493 "installExp2", 494 "Create Expression 2", 495 "Select '" + YES_OPTION + "' to create an Illumina expression variant with two strips/array.", 496 installOptionType 497 ); 498 499 installScannerParameter = new PluginParameter<String> 500 ( 501 "installScanner", 502 "Install scanner", 503 "Choose '" + YES_OPTION + "' to create a scanner in BASE, or '" + NO_OPTION + "' otherwise", 504 installOptionType 505 ); 506 scannerNameParameter = new PluginParameter<String> 507 ( 508 "scannerName", 509 "Scanner name", 510 "A name to assign to the scanner if this should be created. " + 511 "This could only be left empty if 'Install scanner' is set to '"+NO_OPTION+"'", 512 new StringParameterType 513 ( 514 255, 515 firstTimeInstallation ? "Illumina BeadArray Reader" : null, 516 false, 517 1,0,0 518 ) 519 ); 520 scannerVersionParameter = new PluginParameter<String> 521 ( 522 "scannerVersion", 523 "Scanner version", 524 "Version of the scanner to create. This has no effect if 'Install scanner' is set to '" + NO_OPTION + "'", 525 new StringParameterType 526 ( 527 255, 528 null, 529 false, 530 1,0,0 531 ) 532 ); 533 421 534 List<PluginParameter<?>> parameters = new ArrayList<PluginParameter<?>>(); 422 535 /*TODO SNP 423 536 parameters.add(installSnpVariantParameter); 424 537 */ 538 parameters.add(variantSection); 425 539 parameters.add(installExp1VariantParameter); 426 540 parameters.add(installExp2VariantParameter); 541 542 parameters.add(hardwareSection); 543 parameters.add(installScannerParameter); 544 parameters.add(scannerNameParameter); 545 parameters.add(scannerVersionParameter); 546 547 parameters.add(errorSection); 427 548 parameters.add(alreadyInstalledErrorParameter); 428 549 … … 439 560 } 440 561 562 private boolean isFirstTimeInstallation() 563 { 564 DbControl dc = null; 565 try 566 { 567 dc = sc.newDbControl(); 568 Platform illuminaPlatform = Platform.getByExternalId(dc, Illumina.PLATFORM_ID); 569 return illuminaPlatform == null; 570 } 571 catch (ItemNotFoundException infex) 572 { 573 return true; 574 } 575 finally 576 { 577 if (dc != null) dc.close(); 578 } 579 } 580 441 581 private DataFileType createDataFileType(DbControl dc, String externalId, String name, 442 582 String description, Item itemType, String extension, FileType genericType, boolean ignoreExistingItem)
Note: See TracChangeset
for help on using the changeset viewer.