Skip to content

Commit 815a7d6

Browse files
committed
gsheet: Add --ignore-priority to submit-experiments-from-gsheet
1 parent 051bdff commit 815a7d6

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

rnaseq_pipeline/tasks.py

+15-12
Original file line numberDiff line numberDiff line change
@@ -460,23 +460,26 @@ def complete(self):
460460
"""
461461
return super().complete() and all(not out.exists() for out in self._targets_to_remove())
462462

463-
class SubmitExperimentsFromFileToGemma(TaskWithOutputMixin, WrapperTask):
464-
input_file = luigi.Parameter()
463+
class SubmitExperimentsFromDataFrameMixin:
464+
ignore_priority = luigi.BoolParameter(positional=False, significant=False, description='Ignore the priority column and use 100 everywhere as priority')
465465
def requires(self):
466-
df = pd.read_csv(self.input_file, sep='\t', converters={'priority': lambda x: 0 if x == '' else int(x)})
467-
return [SubmitExperimentToGemma(row.experiment_id, priority=row.get('priority', 0), rerun=row.get('data')=='resubmit')
466+
df = self._retrieve_dataframe()
467+
return [SubmitExperimentToGemma(row.experiment_id, priority=100 if self.ignore_priority else row.get('priority', 0), rerun=row['data']=='resubmit')
468468
for _, row in df.iterrows() if row.get('priority', 0) > 0]
469469

470-
class SubmitExperimentsFromGoogleSpreadsheetToGemma(WrapperTask):
471-
spreadsheet_id = luigi.Parameter()
472-
sheet_name = luigi.Parameter()
470+
class SubmitExperimentsFromFileToGemma(SubmitExperimentsFromDataFrameMixin, TaskWithOutputMixin, WrapperTask):
471+
input_file = luigi.Parameter()
472+
def _retrieve_dataframe(self):
473+
return pd.read_csv(self.input_file, sep='\t', converters={'priority': lambda x: 0 if x == '' else int(x)})
474+
475+
class SubmitExperimentsFromGoogleSpreadsheetToGemma(SubmitExperimentsFromDataFrameMixin, WrapperTask):
476+
spreadsheet_id = luigi.Parameter(description='Spreadsheet ID in Google Sheets (lookup {spreadsheetId} in https://docs.google.com/spreadsheets/d/{spreadsheetId}/edit)')
477+
sheet_name = luigi.Parameter(description='Name of the spreadsheet in the document')
473478
# TODO: use the spreadsheet revision ID
474479
# For now, all that does is distinguishing spreadsheet tasks which might
475480
# refer to different revisions, which in turn allows newly added tasks to
476481
# be executed
477-
revision_id = luigi.Parameter(default=str(uuid.uuid4()))
478-
def requires(self):
482+
revision_id = luigi.Parameter(default=str(uuid.uuid4()), description='Revision ID of the spreadsheet (not yet supported, but will default to the latest)')
483+
def _retrieve_dataframe(self):
479484
from .gsheet import retrieve_spreadsheet
480-
df = retrieve_spreadsheet(self.spreadsheet_id, self.sheet_name)
481-
return [SubmitExperimentToGemma(row.experiment_id, priority=row.get('priority', 0), rerun=row['data']=='resubmit')
482-
for _, row in df.iterrows() if row.get('priority', 0) > 0]
485+
return retrieve_spreadsheet(self.spreadsheet_id, self.sheet_name)

scripts/submit-experiments-from-gsheet

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ def main(argv):
2828
parser.add_argument('--sheet-name')
2929
parser.add_argument('--umask', type=parse_octal, default='002')
3030
parser.add_argument('--workers', type=int, default=100)
31+
parser.add_argument('--ignore-priority', action='store_true')
3132
args = parser.parse_args(argv)
3233
with umask(args.umask):
33-
results = luigi.build([SubmitExperimentsFromGoogleSpreadsheetToGemma(args.spreadsheet_id, args.sheet_name)], workers=args.workers, detailed_summary=True)
34+
results = luigi.build([SubmitExperimentsFromGoogleSpreadsheetToGemma(args.spreadsheet_id, args.sheet_name, ignore_priority=args.ignore_priority)], workers=args.workers, detailed_summary=True)
3435
print(results.summary_text)
3536

3637
if __name__ == '__main__':

0 commit comments

Comments
 (0)