diff --git a/pom.xml b/pom.xml
index d71d3efe..cafe7403 100644
--- a/pom.xml
+++ b/pom.xml
@@ -128,7 +128,7 @@
data-model-lib
life.qbic
- 2.21.0
+ 2.24.0
org.mockito
diff --git a/src/main/groovy/life/qbic/utils/NanoporeParser.groovy b/src/main/groovy/life/qbic/utils/NanoporeParser.groovy
index 7a06610f..3a2b03fc 100644
--- a/src/main/groovy/life/qbic/utils/NanoporeParser.groovy
+++ b/src/main/groovy/life/qbic/utils/NanoporeParser.groovy
@@ -5,8 +5,10 @@ import groovy.json.JsonSlurper
import life.qbic.datamodel.instruments.OxfordNanoporeInstrumentOutput
import life.qbic.datamodel.instruments.OxfordNanoporeInstrumentOutputV2
import life.qbic.datamodel.instruments.OxfordNanoporeInstrumentOutputV3
+import life.qbic.datamodel.instruments.OxfordNanoporeInstrumentOutputV4
import org.everit.json.schema.Schema
import org.everit.json.schema.ValidationException
+import org.everit.json.schema.Validator
import org.everit.json.schema.loader.SchemaLoader
import org.json.JSONObject
import org.json.JSONTokener
@@ -184,14 +186,21 @@ class NanoporeParser {
try {
validateUsingSchema(OxfordNanoporeInstrumentOutputV2.getSchemaAsStream(), jsonObject)
} catch (ValidationException validationExceptionV2) {
- validateUsingSchema(OxfordNanoporeInstrumentOutputV3.getSchemaAsStream(), jsonObject)
+ try{
+ validateUsingSchema(OxfordNanoporeInstrumentOutputV3.getSchemaAsStream(), jsonObject)
+ }
+ catch(ValidationException validationExceptionV3){
+ validateUsingSchema(OxfordNanoporeInstrumentOutputV4.getSchemaAsStream(), jsonObject)
+ }
}
}
}
private static void validateUsingSchema(InputStream schemaAsStream, JSONObject jsonObject) throws ValidationException {
+ //Since we validate multiple schemas we want to fail as early as possible
+ Validator validator = Validator.builder().failEarly().build()
Schema jsonSchema = loadSchemaFromStream(schemaAsStream)
- jsonSchema.validate(jsonObject)
+ validator.performValidation(jsonSchema, jsonObject)
}
private static Schema loadSchemaFromStream(InputStream stream) {
diff --git a/src/test/groovy/life/qbic/utils/NanoporeParserSpec.groovy b/src/test/groovy/life/qbic/utils/NanoporeParserSpec.groovy
index 4c9f3327..9d314f0d 100644
--- a/src/test/groovy/life/qbic/utils/NanoporeParserSpec.groovy
+++ b/src/test/groovy/life/qbic/utils/NanoporeParserSpec.groovy
@@ -64,6 +64,32 @@ class NanoporeParserSpec extends Specification {
assert experiment.getMeasurements().get(0).getLibraryPreparationKit() == "SQK-LSK109-XL"
}
+ def "parsing the a valid file structure with a second basecalling folder returns an OxfordNanoporeExperiment Object"() {
+ given:
+ def pathToDirectory = Paths.get(exampleDirectoriesRoot, "validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4")
+ when:
+ def experiment = NanoporeParser.parseFileStructure(pathToDirectory)
+ then:
+ assert experiment instanceof OxfordNanoporeExperiment
+ // Check that the metadata from the report file has been retrieved
+ assert experiment.getMeasurements().get(0).getMachineHost() == "PCT0094"
+ // Check that the metadata from the summary file has been retrieved
+ assert experiment.getMeasurements().get(0).getLibraryPreparationKit() == "SQK-LSK109-XL"
+ }
+
+ def "parsing the a valid file structure v4 without basecalling folder returns an OxfordNanoporeExperiment Object"() {
+ given:
+ def pathToDirectory = Paths.get(exampleDirectoriesRoot, "validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4")
+ when:
+ def experiment = NanoporeParser.parseFileStructure(pathToDirectory)
+ then:
+ assert experiment instanceof OxfordNanoporeExperiment
+ // Check that the metadata from the report file has been retrieved
+ assert experiment.getMeasurements().get(0).getMachineHost() == "PCT0094"
+ // Check that the metadata from the summary file has been retrieved
+ assert experiment.getMeasurements().get(0).getLibraryPreparationKit() == "SQK-LSK109-XL"
+ }
+
def "parsing the alternative valid file structure with metadata missing returns an OxfordNanoporeExperiment Object"() {
given:
def pathToDirectory = Paths.get(exampleDirectoriesRoot, "validates/QABCD001AB_E12A345a01_PAE12345_nanopore_new_minimal")
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/drift_correction_.csv b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/drift_correction_.csv
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/duty_time_.csv b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/duty_time_.csv
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile2.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile2.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile2.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile3.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile3.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile3.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile4.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile4.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile4.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile5.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile5.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile5.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile2.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile2.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile2.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile3.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile3.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile3.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile4.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile4.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile4.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile5.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile5.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile5.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile2.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile2.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile2.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile3.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile3.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile3.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile4.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile4.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile4.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile5.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile5.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile5.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile1.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile1.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile2.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile2.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile3.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile3.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile4.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile4.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile5.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile5.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/final_summary_.txt b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/final_summary_.txt
new file mode 100644
index 00000000..900f4d7e
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/final_summary_.txt
@@ -0,0 +1,17 @@
+instrument=PCT0094
+position=1-A3-D3
+flow_cell_id=PAE24142
+sample_id=QNANO027AE_E19D023a01_200211
+protocol_group_id=20200211_QNANO
+protocol=sequencing/sequencing_PRO002_DNA:FLO-PRO002:SQK-LSK109-XL
+protocol_run_id=5a7cfc2a-81b0-412d-baa0-51b939cd8e76
+acquisition_run_id=c6028297dff19d01e7c5fba6487de807d1e99c05
+started=2020-02-11T15:52:10.465982+01:00
+acquisition_stopped=2020-02-14T08:39:54.688916+01:00
+processing_stopped=2020-02-14T08:39:58.804639+01:00
+basecalling_enabled=1
+sequencing_summary_file=sequencing_summary_PAE24142_c6028297.txt
+fast5_files_in_final_dest=2189
+fast5_files_in_fallback=0
+fastq_files_in_final_dest=2189
+fastq_files_in_fallback=0
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/mux_scan_data_.csv b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/mux_scan_data_.csv
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/report_.md b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/report_.md
new file mode 100644
index 00000000..586d5325
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/report_.md
@@ -0,0 +1,52 @@
+Tracking ID
+===========
+
+{
+ "asic_id": "0004A30B0022C63E",
+ "asic_id_eeprom": "0004A30B0022C63E",
+ "asic_temp": "32.631687",
+ "asic_version": "Unknown",
+ "auto_update": "0",
+ "auto_update_source": "https://mirror.oxfordnanoportal.com/software/MinKNOW/",
+ "bream_is_standard": "0",
+ "configuration_version": "1.0.7",
+ "device_id": "1-E9-H9",
+ "device_type": "promethion",
+ "distribution_status": "stable",
+ "distribution_version": "19.12.5",
+ "exp_script_name": "N/A",
+ "exp_script_purpose": "sequencing_run",
+ "exp_start_time": "2020-01-28T15:17:38Z",
+ "flow_cell_id": "PAE26989",
+ "flow_cell_product_code": "FLO-PRO002",
+ "guppy_version": "3.2.8+bd67289",
+ "heatsink_temp": "36.179111",
+ "hostname": "PCT0094",
+ "hublett_board_id": "0132136faade2e15",
+ "hublett_firmware_version": "2.0.12",
+ "installation_type": "nc",
+ "ip_address": "",
+ "local_firmware_file": "1",
+ "mac_address": "",
+ "operating_system": "ubuntu 16.04",
+ "protocol_group_id": "20200128_QNANO",
+ "protocol_run_id": "",
+ "protocols_version": "4.3.16",
+ "run_id": "db9e9383d44d80bbe1e2600c7a7419056610d46d",
+ "sample_id": "QNANO036AD_E19D023b04",
+ "satellite_board_id": "0000000000000000",
+ "satellite_firmware_version": "2.0.12",
+ "usb_config": "firm_1.2.3_ware#rbt_4.5.6_rbt#ctrl#USB3",
+ "version": "3.6.1"
+}
+
+Duty Time
+=========
+
+ID: db9e9383d44d80bbe1e2600c7a7419056610d46d
+
+Channel State,Experiment Time (minutes),State Time (samples),
+strand,0,144832342
+strand,1,158421270
+strand,2,378095352
+strand,3,472685319
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/sequencing_summary_.txt b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/sequencing_summary_.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/throughput_.csv b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_no_basecalling_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/throughput_.csv
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile2.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile2.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile2.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile3.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile3.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile3.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile4.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile4.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile4.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile5.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile5.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_fail/myfile5.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_pass/myfile1.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_pass/myfile1.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_pass/myfile2.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_pass/myfile2.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_pass/myfile3.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_pass/myfile3.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_pass/myfile4.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_pass/myfile4.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_pass/myfile5.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/fastq_pass/myfile5.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/guppy_basecall_client_log-.log b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/guppy_basecall_client_log-.log
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/sequencing_summary_.txt b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/sequencing_summary_.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/sequencing_telemetry_.js b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/basecalling/sequencing_telemetry_.js
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/drift_correction_.csv b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/drift_correction_.csv
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/duty_time_.csv b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/duty_time_.csv
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile2.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile2.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile2.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile3.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile3.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile3.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile4.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile4.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile4.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile5.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile5.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_fail/myfile5.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile2.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile2.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile2.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile3.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile3.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile3.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile4.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile4.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile4.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile5.fast5 b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile5.fast5
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fast5_pass/myfile5.fast5
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile2.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile2.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile2.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile3.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile3.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile3.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile4.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile4.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile4.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile5.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile5.fastq.gz
new file mode 100644
index 00000000..a46c98ae
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_fail/myfile5.fastq.gz
@@ -0,0 +1 @@
+This is some text
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile1.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile1.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile2.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile2.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile3.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile3.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile4.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile4.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile5.fastq.gz b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/fastq_pass/myfile5.fastq.gz
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/final_summary_.txt b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/final_summary_.txt
new file mode 100644
index 00000000..900f4d7e
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/final_summary_.txt
@@ -0,0 +1,17 @@
+instrument=PCT0094
+position=1-A3-D3
+flow_cell_id=PAE24142
+sample_id=QNANO027AE_E19D023a01_200211
+protocol_group_id=20200211_QNANO
+protocol=sequencing/sequencing_PRO002_DNA:FLO-PRO002:SQK-LSK109-XL
+protocol_run_id=5a7cfc2a-81b0-412d-baa0-51b939cd8e76
+acquisition_run_id=c6028297dff19d01e7c5fba6487de807d1e99c05
+started=2020-02-11T15:52:10.465982+01:00
+acquisition_stopped=2020-02-14T08:39:54.688916+01:00
+processing_stopped=2020-02-14T08:39:58.804639+01:00
+basecalling_enabled=1
+sequencing_summary_file=sequencing_summary_PAE24142_c6028297.txt
+fast5_files_in_final_dest=2189
+fast5_files_in_fallback=0
+fastq_files_in_final_dest=2189
+fastq_files_in_fallback=0
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/mux_scan_data_.csv b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/mux_scan_data_.csv
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/report_.md b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/report_.md
new file mode 100644
index 00000000..586d5325
--- /dev/null
+++ b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/report_.md
@@ -0,0 +1,52 @@
+Tracking ID
+===========
+
+{
+ "asic_id": "0004A30B0022C63E",
+ "asic_id_eeprom": "0004A30B0022C63E",
+ "asic_temp": "32.631687",
+ "asic_version": "Unknown",
+ "auto_update": "0",
+ "auto_update_source": "https://mirror.oxfordnanoportal.com/software/MinKNOW/",
+ "bream_is_standard": "0",
+ "configuration_version": "1.0.7",
+ "device_id": "1-E9-H9",
+ "device_type": "promethion",
+ "distribution_status": "stable",
+ "distribution_version": "19.12.5",
+ "exp_script_name": "N/A",
+ "exp_script_purpose": "sequencing_run",
+ "exp_start_time": "2020-01-28T15:17:38Z",
+ "flow_cell_id": "PAE26989",
+ "flow_cell_product_code": "FLO-PRO002",
+ "guppy_version": "3.2.8+bd67289",
+ "heatsink_temp": "36.179111",
+ "hostname": "PCT0094",
+ "hublett_board_id": "0132136faade2e15",
+ "hublett_firmware_version": "2.0.12",
+ "installation_type": "nc",
+ "ip_address": "",
+ "local_firmware_file": "1",
+ "mac_address": "",
+ "operating_system": "ubuntu 16.04",
+ "protocol_group_id": "20200128_QNANO",
+ "protocol_run_id": "",
+ "protocols_version": "4.3.16",
+ "run_id": "db9e9383d44d80bbe1e2600c7a7419056610d46d",
+ "sample_id": "QNANO036AD_E19D023b04",
+ "satellite_board_id": "0000000000000000",
+ "satellite_firmware_version": "2.0.12",
+ "usb_config": "firm_1.2.3_ware#rbt_4.5.6_rbt#ctrl#USB3",
+ "version": "3.6.1"
+}
+
+Duty Time
+=========
+
+ID: db9e9383d44d80bbe1e2600c7a7419056610d46d
+
+Channel State,Experiment Time (minutes),State Time (samples),
+strand,0,144832342
+strand,1,158421270
+strand,2,378095352
+strand,3,472685319
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/sequencing_summary_.txt b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/sequencing_summary_.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/throughput_.csv b/src/test/resources/dummyFileSystem/nanopore-instrument-output/validates/QABCD001AB_E12A345a01_PAE12345_nanopore_v4/20200122_1217_1-A1-B1-PAE12345_1234567a/throughput_.csv
new file mode 100644
index 00000000..e69de29b