@@ -277,6 +277,97 @@ public static JSONObject buildPolish(
277277 return modifiedData ;
278278 }
279279
280+ /**
281+ * The buildPartation wraps all required information for
282+ * BOOST's dna partition functionality into a JSON representation
283+ *
284+ * @return a JSONObject that represents the input values
285+ *
286+ * @throws BOOSTClientException ... if any given value is NULL or any given String value is empty
287+ * */
288+
289+ public static JSONObject buildPartation (
290+ final String sequenceFileName ,
291+ final String fivePrimeVectorOverlap ,
292+ final String threePrimeVectorOverlap ,
293+ String minLengthBB ,
294+ String maxLengthBB ,
295+ String minOverlapGC ,
296+ String optOverlapGC ,
297+ String maxOverlapGC ,
298+ String minOverlapLength ,
299+ String optOverlapLength ,
300+ String maxOverlapLength )
301+ throws BOOSTClientException {
302+
303+ //verify the values
304+ ParameterValueVerifier .verifyFilename (BOOSTConstants .INPUT_FILENAME , sequenceFileName );
305+ ParameterValueVerifier .verifyValue (BOOSTConstants .FIVE_PRIME_VECTOR_OVERLAP , fivePrimeVectorOverlap );
306+ ParameterValueVerifier .verifyValue (BOOSTConstants .THREE_PRIME_VECTOR_OVERLAP , threePrimeVectorOverlap );
307+ ParameterValueVerifier .verifyValue (BOOSTConstants .MIN_BB_LENGTH , minLengthBB );
308+ ParameterValueVerifier .verifyValue (BOOSTConstants .MAX_BB_LENGTH , maxLengthBB );
309+ ParameterValueVerifier .verifyValue (BOOSTConstants .MIN_OVERLAP_GC , minOverlapGC );
310+ ParameterValueVerifier .verifyValue (BOOSTConstants .OPT_OVERLAP_GC , optOverlapGC );
311+ ParameterValueVerifier .verifyValue (BOOSTConstants .MAX_OVERLAP_GC , maxOverlapGC );
312+ ParameterValueVerifier .verifyValue (BOOSTConstants .MIN_OVERLAP_LENGTH , minOverlapGC );
313+ ParameterValueVerifier .verifyValue (BOOSTConstants .OPT_OVERLAP_LENGTH , optOverlapGC );
314+ ParameterValueVerifier .verifyValue (BOOSTConstants .MAX_OVERLAP_LENGTH , maxOverlapLength );
315+
316+ //----------------------------------------------
317+
318+ // build the JSON representation of the input values
319+ JSONObject partationData = new JSONObject ();
320+
321+ //----------------------------------------------
322+
323+
324+ // JOB INFORMATION
325+ partationData .put (JSONKeys .JOB_INFORMATION ,
326+ RequestBuilder .buildJobInformation (BOOSTFunctions .PARTITION ));
327+ //----------------------------------------------
328+
329+
330+ // sequence information
331+ partationData .put (JSONKeys .SEQUENCE_INFORMATION ,
332+ RequestBuilder .buildSequenceData (sequenceFileName , SequenceType .DNA , false ));
333+
334+ // partition information
335+ partationData .put (JSONKeys .PARTITIONING_INFORMATION ,
336+ RequestBuilder .buildPartitionData (sequenceFileName , fivePrimeVectorOverlap ,
337+ threePrimeVectorOverlap , minLengthBB , maxLengthBB , minOverlapGC , optOverlapGC ,
338+ maxOverlapGC , minOverlapLength , optOverlapLength , maxOverlapLength ));
339+
340+
341+ return partationData ;
342+
343+ }
344+
345+ private static JSONObject buildPartitionData (final String sequenceFileName ,
346+ final String fivePrimeVectorOverlap , final String threePrimeVectorOverlap ,
347+ String minLengthBB , String maxLengthBB , String minOverlapGC , String optOverlapGC ,
348+ String maxOverlapGC , String minOverlapLength , String optOverlapLength , String maxOverlapLength ){
349+
350+ JSONObject partationData = new JSONObject ();
351+ //JSONObject subPartationData = new JSONObject();
352+ partationData .put (JSONKeys .FIVE_PRIME_VECTOR_OVERLAP , fivePrimeVectorOverlap );
353+ partationData .put (JSONKeys .THREE_PRIME_VECTOR_OVERLAP , threePrimeVectorOverlap );
354+ partationData .put (JSONKeys .MAX_BB_LENGTH , maxLengthBB );
355+ partationData .put (JSONKeys .MIN_BB_LENGTH , minLengthBB );
356+ partationData .put (JSONKeys .MAX_OVERLAP_GC , maxOverlapGC );
357+ partationData .put (JSONKeys .BATCH , "" );
358+ partationData .put (JSONKeys .MIN_OVERLAP_GC , minOverlapGC );
359+ partationData .put (JSONKeys .MAX_OVERLAP_LENGTH , maxOverlapLength );
360+ partationData .put (JSONKeys .OPT_OVERLAP_GC , optOverlapGC );
361+ partationData .put (JSONKeys .OPT_OVERLAP_LENGTH , optOverlapLength );
362+ partationData .put (JSONKeys .MIN_OVERLAP_LENGTH , minOverlapLength );
363+
364+ JSONObject partationParameters = new JSONObject ();
365+ partationParameters .put (JSONKeys .PARTITIONING_INFORMATION , partationData );
366+
367+ return partationData ;
368+ }
369+
370+
280371 /**
281372 *
282373 * @param function
0 commit comments