diff --git a/microSALT/__init__.py b/microSALT/__init__.py index bdb365db..792a57c7 100644 --- a/microSALT/__init__.py +++ b/microSALT/__init__.py @@ -1,6 +1,6 @@ import logging -__version__ = "5.0.2" +__version__ = "5.0.3" logger = None diff --git a/microSALT/server/templates/alignment_page.html b/microSALT/server/templates/alignment_page.html index fbc2796c..8f6278af 100644 --- a/microSALT/server/templates/alignment_page.html +++ b/microSALT/server/templates/alignment_page.html @@ -1,267 +1,405 @@ {% extends 'layout.html' %} - {% block body %} +{% block body %} {% set thres = dict() %} -
+
- -
-
- - MicroSALT Logo - -
-
-

Kontakt

-
- Clinical Genomics
- Science for Life Laboratory
- Tomtebodavägen 23
- 171 65 Solna
- T: (08) 524 81 500 -
-
-
-

Kund

-
-

{{topsample.projects.Customer_ID}}


-
-
- microSALT-teamet
- E: - microsalt-suggestions@scilifelab.se - -
-
-
-
- -
-

Projektsammanställning

-
- - - - - - - - - {% if reports|length > 1 %} - - {% else %} - + +
+
+
+ + MicroSALT Logo + + {% if topsample.application_tag and 'MW' in topsample.application_tag %} + Swedac Logo {% endif %} -
- - - - - - - - -
Ticket ID (CG Projekt ID) - {{topsample.projects.Customer_ID_project}} ({{topsample.projects.CG_ID_project}})
Kund ID (*) - {{topsample.projects.Customer_ID}}
Rapport versionVersion {{reports[0].version}}, {{reports[0].date.date()}} (Ersätter version {{reports[1].version}}, {{reports[1].date.date()}})Version {{reports[0].version}}, {{reports[0].date.date()}}
Ansvarig bioinformatiker{{user}}
microSALT version{{build}}
-
-
-

Provsammanställning

-
- - - - - - - - - - - - - - - - - - - {% for sample in samples %} - {% if 'Kontroll' in sample.ST_status %}{% endif %} - - - - {% if sample.application_tag and sample.application_tag[-1:]|float != 0 %} - - {% else %} - - {% endif %} - {% if sample.organism is not none %} - - {% else %}{% endif %} - - - {% if sample.total_reads is none %} - - {% if sample.mapped_rate is none or sample.mapped_rate == 0 %} - - {% if sample.duplication_rate is none or sample.duplication_rate == -1 or sample.duplication_rate == 0.0 %} - - {% if sample.insert_size is none or sample.insert_size == 0 %} - - {% if sample.average_coverage is none or sample.average_coverage|round(2) == 0 %} - - {% if sample.coverage_10x is none or (sample.coverage_10x*100)|round(2) == 0 %} - - {% if sample.coverage_30x is none or (sample.coverage_30x*100)|round(2) == 0 %} - - {% if sample.coverage_50x is none or (sample.coverage_50x*100)|round(2) == 0 %} - - {% if sample.coverage_100x is none or (sample.coverage_100x*100)|round(2) == 0 %} - - - {% if 'Kontroll' in sample.ST_status %}{% endif %} - {% endfor %} -
Prov ID (*)CG Prov IDApplikationstagOrganism (*)Referensgenom (*)Antal ReadsMappningsgrad %Duplikationsgrad %Insert Storlek (Median)Medeltäckning%BP > 10x Täckning%BP > 30x Täckning%BP > 50x Täckning%BP > 100x Täckning
{{ sample.Customer_ID_sample }}{{ sample.CG_ID_sample }}{{ sample.application_tag }}{{ sample.application_tag }}{{sample.organism.replace('_', ' ').capitalize()}}Okänd{{ sample.reference_genome }}0 - {% else %} - {% if sample.application_tag and sample.application_tag[-1:]|float != 0 %} - {% set bp_perc = ((sample.total_reads*100/((sample.application_tag[-1:]|float)*2000000))|round(2)) %} - {% else %} - {% set bp_perc = 0.0 %} - {% endif %} - {% if 'Kontroll' in sample.ST_status %} - {% if bp_perc > threshold.NTC_total_reads_fail %} - {{'{0:,}'.format(sample.total_reads)|replace(","," ")}} ({{ bp_perc }}%) - {% elif bp_perc > threshold.NTC_total_reads_warn %} - {{'{0:,}'.format(sample.total_reads)|replace(","," ")}} ({{ bp_perc }}%) - {% else %} - {{'{0:,}'.format(sample.total_reads)|replace(","," ")}} ({{ bp_perc }}%) - {% endif %} - {% else %} - {% if bp_perc < threshold.total_reads_fail %} - {{'{0:,}'.format(sample.total_reads)|replace(","," ")}} ({{ bp_perc }}%) - {% elif bp_perc < threshold.total_reads_warn %} - {{'{0:,}'.format(sample.total_reads)|replace(","," ")}} ({{ bp_perc }}%) - {% else %} - {{'{0:,}'.format(sample.total_reads)|replace(","," ")}} ({{ bp_perc }}%) - {% endif %} - {% endif %} - {% endif %} - 0.0 - {% elif (sample.mapped_rate*100)|round(2) <= threshold.mapped_rate_warn and not 'Kontroll' in sample.ST_status %} - {% if (sample.mapped_rate*100)|round(2) <= threshold.mapped_rate_fail %} - {{ (sample.mapped_rate*100)|round(2) }} - {% else %} - {{ (sample.mapped_rate*100)|round(2) }} - {% endif %} - {% else %} {{ (sample.mapped_rate*100)|round(2) }} {% endif %} - N/A - {% elif (sample.duplication_rate*100)|round(2) >= threshold.duplication_rate_warn and not 'Kontroll' in sample.ST_status %} - {% if (sample.duplication_rate*100)|round(2) >= threshold.duplication_rate_fail %} - {{ (sample.duplication_rate*100)|round(2) }} - {% else %} - {{ (sample.duplication_rate*100)|round(2) }} - {% endif %} - {% else %} - {{ (sample.duplication_rate*100)|round(2) }} - {% endif %} - N/A - {% elif sample.insert_size <= threshold.insert_size_warn and not 'Kontroll' in sample.ST_status %} - {% if sample.insert_size <= threshold.insert_size_fail %} - {{ sample.insert_size }} - {% else %} - {{ sample.insert_size }} - {% endif %} - {% else %} {{ sample.insert_size }} {% endif %} - 0.0x - {% elif (sample.average_coverage)|round(2) <= threshold.average_coverage_warn and not 'Kontroll' in sample.ST_status %} - {% if (sample.average_coverage)|round(2) <= threshold.average_coverage_fail %} - {{ (sample.average_coverage)|round(2) }}x - {% else %} - {{ (sample.average_coverage)|round(2) }}x - {% endif %} - {% else %} {{ (sample.average_coverage)|round(2) }}x{% endif %} - 0.0 - {% elif (sample.coverage_10x*100)|round(2) <= threshold.bp_10x_warn and not 'Kontroll' in sample.ST_status %} - {% if (sample.coverage_10x*100)|round(2) <= threshold.bp_10x_fail %} - {{ (sample.coverage_10x*100)|round(2) }} - {% else %} - {{ (sample.coverage_10x*100)|round(2) }} - {% endif %} - {% else %} {{ (sample.coverage_10x*100)|round(2) }} {% endif %} - 0.0 - {% elif (sample.coverage_30x*100)|round(2) <= threshold.bp_30x_warn and not 'Kontroll' in sample.ST_status %} - {{ (sample.coverage_30x*100)|round(2) }} - {% else %} {{ (sample.coverage_30x*100)|round(2) }} {% endif %} - 0.0 - {% elif (sample.coverage_50x*100)|round(2) <= threshold.bp_50x_warn and not 'Kontroll' in sample.ST_status %} - {{ (sample.coverage_50x*100)|round(2) }} - {% else %} {{ (sample.coverage_50x*100)|round(2) }} {% endif %} - 0.0 - {% elif (sample.coverage_100x*100)|round(2) <= threshold.bp_100x_warn and not 'Kontroll' in sample.ST_status %} - {{ (sample.coverage_100x*100)|round(2) }} - {% else %} {{ (sample.coverage_100x*100)|round(2) }} {% endif %} -
-
- (*) Information om prover som kommer från kund
-
- -
-

