Skip to content

Commit

Permalink
'setup' command: also acquire and store 'run_configuration' metadata …
Browse files Browse the repository at this point in the history
…item.
  • Loading branch information
pjbriggs committed Dec 19, 2023
1 parent 12b4052 commit 80ab141
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
5 changes: 5 additions & 0 deletions auto_process_ngs/commands/setup_cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import shutil
import logging
from ..bcl2fastq.utils import get_bases_mask
from ..bcl2fastq.utils import get_run_config
from ..bcl2fastq.utils import get_sequencer_platform
from ..bcl2fastq.utils import make_custom_sample_sheet
from ..applications import general as general_applications
Expand Down Expand Up @@ -210,6 +211,8 @@ def setup(ap,data_dir,analysis_dir=None,sample_sheet=None,
target = os.path.join(data_dir,"RunInfo.xml")
run_info_xml = os.path.join(ap.tmp_dir,"RunInfo.xml")
fetch_file(target,run_info_xml)
run_config = get_run_config(run_info_xml)
print("Run configuration: %s" % run_config)
default_bases_mask = get_bases_mask(run_info_xml)
print("Default bases mask: %s" % default_bases_mask)
except Exception as ex:
Expand All @@ -225,6 +228,7 @@ def setup(ap,data_dir,analysis_dir=None,sample_sheet=None,
raise Exception("Failed to acquire RunInfo.xml: %s" % ex)
else:
# Can ignore if Fastqs already exist
run_config = None
default_bases_mask = None
# Attempt to acquire RunParameters.xml
try:
Expand Down Expand Up @@ -309,6 +313,7 @@ def setup(ap,data_dir,analysis_dir=None,sample_sheet=None,
ap.metadata['instrument_run_number'] = instrument_run_number
ap.metadata['instrument_flow_cell_id'] = flow_cell
ap.metadata['flow_cell_mode'] = flow_cell_mode
ap.metadata['run_configuration'] = run_config
ap.metadata['default_bases_mask'] = default_bases_mask
ap.metadata['sequencer_model'] = model
ap.metadata['source'] = data_source
Expand Down
26 changes: 25 additions & 1 deletion auto_process_ngs/test/commands/test_setup_cmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,8 @@ def test_autoprocess_setup(self):
"000000000-ABCDE1")
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,None)
self.assertEqual(ap.metadata.run_configuration,
"R1:101bp, I1:8bp, I2:8bp, R2:101bp")
self.assertEqual(ap.metadata.default_bases_mask,
"y101,I8,I8,y101")
# Delete to force write of data to disk
Expand Down Expand Up @@ -194,8 +196,10 @@ def test_autoprocess_setup_novaseq_run(self):
"000000000-ABCDE1")
self.assertEqual(ap.metadata.flow_cell_mode,"SP")
self.assertEqual(ap.metadata.sequencer_model,"NovaSeq 5000")
self.assertEqual(ap.metadata.run_configuration,
"R1:76bp, I1:10bp, I2:10bp, R2:76bp")
self.assertEqual(ap.metadata.default_bases_mask,
"y76,I0,I10,y76")
"y76,I10,I10,y76")
# Delete to force write of data to disk
del(ap)
# Check directory exists
Expand Down Expand Up @@ -253,6 +257,8 @@ def test_autoprocess_setup_specify_facility_run_number(self):
"000000000-ABCDE1")
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,None)
self.assertEqual(ap.metadata.run_configuration,
"R1:101bp, I1:8bp, I2:8bp, R2:101bp")
self.assertEqual(ap.metadata.default_bases_mask,
"y101,I8,I8,y101")
# Delete to force write of data to disk
Expand Down Expand Up @@ -312,6 +318,8 @@ def test_autoprocess_setup_specify_analysis_number(self):
"000000000-ABCDE1")
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,None)
self.assertEqual(ap.metadata.run_configuration,
"R1:101bp, I1:8bp, I2:8bp, R2:101bp")
self.assertEqual(ap.metadata.default_bases_mask,
"y101,I8,I8,y101")
# Delete to force write of data to disk
Expand Down Expand Up @@ -369,6 +377,8 @@ def test_autoprocess_setup_non_canonical_run_name(self):
self.assertEqual(ap.metadata.instrument_flow_cell_id,None)
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,None)
self.assertEqual(ap.metadata.run_configuration,
"R1:101bp, I1:8bp, I2:8bp, R2:101bp")
self.assertEqual(ap.metadata.default_bases_mask,
"y101,I8,I8,y101")

