From fdcc6a364edcb6ade3c7b44dea3abfa2cdf0f1d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oxana=20Lundstr=C3=B6m?= Date: Tue, 7 Mar 2023 21:44:01 +0100 Subject: [PATCH] Fixed EnsemblTRs not being shown --- strAPI/genes.py | 1 + strAPI/main.py | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/strAPI/genes.py b/strAPI/genes.py index d4af42b..6b32287 100644 --- a/strAPI/genes.py +++ b/strAPI/genes.py @@ -15,6 +15,7 @@ def get_exons_by_transcript(db, cds_only, transcript_obj): return list(sorted(exons, key=lambda x : x.start, reverse=True)) def get_gene_info(db, gene_names, ensembl_ids, reqion_query): + genes = [] if gene_names: genes = db.query(Gene).filter(Gene.name.in_(gene_names)).all() elif ensembl_ids: diff --git a/strAPI/main.py b/strAPI/main.py index 4fc9e25..f889bc2 100644 --- a/strAPI/main.py +++ b/strAPI/main.py @@ -203,7 +203,11 @@ def repeats_to_list(repeats): print(r) repeat = r[0] gene = r[1] - crcvar = r[3] + if r[3]: + crcvar = dict(r[3]) + else: + crcvar = dict(total_calls=None, frac_variable = None, avg_size_diff = None) + rows.append({ "repeat_id": repeat.id, "chr": repeat.chr, @@ -217,9 +221,9 @@ def repeats_to_list(repeats): "strand": gene.strand, "gene_name": gene.name, "gene_desc": gene.description, - "total_calls": crcvar.total_calls, - "frac_variable": crcvar.frac_variable, - "avg_size_diff": crcvar.avg_size_diff + "total_calls": crcvar["total_calls"], + "frac_variable": crcvar["frac_variable"], + "avg_size_diff": crcvar["avg_size_diff"] }) return rows @@ -245,7 +249,7 @@ def repeats_to_csv(repeats): ).join(models.Gene).where(models.Gene.id == models.GenesRepeatsLink.gene_id #INNER JOIN genes ON genes.id = genes_repeats.gene_id) ).join(models.Repeat).where(models.Repeat.id == models.GenesRepeatsLink.repeat_id #INNER JOIN repeats on repeats.id = genes_repeats.repeat_id) ).filter(models.Gene.id.in_(gene_obj_ids) - ).join(models.CRCVariation).where(models.Repeat.id == models.CRCVariation.repeat_id + ).join(models.CRCVariation, isouter=True ).order_by(nullslast(models.CRCVariation.frac_variable.desc())).order_by(models.CRCVariation.total_calls) repeats = db.exec(statement)