Teknisk beskrivning av analysen: {{topsample.application_tag}}

-

- {% if topsample.application_tag == "MWRNXTR003" %} - Mikrobiell helgenomssekvensering av rutinprov, med krav på minst 3 miljoner läspar. - Nextera library preparation. - {% elif topsample.application_tag in ["MWGNXTR003", "MWMNXTR003", "MWLNXTR003"] %} - Mikrobiell helgenomssekvensering, med krav på minst 3 miljoner läspar. - Nextera library preparation. - {% elif topsample.application_tag == "MWXNXTR003" %} - Storskalig mikrobiell helgenomssekvensering av minst 176 prover, med krav på minst 3 miljoner läspar. - Nextera library preparation. - {% elif topsample.application_tag in ["VWGNXTR001", "VWLNXTR001"] %} - Virologisk helgenomssekvensering, med krav på minst 1 miljon läspar. - Nextera library preparation. - {% elif topsample.application_tag == "VWSMCTR001" %} - Virologisk helgenomssekvensering, med krav på minst 1 miljon läspar. - MiniCovid kit tagmentation preparation. - {% elif topsample.application_tag == "MWSMCTR003" %} - Mikrobiell helgenomssekvensering, med krav på minst 3 miljoner läspar. - MiniCovid kit tagmentation preparation. - {% endif %} -

-

Analysbegränsningar för: {{topsample.application_tag}}

-

- Tillförlitligheten hos resultaten förutsätter att informationen som bifogats från kund är korrekt. -

- -

Förbättringsförslag

-

- Alla typer av förbättringsförslag mailas med fördel till microsalt-suggestions@scilifelab.se
- Din återkopplling uppskattas! -

- -

Avvikelser från metoden

-

- All kommunikation gällande ordern såsom tillägg, avvikelser eller - eventuella undantag i metoden från Clinical Genomics finns tillgängligt i - Freshdesk för dess ticket id. En stängd ticket kan närsomhelst - öppnas upp igen för frågor. -

- -

Signatur för godkännande av rapport

-

- Valtteri Wirta
- Head of unit, Clinical Genomics -

-
-
-
Slut på rapport
-
-
-
-
- {% endblock %} + +
+
+

Kontakt

+
+ Clinical Genomics +
+ Science for Life Laboratory +
+ Tomtebodavägen 23 +
+ 171 65 Solna +
+ T: (08) 524 81 500 +
+
+
+

Kund

+
+

{{ topsample.projects.Customer_ID }}

+
+
+
+ microSALT-teamet +
+ E: + microsalt-suggestions@scilifelab.se + +
+
+
+
+
+
+

+ Projektsammanställning +
+

+
+ + + + + + + + + + {% if reports|length > 1 %} + + {% else %} + + {% endif %} + + + + + + + + + +
+ Ticket ID (CG Projekt ID) + {{ topsample.projects.Customer_ID_project }} ({{ topsample.projects.CG_ID_project }})
+ Kund ID (*) + {{ topsample.projects.Customer_ID }}
Rapport versionVersion {{ reports[0].version }}, {{ reports[0].date.date() }} (Ersätter version {{ reports[1].version }}, {{ reports[1].date.date() }})Version {{ reports[0].version }}, {{ reports[0].date.date() }}
Ansvarig bioinformatiker{{ user }}
microSALT version{{ build }}
+
+
+
+
+
+