Expand Down Expand Up @@ -537,6 +547,8 @@ def test_autoprocess_setup_external_samplesheet(self):
"AHGXXXX")
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,None)
self.assertEqual(ap.metadata.run_configuration,
"R1:76bp, I1:6bp, R2:76bp")
self.assertEqual(ap.metadata.default_bases_mask,
"y76,I6,y76")
# Delete to force write of data to disk
Expand Down Expand Up @@ -603,6 +615,8 @@ def test_autoprocess_setup_samplesheet_from_url(self):
"000000000-ABCDE1")
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,None)
self.assertEqual(ap.metadata.run_configuration,
"R1:101bp, I1:8bp, I2:8bp, R2:101bp")
self.assertEqual(ap.metadata.default_bases_mask,
"y101,I8,I8,y101")
# Delete to force write of data to disk
Expand Down Expand Up @@ -686,6 +700,8 @@ def test_autoprocess_setup_samplesheet_with_lanes(self):
"AHGXXXX")
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,None)
self.assertEqual(ap.metadata.run_configuration,
"R1:76bp, I1:6bp, R2:76bp")
self.assertEqual(ap.metadata.default_bases_mask,
"y76,I6,y76")
# Delete to force write of data to disk
Expand Down Expand Up @@ -772,6 +788,8 @@ def test_autoprocess_setup_samplesheet_with_lanes_and_trailing_lines(self):
"AHGXXXX")
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,None)
self.assertEqual(ap.metadata.run_configuration,
"R1:76bp, I1:6bp, R2:76bp")
self.assertEqual(ap.metadata.default_bases_mask,
"y76,I6,y76")
# Delete to force write of data to disk
Expand Down Expand Up @@ -839,6 +857,8 @@ def test_autoprocess_setup_import_extra_files(self):
"000000000-ABCDE1")
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,None)
self.assertEqual(ap.metadata.run_configuration,
"R1:101bp, I1:8bp, I2:8bp, R2:101bp")
self.assertEqual(ap.metadata.default_bases_mask,
"y101,I8,I8,y101")
# Delete to force write of data to disk
Expand Down Expand Up @@ -916,6 +936,7 @@ def test_autoprocess_setup_from_casava_outputs(self):
"000000000-ABCDE1")
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,None)
self.assertEqual(ap.metadata.run_configuration,None)
self.assertEqual(ap.metadata.default_bases_mask,None)
# Delete to force write of data to disk
del(ap)
Expand Down Expand Up @@ -997,6 +1018,7 @@ def test_autoprocess_setup_from_bcl2fastq2_outputs(self):
"000000000-ABCDE1")
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,None)
self.assertEqual(ap.metadata.run_configuration,None)
self.assertEqual(ap.metadata.default_bases_mask,None)
# Delete to force write of data to disk
del(ap)
Expand Down Expand Up @@ -1111,5 +1133,7 @@ def test_autoprocess_setup_stores_sequencer_model(self):
"000000000-ABCDE1")
self.assertEqual(ap.metadata.flow_cell_mode,None)
self.assertEqual(ap.metadata.sequencer_model,"MiSeq")
self.assertEqual(ap.metadata.run_configuration,
"R1:101bp, I1:8bp, I2:8bp, R2:101bp")
self.assertEqual(ap.metadata.default_bases_mask,
"y101,I8,I8,y101")

0 comments on commit 80ab141

Please sign in to comment.