Skip to content

Commit

Permalink
fixed bug that was stopping analysis_summary_json being populated on …
Browse files Browse the repository at this point in the history
…import_qc_command; slight refactoring; excluded analysis_summary_json from serializer
  • Loading branch information
MGS-sails committed Sep 19, 2023
1 parent c0d9749 commit 76d35f1
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 26 deletions.
1 change: 1 addition & 0 deletions emgapi/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -1021,6 +1021,7 @@ class Meta:
'is_suppressed',
'suppressed_at',
'suppression_reason',
'analysis_summary_json'
)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ def add_arguments(self, parser):
def handle(self, *args, **options):
logger.info(options)

return

self.results_directory = os.path.realpath(options.get('results_directory').strip())

if not os.path.exists(self.results_directory):
Expand Down
44 changes: 20 additions & 24 deletions emgapianns/management/commands/import_qc.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,19 +81,9 @@ def import_qc(reader, job, emg_db):
var = emg_models.AnalysisMetadataVariableNames.objects.using(emg_db) \
.get(var_name=row[0])
if var is not None:
job_ann, created = emg_models.AnalysisJobAnn.objects.using(emg_db).update_or_create(
job=job, var=var,
defaults={'var_val_ucv': row[1]}
)
analysis_summary = job.analysis_summary_json or []
analysis_summary.append({
'key': job_ann.var.var_name,
'value': job_ann.var_val_ucv,
})
job.analysis_summary_json = analysis_summary
job.save()

anns.append(job_ann)
Command.update_analysis_summary(job, var.var_name, row[1])

# anns.append(job_ann)
logger.info("Total %d Annotations for Run: %s" % (len(anns), job))

@staticmethod
Expand All @@ -104,31 +94,29 @@ def import_rna_counts(rootpath, job, emg_db):
with open(res) as tsvfile:
reader = csv.reader(tsvfile, delimiter='\t')
for row in reader:
if not row: # skip empty lines at the end of the file
if not row: # skip empty lines at the end of the file
continue
try:
if row[0] == 'SSU count':
var_name = 'Predicted SSU sequences'
elif row[0] == 'LSU count':
var_name = 'Predicted LSU sequences'
elif not row[0]:
continue # Skip empty value rows
continue # Skip empty value rows
else:
logging.error("Unsupported variable name {}".format(row[0]))
raise UnexpectedVariableName

var = emg_models.AnalysisMetadataVariableNames.objects.using(emg_db) \
.get(var_name=var_name)

job_ann, created = emg_models.AnalysisJobAnn.objects.using(emg_db).update_or_create(
job=job, var=var,
defaults={'var_val_ucv': row[1]}
)
if var is not None:
Command.update_analysis_summary(job, var.var_name, row[1])
logging.info("{} successfully loaded into the database.".format(row[0]))

except emg_models.AnalysisMetadataVariableNames.DoesNotExist:
logging.error("Could not find variable name {} in the database even "
"though it should be supported!".format(row[0]))
"though it should be supported!".format(row[0]))
raise UnexpectedVariableName
else:
logging.warning("RNA counts file does not exist: {}".format(res))
Expand Down Expand Up @@ -162,10 +150,8 @@ def import_orf_stats(rootpath, job, emg_db):
var = emg_models.AnalysisMetadataVariableNames.objects.using(emg_db) \
.get(var_name=var_name)

job_ann, created = emg_models.AnalysisJobAnn.objects.using(emg_db).update_or_create(
job=job, var=var,
defaults={'var_val_ucv': row[1]}
)
if var is not None:
Command.update_analysis_summary(job, var.var_name, row[1])
logging.info("{} successfully loaded into the database.".format(row[0]))

except emg_models.AnalysisMetadataVariableNames.DoesNotExist:
Expand All @@ -176,3 +162,13 @@ def import_orf_stats(rootpath, job, emg_db):
raise UnexpectedVariableName(msg)
else:
logging.warning("orf.stats file does not exist: {}".format(res))

@staticmethod
def update_analysis_summary(job, var_key, var_value):
analysis_summary = job.analysis_summary_json or []
analysis_summary.append({
'key': var_key,
'value': var_value,
})
job.analysis_summary_json = analysis_summary
job.save()
4 changes: 2 additions & 2 deletions tests/webuploader/test_qc.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,8 @@ def test_qc_multiple_pipelines(self, client, run_multiple_analysis, results):


# print results
# assert len(rsp["data"]["attributes"]["analysis-summary"]) == 12
assert len(rsp["data"]["attributes"]["analysis-summary"]) == 7
assert len(rsp["data"]["attributes"]["analysis-summary"]) == 12

else:
assert len(rsp["data"]["attributes"]["analysis-summary"]) == 5

Expand Down

0 comments on commit 76d35f1

Please sign in to comment.