+ Provsammanställning +
+

+
+ + + + + + + + + + + + + + + + + + {% for sample in samples %} + {% if 'Kontroll' in sample.ST_status %}{% endif %} + + + + {% if sample.application_tag and sample.application_tag[-1:]|float != 0 %} + + {% else %} + + {% endif %} + {% if sample.organism is not none %} + + {% else %}{% endif %} + + {% if sample.total_reads is none %} + + {% if sample.mapped_rate is none or sample.mapped_rate == 0 %} + + {% if sample.duplication_rate is none or sample.duplication_rate == -1 or sample.duplication_rate == 0.0 %} + + {% if sample.insert_size is none or sample.insert_size == 0 %} + + {% if sample.average_coverage is none or sample.average_coverage|round(2) == 0 %} + + {% if sample.coverage_10x is none or (sample.coverage_10x*100)|round(2) == 0 %} + + {% if sample.coverage_30x is none or (sample.coverage_30x*100)|round(2) == 0 %} + + {% if sample.coverage_50x is none or (sample.coverage_50x*100)|round(2) == 0 %} + + {% if sample.coverage_100x is none or (sample.coverage_100x*100)|round(2) == 0 %} + + + {% if 'Kontroll' in sample.ST_status %}{% endif %} + {% endfor %} +
Prov ID (*)CG Prov IDApplikationstagOrganism (*)Referensgenom (*)Antal Reads (**)Mappningsgrad %Duplikationsgrad %Insert Storlek (Median)Medeltäckning%BP > 10x Täckning%BP > 30x Täckning%BP > 50x Täckning%BP > 100x Täckning
{{ sample.Customer_ID_sample }}{{ sample.CG_ID_sample }}{{ sample.application_tag }}{{ sample.application_tag }}{{ sample.organism.replace('_', ' ').capitalize() }}Okänd{{ sample.reference_genome }} + 0 + {% else %} + {% if sample.application_tag and sample.application_tag[-1:]|float != 0 %} + {% set bp_perc = ((sample.total_reads*100/((sample.application_tag[-1:]|float)*2000000))|round(2)) %} + {% else %} + {% set bp_perc = 0.0 %} + {% endif %} + {% if 'Kontroll' in sample.ST_status %} + {% if bp_perc > threshold.NTC_total_reads_fail %} + + {{ '{0:,}'.format(sample.total_reads) |replace(","," ")}} ({{ bp_perc }}%) + {% elif bp_perc > threshold.NTC_total_reads_warn %} + + {{ '{0:,}'.format(sample.total_reads) |replace(","," ")}} ({{ bp_perc }}%) + {% else %} + + {{ '{0:,}'.format(sample.total_reads) |replace(","," ")}} ({{ bp_perc }}%) + {% endif %} + {% else %} + {% if bp_perc < threshold.total_reads_fail %} + + {{ '{0:,}'.format(sample.total_reads) |replace(","," ")}} ({{ bp_perc }}%) + {% elif bp_perc < threshold.total_reads_warn %} + + {{ '{0:,}'.format(sample.total_reads) |replace(","," ")}} ({{ bp_perc }}%) + {% else %} + + {{ '{0:,}'.format(sample.total_reads) |replace(","," ")}} ({{ bp_perc }}%) + {% endif %} + {% endif %} + {% endif %} + + 0.0 + {% elif (sample.mapped_rate*100)|round(2) <= threshold.mapped_rate_warn and not 'Kontroll' in sample.ST_status %} + {% if (sample.mapped_rate*100)|round(2) <= threshold.mapped_rate_fail %} + + {{ (sample.mapped_rate*100)|round(2) }} + {% else %} + + {{ (sample.mapped_rate*100)|round(2) }} + {% endif %} + {% else %} {{ (sample.mapped_rate*100)|round(2) }} {% endif %} + N/A + {% elif (sample.duplication_rate*100)|round(2) >= threshold.duplication_rate_warn and not 'Kontroll' in sample.ST_status %} + {% if (sample.duplication_rate*100)|round(2) >= threshold.duplication_rate_fail %} + + {{ (sample.duplication_rate*100)|round(2) }} + {% else %} + + {{ (sample.duplication_rate*100)|round(2) }} + {% endif %} + {% else %} + + {{ (sample.duplication_rate*100)|round(2) }} + {% endif %} + + N/A + {% elif sample.insert_size <= threshold.insert_size_warn and not 'Kontroll' in sample.ST_status %} + {% if sample.insert_size <= threshold.insert_size_fail %} + + {{ sample.insert_size }} + {% else %} + + {{ sample.insert_size }} + {% endif %} + {% else %} {{ sample.insert_size }} {% endif %} + 0.0x + {% elif (sample.average_coverage)|round(2) <= threshold.average_coverage_warn and not 'Kontroll' in sample.ST_status %} + {% if (sample.average_coverage)|round(2) <= threshold.average_coverage_fail %} + + {{ (sample.average_coverage)|round(2) }}x + {% else %} + + {{ (sample.average_coverage)|round(2) }}x + {% endif %} + {% else %} {{ (sample.average_coverage)|round(2) }}x{% endif %} + 0.0 + {% elif (sample.coverage_10x*100)|round(2) <= threshold.bp_10x_warn and not 'Kontroll' in sample.ST_status %} + {% if (sample.coverage_10x*100)|round(2) <= threshold.bp_10x_fail %} + + {{ (sample.coverage_10x*100)|round(2) }} + {% else %} + + {{ (sample.coverage_10x*100)|round(2) }} + {% endif %} + {% else %} {{ (sample.coverage_10x*100)|round(2) }} {% endif %} + 0.0 + {% elif (sample.coverage_30x*100)|round(2) <= threshold.bp_30x_warn and not 'Kontroll' in sample.ST_status %} + + {{ (sample.coverage_30x*100)|round(2) }} + {% else %} {{ (sample.coverage_30x*100)|round(2) }} {% endif %} + 0.0 + {% elif (sample.coverage_50x*100)|round(2) <= threshold.bp_50x_warn and not 'Kontroll' in sample.ST_status %} + + {{ (sample.coverage_50x*100)|round(2) }} + {% else %} {{ (sample.coverage_50x*100)|round(2) }} {% endif %} + 0.0 + {% elif (sample.coverage_100x*100)|round(2) <= threshold.bp_100x_warn and not 'Kontroll' in sample.ST_status %} + + {{ (sample.coverage_100x*100)|round(2) }} + {% else %} {{ (sample.coverage_100x*100)|round(2) }} {% endif %}
+
+ (*) Information om prover som kommer från kund +
+ (**) Antal reads efter adapter-trimming och filtrering av läspar +
+
+
+
+
+

