@@ -29,6 +29,8 @@ final class OxfordNanoporeMeasurement {
2929
3030 private boolean pooledSamplesMeasurement
3131
32+ private boolean hasBasecallingData
33+
3234 protected OxfordNanoporeMeasurement (String name , String path , List children , Map metadata ) {
3335 this . logFilesCollection = new ArrayList<> ()
3436 this . folders = new HashMap<> ()
@@ -39,6 +41,7 @@ final class OxfordNanoporeMeasurement {
3941
4042 createContent()
4143 assessPooledStatus()
44+ assessBasecallingStatus()
4245 assessState()
4346 }
4447
@@ -53,12 +56,16 @@ final class OxfordNanoporeMeasurement {
5356 private void assessPooledStatus () {
5457 this . pooledSamplesMeasurement = containsAtLeastOneBarcodedFolder(folders[" fast5pass" ])
5558 // There can be still pooled samples in the failed folder, worst case is all
56- // samples failed, so we need to check there to
59+ // samples failed, so we need to check there too
5760 if (! pooledSamplesMeasurement) {
5861 this . pooledSamplesMeasurement = containsAtLeastOneBarcodedFolder(folders[" fast5fail" ])
5962 }
6063 }
6164
65+ private void assessBasecallingStatus () {
66+ this . hasBasecallingData = folders[" basecalling" ];
67+ }
68+
6269 private static boolean containsAtLeastOneBarcodedFolder (DataFolder folder ) {
6370 if (! folder) {
6471 return false
@@ -86,6 +93,9 @@ final class OxfordNanoporeMeasurement {
8693 case DataFile :
8794 logFilesCollection. add(element as DataFile )
8895 break
96+ case BasecallingFolder :
97+ folders[" basecalling" ] = element as BasecallingFolder
98+ break
8999 }
90100 }
91101 }
@@ -273,13 +283,14 @@ final class OxfordNanoporeMeasurement {
273283
274284 private Map<String , Map<String , DataFolder > > prepareRawData (String sampleId ) {
275285 final def result = new HashMap ()
276- final def folders = [
286+ final def dataFolders = [
277287 " fast5fail" : (folders. get(" fast5fail" ) as DataFolder ),
278288 " fast5pass" : (folders. get(" fast5pass" ) as DataFolder ),
279289 " fastqpass" : (folders. get(" fastqpass" ) as DataFolder ),
280290 " fastqfail" : (folders. get(" fastqfail" ) as DataFolder )
281291 ]
282- result. put(sampleId, folders)
292+ if (hasBasecallingData) dataFolders. put(" basecalling" , (folders. get(" basecalling" ) as DataFolder ))
293+ result. put(sampleId, dataFolders)
283294 return result
284295 }
285296
0 commit comments