+ Provsammanställning +
+

+
+ + + + + + + + + + + + + {% for sample in samples %} + + + + {% if sample.organism is not none %} + + {% else %} + + {% endif %} + {% if sample.date_arrival is not none and sample.date_arrival.date().strftime('%Y-%m-%d') != '1-01-01' %} + + {% else %}{% endif %} + {% if sample.date_libprep is not none and sample.date_libprep.date().strftime('%Y-%m-%d') != '1-01-01' %} + + {% else %}{% endif %} + {% if sample.method_libprep is not none and 'Not in LIMS' not in sample.method_libprep %} + + {% else %} + + {% endif %} + {% if sample.date_sequencing is not none and sample.date_sequencing.date().strftime('%Y-%m-%d') != '1-01-01' %} + + {% else %}{% endif %} + {% if sample.method_sequencing is not none and 'Not in LIMS' not in sample.method_sequencing %} + + {% else %} + + {% endif %} + {% if sample.priority is not none %} + + {% else %} + + {% endif %} + + {% endfor %} +
Prov ID (*)Applikationstag (*)Organism (*)AnkomstdatumDatum prepMetod prepDatum sekvenseringMetod sekvenseringPrioritet (*)
{{ sample.Customer_ID_sample }}{{ sample.application_tag }}{{ sample.organism.replace('_', ' ').capitalize() }}N/A{{ sample.date_arrival.date() }}Okänt{{ sample.date_libprep.date() }}Okänt{{ sample.method_libprep }}Okänt{{ sample.date_sequencing.date() }}Okänt{{ sample.method_sequencing }}Okänt{{ sample.priority.capitalize() }}-
+
+ (*) Information om prover som kommer från kund +
+
+
+
+
+

+ Teknisk beskrivning av analysen: {{ topsample.application_tag }} +
+

+

+ {% if topsample.application_tag == "MWRNXTR003" %} + Mikrobiell helgenomssekvensering av rutinprov, med krav på minst 3 miljoner läspar. + Nextera library preparation. + {% elif topsample.application_tag in ["MWGNXTR003", "MWMNXTR003", "MWLNXTR003"] %} + Mikrobiell helgenomssekvensering, med krav på minst 3 miljoner läspar. + Nextera library preparation. + {% elif topsample.application_tag == "MWXNXTR003" %} + Storskalig mikrobiell helgenomssekvensering av minst 176 prover, med krav på minst 3 miljoner läspar. + Nextera library preparation. + {% elif topsample.application_tag in ["VWGNXTR001", "VWLNXTR001"] %} + Virologisk helgenomssekvensering, med krav på minst 1 miljon läspar. + Nextera library preparation. + {% elif topsample.application_tag == "VWSMCTR001" %} + Virologisk helgenomssekvensering, med krav på minst 1 miljon läspar. + MiniCovid kit tagmentation preparation. + {% elif topsample.application_tag == "MWSMCTR003" %} + Mikrobiell helgenomssekvensering, med krav på minst 3 miljoner läspar. + MiniCovid kit tagmentation preparation. + {% endif %} +

+

+ Analysbegränsningar för: {{ topsample.application_tag }} +
+

+

+ Tillförlitligheten hos resultaten förutsätter att informationen som bifogats från kund är korrekt. +

+

+ Förbättringsförslag +
+

+

+ Alla typer av förbättringsförslag mailas med fördel till microsalt-suggestions@scilifelab.se +
+ Din återkopplling uppskattas! +

+

+ Avvikelser från metoden +
+

+

+ All kommunikation gällande ordern såsom tillägg, avvikelser eller + eventuella undantag i metoden från Clinical Genomics finns tillgängligt i + Freshdesk för dess ticket id. En stängd ticket kan närsomhelst + öppnas upp igen för frågor. +

+

+ Signatur för godkännande av rapport +
+

+

+ Valtteri Wirta +
+ Head of unit, Clinical Genomics +

+
+
+
+
Slut på rapport
+
+ + + +{% endblock %} diff --git a/microSALT/server/templates/typing_page.html b/microSALT/server/templates/typing_page.html index ef5fa573..706c44d0 100644 --- a/microSALT/server/templates/typing_page.html +++ b/microSALT/server/templates/typing_page.html @@ -1,429 +1,518 @@ {% extends 'layout.html' %} - {% block body %} +{% block body %} {% set thres = dict() %} -
+
- -
-
- - MicroSALT Logo - {% if topsample.application_tag and 'MW' in topsample.application_tag %} - Swedac Logo - {% endif %} - -
-
-

Kontakt Clinical Genomics

-
- Clinical Genomics
- Science for Life Laboratory
- Tomtebodavägen 23
- 171 65 Solna
- T: (08) 524 81 500 -
-
- microSALT-teamet
- E: - microsalt-suggestions@scilifelab.se - -
-
-
-

Kund

-
-

{{topsample.projects.Customer_ID}}


-
-
-
-
- -
-

Projektsammanställning

-
- - - - - - - - - {% if reports|length > 1 %} - - {% else %} - - {% endif %} - - - - - - - - - -
Ticket ID (CG Projekt ID) - {{topsample.projects.Customer_ID_project}} ({{topsample.projects.CG_ID_project}})
Kund ID (*) - {{topsample.projects.Customer_ID}}
Rapport versionVersion {{reports[0].version}}, {{reports[0].date.date()}} (Ersätter version {{reports[1].version}}, {{reports[1].date.date()}})Version {{reports[0].version}}, {{reports[0].date.date()}}
Ansvarig bioinformatiker{{user}}
microSALT version{{build}}
-
- -
-

Resultatsammanställning

-

-

-
- - - - - - - - - {% for sample in samples %} - - - - {% if sample.organism is not none %} - - {% else %} - - {% endif %} - {% if sample.ST_status == 'None' or sample.ST == -1 %} - - {% elif sample.ST <= -4 %} - - {% else %} - - {% endif %} - {% if sample.threshold == 'Failed' %} - - {% elif sample.threshold == '-' %} - - {% else %} - - {% endif %} - - {% endfor %} -
Prov ID(*)CG Prov IDOrganism (*)Sekvenstyp (**)Tröskelvärden
{{sample.Customer_ID_sample}}{{sample.CG_ID_sample}}{{sample.organism.replace('_', ' ').capitalize()}}Kontroll{{ sample.ST_status }}I{{sample.ST|int|abs}} (Novel){{sample.ST_status }}Underkända-Godkända
-
- (*) Information om prover som kommer från kund
- (**) För förbättrad översikt rapporteras resultaten för kontrollprover enbart i detaljrapporten
-
- -
-

Provsammanställning

-
- - - - - - - - - - - - - - {% for sample in samples %} - - - - {% if sample.organism is not none %} - - {% else %} - - {% endif %} - {% if sample.date_arrival is not none and sample.date_arrival.date().strftime('%Y-%m-%d') != '1-01-01' %} - - {% else %}{% endif %} - {% if sample.date_libprep is not none and sample.date_libprep.date().strftime('%Y-%m-%d') != '1-01-01' %} - - {% else %}{% endif %} - {% if sample.method_libprep is not none and 'Not in LIMS' not in sample.method_libprep %} - - {% else %} - - {% endif %} - {% if sample.date_sequencing is not none and sample.date_sequencing.date().strftime('%Y-%m-%d') != '1-01-01' %} - - {% else %}{% endif %} - {% if sample.method_sequencing is not none and 'Not in LIMS' not in sample.method_sequencing %} - - {% else %} - - {% endif %} - {% if sample.priority is not none %} - - {% else %} - - {% endif %} - {% if sample.organism is not none %} - {% if sample.priority == 'standard' and sample.organism.replace('_', ' ').capitalize() in verified_organisms %} - - {% else %} - - {% endif %} - {% else %} - - {% endif %} - - {% endfor %} -
Prov ID (*)Applikationstag (*)Organism (*)AnkomstdatumDatum prepMetod prepDatum sekvenseringMetod sekvenseringPrioritet (*)Verifierad (**)
{{sample.Customer_ID_sample}}{{sample.application_tag}}{{sample.organism.replace('_', ' ').capitalize()}}N/A{{sample.date_arrival.date()}}Okänt{{sample.date_libprep.date()}}Okänt{{sample.method_libprep}}Okänt{{sample.date_sequencing.date()}}Okänt{{sample.method_sequencing}}Okänt{{sample.priority.capitalize()}}-✔--
-
- (*) Information om prover som kommer från kund
- (**) Provet har processerats enligt standardförfarande, och består av en väl studerad organism
-
-
- -
-

Teknisk beskrivning av analysen: {{topsample.application_tag}}

-

- {% if topsample.application_tag == "MWRNXTR003" %} - Mikrobiell helgenomssekvensering av rutinprov, med krav på minst 3 miljoner läspar. - Nextera library preparation. - {% elif topsample.application_tag in ["MWGNXTR003", "MWMNXTR003", "MWLNXTR003"] %} - Mikrobiell helgenomssekvensering, med krav på minst 3 miljoner läspar. - Nextera library preparation. - {% elif topsample.application_tag == "MWXNXTR003" %} - Storskalig mikrobiell helgenomssekvensering av minst 176 prover, med krav på minst 3 miljoner läspar. - Nextera library preparation. - {% elif topsample.application_tag in ["VWGNXTR001", "VWLNXTR001"] %} - Virologisk helgenomssekvensering, med krav på minst 1 miljon läspar. - Nextera library preparation. - {% elif topsample.application_tag == "VWSMCTR001" %} - Virologisk helgenomssekvensering, med krav på minst 1 miljon läspar. - MiniCovid kit tagmentation preparation. - {% elif topsample.application_tag == "MWSMCTR003" %} - Mikrobiell helgenomssekvensering, med krav på minst 3 miljoner läspar. - MiniCovid kit tagmentation preparation. - {% endif %} -

- -

Analysbegränsningar för: {{topsample.application_tag}}

-

- Analysen kan enbart beställas av gruppen Klinisk Mikrobiologi. - Laboratoriet har inte haft ansvar för provtagningsstadiet och extraktion, - resultaten gäller för provet såsom det har mottagits.Typningen - begränsas av den information som vid analys återfinns i de publikt - tillgängliga databaserna pubMLST och resFinder. -

-

- Tillförlitligheten hos resultaten förutsätter dels att informationen - som bifogats från kund är korrekt. Dels att proverna uppnår de - fördefinierade tröskelvärdena; och dels att de organismerna som - analyseras har tidigare manuellt verifierats tidigare av personal på Clinical Genomics. -

-

- Clinical Genomics är ackrediterade för typning och resistensbestämmning för följande organismer: -

-
    - {% for org in verified_organisms %} -
  • {{org}}
  • - {% endfor %} -
- -

Avvikelser från metoden

-

- All kommunikation gällande ordern såsom tillägg, avvikelser eller - eventuella undantag i metoden från Clinical Genomics finns tillgängligt i - Freshdesk för dess ticket id. En stängd ticket kan närsomhelst - öppnas upp igen för frågor. -

- -

Förbättringsförslag

-

- Alla typer av förbättringsförslag mailas med fördel till microsalt-suggestions@scilifelab.se
- Din återkopplling uppskattas! -

- -

Signatur för godkännande av rapport

-

- Valtteri Wirta
- Head of unit, Clinical Genomics -

- -
-
-
- - - - {% for sample in samples %} +
-
-
- -
-

översikt

- - - - - - - - - - - - - - - {% if sample.organism is not none %} - - {% else %} - - {% endif %} - - - {% if sample.ST_status == 'None' %} - - {% elif sample.ST <= -4 %} - - {% else %} - - {% endif %} - - - {% if sample.threshold=='Failed' %} - - {% elif sample.threshold == '-' %} - - {% else %} - - {% endif %} - - {% if sample.organism in version and sample.organism is not none %} - - - - - {% endif %} - {% if sample.priority is not none %} - - - - - {% endif %} -
Ticket ID (CG Projekt ID){{sample.projects.Customer_ID_project}} ({{sample.projects.CG_ID_project}})
Prov ID (CG Prov ID){{sample.Customer_ID_sample}} ({{sample.CG_ID_sample}})
Analys datum{% if sample.date_analysis is not none %}{{sample.date_analysis.date()}}{% endif %}
Organism{{sample.organism.replace('_', ' ').capitalize()}}Okänd
Sekvenstyp{{sample.ST_status }}I{{sample.ST|int|abs}} (Novel){{sample.ST_status }}
TröskelvärdenUnderkända-Godkända
Referensversion{{version[sample.organism]}}
Prioritet{{sample.priority.capitalize()}}
-
-

Assembly

- {% if sample.genome_length > -1 %} - - {% if sample.reference_length and sample.reference_length > -1 %} - - {% else %} - - {% endif %} - - - - {% else %} - Assemblydata saknas - {% endif %} -
Genomstorlek enligt assembly{{'{0:,}'.format(sample.genome_length)|replace(","," ")}}
Referensens genomstorlek{{'{0:,}'.format(sample.reference_length)|replace(","," ")}}
Referensens genomstorlekN/A
GC halt{{sample.gc_percentage| round(2)}}%
N50 (minsta contiglängd för 50% av genomet){{'{0:,}'.format(sample.n50)|replace(","," ")}}
Nödvändiga contigs{{sample.contigs}}
-
- - {% if sample.genome_length > -1 %} -
-

MLST

-
Identitetströskel: {{threshold.mlst_id}}%, Längdtröskel: 100%, Novel misstankströskel (längd): {{threshold.mlst_span}}%, Novel misstankströskel: {{threshold.mlst_novel_id}}%
- {% if not sample.seq_types|length == 0 and 'saknas' not in sample.ST_status%} -
- - - - - - - - {% for seq_type in sample.seq_types if seq_type.st_predictor%} - - - - - - - - {% endfor %} -
#LociAllelIdentitet %Längd (HSP) %
{{loop.index}}{{seq_type.loci}}{{seq_type.allele}}{{seq_type.identity|round(2)}}%{{(seq_type.span*100)|round(2)}}%
- {% else %} - MLST data saknas - {% endif %} - -

-
-

Resistenser

-
Identitetströskel: {{threshold.motif_id}}%, Längdtröskel: {{threshold.motif_span}}%
- {% if not sample.resistances|selectattr('threshold', 'equalto', 'Passed')|list|length == 0 %} - - - - - - - - - - {% for seq_type in sample.resistances if seq_type.threshold == 'Passed' %} - - - - {% if seq_type.resistance is not none %} - {% if seq_type.resistance == "Beta-lactam" %} - - {% else %} - - {% endif %} - {% else %} - {% if seq_type.instance == "beta-lactam" %} - - {% else %} - - {% endif %} - {% endif %} - {% if seq_type.reference is not none %} - - {% else %} - - {% endif %} - - {% if seq_type.span == 999.0 %} - - {% else %} - - {% endif %} - - {% endfor %} -
#GenGruppReferensIdentitet %Längd (HSP) %
{{loop.index}}{{seq_type.gene}}Beta-lactamase{{seq_type.resistance}}Beta-lactamase{{seq_type.instance|title}}{{seq_type.reference}}Okänd{{seq_type.identity|round(2) }}%Odefinierad{{(seq_type.span*100)|round(2) }}%
- {% else %} - Resistensdata saknas - {% endif %} -
- {% endif %} -
-
-
-
- {% endfor %} -
Slut på rapport
-
-
- {% endblock %} +
+
+ + MicroSALT Logo + + {% if topsample.application_tag and 'MW' in topsample.application_tag %} + Swedac Logo + {% endif %} + +
+
+

Kontakt Clinical Genomics

+
+ Clinical Genomics +
+ Science for Life Laboratory +
+ Tomtebodavägen 23 +
+ 171 65 Solna +
+ T: (08) 524 81 500 +
+
+ microSALT-teamet +
+ E: + microsalt-suggestions@scilifelab.se + +
+
+
+

Kund

+
+

{{ topsample.projects.Customer_ID }}

+
+
+
+
+
+
+
+

+ Projektsammanställning +
+

+
+ + + + + + + + + + {% if reports|length > 1 %} + + {% else %} + + {% endif %} + + + + + + + + + +
+ Ticket ID (CG Projekt ID) + {{ topsample.projects.Customer_ID_project }} ({{ topsample.projects.CG_ID_project }})
+ Kund ID (*) + {{ topsample.projects.Customer_ID }}
Rapport versionVersion {{ reports[0].version }}, {{ reports[0].date.date() }} (Ersätter version {{ reports[1].version }}, {{ reports[1].date.date() }})Version {{ reports[0].version }}, {{ reports[0].date.date() }}
Ansvarig bioinformatiker{{ user }}
microSALT version{{ build }}
+
+
+
+
+
+

+ Resultatsammanställning +
+

+

+
+ + + + + + + + + {% for sample in samples %} + + + + {% if sample.organism is not none %} + + {% else %} + + {% endif %} + {% if sample.ST_status == 'None' or sample.ST == -1 %} + + {% elif sample.ST <= -4 %} + + {% else %} + + {% endif %} + {% if sample.threshold == 'Failed' %} + + {% elif sample.threshold == '-' %} + + {% else %} + + {% endif %} + + {% endfor %} +
Prov ID(*)CG Prov IDOrganism (*)Sekvenstyp (**)Tröskelvärden
{{ sample.Customer_ID_sample }}{{ sample.CG_ID_sample }}{{ sample.organism.replace('_', ' ').capitalize() }}Kontroll{{ sample.ST_status }}I{{ sample.ST|int|abs }} (Novel){{ sample.ST_status }}Underkända-Godkända
+
+ (*) Information om prover som kommer från kund +
+ (**) För förbättrad översikt rapporteras resultaten för kontrollprover enbart i detaljrapporten +
+
+
+
+
+

+ Provsammanställning +
+

+
+ + + + + + + + + + + + + + {% for sample in samples %} + + + + {% if sample.organism is not none %} + + {% else %} + + {% endif %} + {% if sample.date_arrival is not none and sample.date_arrival.date().strftime('%Y-%m-%d') != '1-01-01' %} + + {% else %}{% endif %} + {% if sample.date_libprep is not none and sample.date_libprep.date().strftime('%Y-%m-%d') != '1-01-01' %} + + {% else %}{% endif %} + {% if sample.method_libprep is not none and 'Not in LIMS' not in sample.method_libprep %} + + {% else %} + + {% endif %} + {% if sample.date_sequencing is not none and sample.date_sequencing.date().strftime('%Y-%m-%d') != '1-01-01' %} + + {% else %}{% endif %} + {% if sample.method_sequencing is not none and 'Not in LIMS' not in sample.method_sequencing %} + + {% else %} + + {% endif %} + {% if sample.priority is not none %} + + {% else %} + + {% endif %} + {% if sample.organism is not none %} + {% if sample.priority == 'standard' and sample.organism.replace('_', ' ').capitalize() in verified_organisms %} + + {% else %} + + {% endif %} + {% else %} + + {% endif %} + + {% endfor %} +
Prov ID (*)Applikationstag (*)Organism (*)AnkomstdatumDatum prepMetod prepDatum sekvenseringMetod sekvenseringPrioritet (*)Verifierad (**)
{{ sample.Customer_ID_sample }}{{ sample.application_tag }}{{ sample.organism.replace('_', ' ').capitalize() }}N/A{{ sample.date_arrival.date() }}Okänt{{ sample.date_libprep.date() }}Okänt{{ sample.method_libprep }}Okänt{{ sample.date_sequencing.date() }}Okänt{{ sample.method_sequencing }}Okänt{{ sample.priority.capitalize() }}-✔--
+
+ (*) Information om prover som kommer från kund +
+ (**) Provet har processerats enligt standardförfarande, och består av en väl studerad organism +
+
+
+
+
+

+ Teknisk beskrivning av analysen: {{ topsample.application_tag }} +
+

+

+ {% if topsample.application_tag == "MWRNXTR003" %} + Mikrobiell helgenomssekvensering av rutinprov, med krav på minst 3 miljoner läspar. + Nextera library preparation. + {% elif topsample.application_tag in ["MWGNXTR003", "MWMNXTR003", "MWLNXTR003"] %} + Mikrobiell helgenomssekvensering, med krav på minst 3 miljoner läspar. + Nextera library preparation. + {% elif topsample.application_tag == "MWXNXTR003" %} + Storskalig mikrobiell helgenomssekvensering av minst 176 prover, med krav på minst 3 miljoner läspar. + Nextera library preparation. + {% elif topsample.application_tag in ["VWGNXTR001", "VWLNXTR001"] %} + Virologisk helgenomssekvensering, med krav på minst 1 miljon läspar. + Nextera library preparation. + {% elif topsample.application_tag == "VWSMCTR001" %} + Virologisk helgenomssekvensering, med krav på minst 1 miljon läspar. + MiniCovid kit tagmentation preparation. + {% elif topsample.application_tag == "MWSMCTR003" %} + Mikrobiell helgenomssekvensering, med krav på minst 3 miljoner läspar. + MiniCovid kit tagmentation preparation. + {% endif %} +
+

+

+ Analysbegränsningar för: {{ topsample.application_tag }} +
+

+

+ Analysen kan enbart beställas av gruppen Klinisk Mikrobiologi. + Laboratoriet har inte haft ansvar för provtagningsstadiet och extraktion, + resultaten gäller för provet såsom det har mottagits.Typningen + begränsas av den information som vid analys återfinns i de publikt + tillgängliga databaserna pubMLST och resFinder. +

+

+ Tillförlitligheten hos resultaten förutsätter dels att informationen + som bifogats från kund är korrekt. Dels att proverna uppnår de + fördefinierade tröskelvärdena; och dels att de organismerna som + analyseras har tidigare manuellt verifierats tidigare av personal på Clinical Genomics. +

+

+ Clinical Genomics är ackrediterade för typning och resistensbestämmning för följande organismer: +

+
    + {% for org in verified_organisms %} +
  • {{ org }}
  • + {% endfor %} +
+

+ Avvikelser från metoden +
+

+

+ All kommunikation gällande ordern såsom tillägg, avvikelser eller + eventuella undantag i metoden från Clinical Genomics finns tillgängligt i + Freshdesk för dess ticket id. En stängd ticket kan närsomhelst + öppnas upp igen för frågor. +

+

+ Förbättringsförslag +
+

+

+ Alla typer av förbättringsförslag mailas med fördel till microsalt-suggestions@scilifelab.se +
+ Din återkopplling uppskattas! +

+

+ Signatur för godkännande av rapport +
+

+

+ Valtteri Wirta +
+ Head of unit, Clinical Genomics +

+
+
+ + + {% for sample in samples %} +
+
+
+ +
+ +

översikt

+ + + + + + + + + + + + + + + {% if sample.organism is not none %} + + {% else %} + + {% endif %} + + + + {% if sample.ST_status == 'None' %} + + {% elif sample.ST <= -4 %} + + {% else %} + + {% endif %} + + + + {% if sample.threshold=='Failed' %} + + {% elif sample.threshold == '-' %} + + {% else %} + + {% endif %} + + {% if sample.organism in version and sample.organism is not none %} + + + + + {% endif %} + {% if sample.priority is not none %} + + + + + {% endif %} +
Ticket ID (CG Projekt ID){{ sample.projects.Customer_ID_project }} ({{ sample.projects.CG_ID_project }})
Prov ID (CG Prov ID){{ sample.Customer_ID_sample }} ({{ sample.CG_ID_sample }})
Analys datum{% if sample.date_analysis is not none %}{{ sample.date_analysis.date() }}{% endif %}
Organism{{ sample.organism.replace('_', ' ').capitalize() }}Okänd
Sekvenstyp{{ sample.ST_status }}I{{ sample.ST|int|abs }} (Novel){{ sample.ST_status }}
TröskelvärdenUnderkända-Godkända
Referensversion{{ version[sample.organism] }}
Prioritet{{ sample.priority.capitalize() }}
+
+
+ +

Assembly

+ {% if sample.genome_length > -1 %} + + + + + {% if sample.reference_length and sample.reference_length > -1 %} + + + + + {% else %} + + + + + {% endif %} + + + + + + + + + + + + + {% else %} + Assemblydata saknas + {% endif %} +
Genomstorlek enligt assembly{{ '{0:,}'.format(sample.genome_length) |replace(","," ")}}
Referensens genomstorlek{{ '{0:,}'.format(sample.reference_length) |replace(","," ")}}
Referensens genomstorlekN/A
GC halt{{ sample.gc_percentage| round(2) }}%
N50 (minsta contiglängd för 50% av genomet){{ '{0:,}'.format(sample.n50) |replace(","," ")}}
Nödvändiga contigs{{ sample.contigs }}
+
+
+ {% if sample.genome_length > -1 %} +
+
+

MLST

+
Identitetströskel: {{ threshold.mlst_id }}%, Längdtröskel: 100%, Novel misstankströskel (längd): {{ threshold.mlst_span }}%, Novel misstankströskel: {{ threshold.mlst_novel_id }}%
+ {% if not sample.seq_types|length == 0 and 'saknas' not in sample.ST_status %} +
+ + + + + + + + + {% for seq_type in sample.seq_types if seq_type.st_predictor %} + + + + + + + + {% endfor %} +
#LociAllelIdentitet %Längd (HSP) %
{{ loop.index }}{{ seq_type.loci }}{{ seq_type.allele }}{{ seq_type.identity|round(2) }}%{{ (seq_type.span*100)|round(2) }}%
+ {% else %} + MLST data saknas + {% endif %} +
+
+
+

Resistenser

+
Identitetströskel: {{ threshold.motif_id }}%, Längdtröskel: {{ threshold.motif_span }}%
+ {% if not sample.resistances|selectattr('threshold', 'equalto', 'Passed')|list|length == 0 %} + + + + + + + + + + {% for seq_type in sample.resistances if seq_type.threshold == 'Passed' %} + + + + {% if seq_type.resistance is not none %} + {% if seq_type.resistance == "Beta-lactam" %} + + {% else %} + + {% endif %} + {% else %} + {% if seq_type.instance == "beta-lactam" %} + + {% else %} + + {% endif %} + {% endif %} + {% if seq_type.reference is not none %} + + {% else %} + + {% endif %} + + {% if seq_type.span == 999.0 %} + + {% else %} + + {% endif %} + + {% endfor %} +
#GenGruppReferensIdentitet %Längd (HSP) %
{{ loop.index }}{{ seq_type.gene }}Beta-lactamase{{ seq_type.resistance }}Beta-lactamase{{ seq_type.instance|title }}{{ seq_type.reference }}Okänd{{ seq_type.identity|round(2) }}%Odefinierad{{ (seq_type.span*100)|round(2) }}%
+ {% else %} + Resistensdata saknas + {% endif %} +
+ {% endif %} +
+
+
+
+ {% endfor %} +
Slut på rapport
+
+
+{% endblock %}