diff --git a/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/scripts/pdf_report.py b/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/scripts/pdf_report.py index 5206e98cf6ceb6896e1d2668f30b34e02b812036..9cdcaf95194ab29449e11a5ec24ade29417345c4 100755 --- a/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/scripts/pdf_report.py +++ b/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/scripts/pdf_report.py @@ -422,9 +422,9 @@ class GentrapLib(object): # insert size metrics files self.inserts_metrics_files = summary.get("bammetrics", {}).get("files", {}).get("insert_size_metrics", {}) # rna metrics files and stats + self.rna_metrics_files = summary.get("gentrap", {}).get("files", {}).get("rna_metrics", {}) _rmetrics = summary.get("gentrap", {}).get("stats", {}).get("rna_metrics", {}) if _rmetrics: - self.rna_metrics_files = summary.get("gentrap", {}).get("files", {}).get("rna_metrics", {}) self.rna_metrics = {k: v for k, v in _rmetrics.items() } pf_bases = float(_rmetrics["pf_bases"]) exonic_bases = int(_rmetrics.get("coding_bases", 0)) + int(_rmetrics.get("utr_bases", 0)) @@ -461,10 +461,15 @@ class GentrapSample(object): self.libs = \ {l: GentrapLib(self.run, self, l, summary["libraries"][l]) \ for l in self.lib_names} + self.is_paired_end = summary.get("gentrap", {}).get("stats", {}).get("pipeline", {})["all_paired"] + # mapping metrics settings + self.aln_metrics = summary.get("bammetrics", {}).get("stats", {}).get("alignment_metrics", {}) + # insert size metrics files + self.inserts_metrics_files = summary.get("bammetrics", {}).get("files", {}).get("insert_size_metrics", {}) # rna metrics files and stats + self.rna_metrics_files = summary.get("gentrap", {}).get("files", {}).get("rna_metrics", {}) _rmetrics = summary.get("gentrap", {}).get("stats", {}).get("rna_metrics", {}) if _rmetrics: - self.rna_metrics_files = summary.get("gentrap", {}).get("files", {}).get("rna_metrics", {}) self.rna_metrics = {k: v for k, v in _rmetrics.items() } pf_bases = float(_rmetrics["pf_bases"]) exonic_bases = int(_rmetrics.get("coding_bases", 0)) + int(_rmetrics.get("utr_bases", 0)) diff --git a/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/lib_mapping.tex b/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/lib_mapping.tex index 0d862bc9b649157cef7fe5640fbc1948681968fe..50fd3606d01c5a6f5ca0d451725def487e9307ef 100644 --- a/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/lib_mapping.tex +++ b/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/lib_mapping.tex @@ -77,7 +77,6 @@ =)) ((* endif *)) -((* if lib.sample.libs|length > 1 *)) \subsubsection{RNA-specific metrics} \IfFileExists{((( lib.rna_metrics_files.output_chart.path )))} @@ -111,5 +110,3 @@ \hline \end{tabular} \end{center} - -((* endif *)) diff --git a/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/sample.tex b/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/sample.tex index 39709550273ada4a8b0fd73d69b5e4982c883f57..b5f31e50efa563c748fa03ada85b61a6139510fe 100644 --- a/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/sample.tex +++ b/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/sample.tex @@ -1,7 +1,9 @@ \part{Sample "((( sample.name )))" Results} \label{sample:(((sample.name)))} +((* if sample.libs|length > 1 *)) ((* include "sample_mapping.tex" *)) +((* endif *)) ((* for lib in sample.libs.values() *)) ((* include "lib.tex" *)) diff --git a/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/sample_mapping.tex b/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/sample_mapping.tex index 5e3ab9da745896723197f78ca8ba0d9d428f3667..4ad4547277343f82d7e0412603c6311110ddb4b5 100644 --- a/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/sample_mapping.tex +++ b/public/gentrap/src/main/resources/nl/lumc/sasc/biopet/pipelines/gentrap/templates/pdf/sample_mapping.tex @@ -5,6 +5,78 @@ \indent +% number + percentage of reads mapped to genome +% number + percentage of properly paired reads +\begin{center} + \captionof{table}{Mapping Overview} + \label{tab:bamstat-((( sample.name )))} + \setlength{\tabcolsep}{11pt} + ((* if sample.is_paired_end *)) + \begin{tabular}{ l r r r } + \hline + \multirow{2}{*}{Parameter} & \multicolumn{1}{c}{All Pairs} & \multicolumn{1}{c}{First in Pairs} & \multicolumn{1}{c}{Second in Pairs} \\ + & Value & Value & Value \\ + \hline \hline + Total reads & ((( sample.aln_metrics.PAIR.total_reads|nice_int ))) & ((( sample.aln_metrics.FIRST_OF_PAIR.total_reads|nice_int ))) & ((( sample.aln_metrics.SECOND_OF_PAIR.total_reads|nice_int ))) \\ + Mean read length & ((( sample.aln_metrics.PAIR.mean_read_length|nice_flt ))) & ((( sample.aln_metrics.FIRST_OF_PAIR.mean_read_length|nice_flt ))) & ((( sample.aln_metrics.SECOND_OF_PAIR.mean_read_length|nice_flt ))) \\ + Strand balance & ((( sample.aln_metrics.PAIR.strand_balance|nice_flt ))) & ((( sample.aln_metrics.FIRST_OF_PAIR.strand_balance|nice_flt ))) & ((( sample.aln_metrics.SECOND_OF_PAIR.strand_balance|nice_flt ))) \\ + \% Mapped to reference & ((( sample.aln_metrics.PAIR.pct_pf_reads_aligned|float2nice_pct )))\% & ((( sample.aln_metrics.FIRST_OF_PAIR.pct_pf_reads_aligned|float2nice_pct )))\% & ((( sample.aln_metrics.SECOND_OF_PAIR.pct_pf_reads_aligned|float2nice_pct )))\% \\ + \% Mapped to reference (MAPQ >= 20) & ((( sample.aln_metrics.PAIR.pct_pf_reads_aligned|float2nice_pct )))\% & ((( sample.aln_metrics.FIRST_OF_PAIR.pct_pf_reads_aligned|float2nice_pct )))\% & ((( sample.aln_metrics.SECOND_OF_PAIR.pct_pf_reads_aligned|float2nice_pct )))\% \\ + Mismatch rate & ((( sample.aln_metrics.PAIR.pf_mismatch_rate|float2nice_pct )))\% & ((( sample.aln_metrics.FIRST_OF_PAIR.pf_mismatch_rate|float2nice_pct )))\% & ((( sample.aln_metrics.SECOND_OF_PAIR.pf_mismatch_rate|float2nice_pct )))\% \\ + Indel rate & ((( sample.aln_metrics.PAIR.pf_indel_rate|float2nice_pct )))\% & ((( sample.aln_metrics.FIRST_OF_PAIR.pf_indel_rate|float2nice_pct )))\% & ((( sample.aln_metrics.SECOND_OF_PAIR.pf_indel_rate|float2nice_pct )))\% \\ + Chimeras & ((( sample.aln_metrics.PAIR.pct_chimeras|float2nice_pct )))\% & ((( sample.aln_metrics.FIRST_OF_PAIR.pct_chimeras|float2nice_pct )))\% & ((( sample.aln_metrics.SECOND_OF_PAIR.pct_chimeras|float2nice_pct )))\% \\ + \hline + ((* else *)) + \begin{tabular}{ l r } + \hline + \multirow{1}{*}{Parameter} & \multicolumn{1}{c}{Value} \\ + \hline \hline + Total reads & ((( sample.aln_metrics.UNPAIRED.total_reads|nice_int ))) \\ + Mean read length & ((( sample.aln_metrics.UNPAIRED.mean_read_length|nice_flt ))) \\ + Strand balance & ((( sample.aln_metrics.UNPAIRED.strand_balance|nice_flt ))) \\ + \% Mapped to reference & ((( sample.aln_metrics.UNPAIRED.pct_pf_reads_aligned|float2nice_pct )))\% \\ + \% Mapped to reference (MAPQ >= 20) & ((( sample.aln_metrics.UNPAIRED.pct_pf_reads_aligned|float2nice_pct )))\% \\ + Mismatch rate & ((( sample.aln_metrics.UNPAIRED.pf_mismatch_rate|float2nice_pct )))\% \\ + Indel rate & ((( sample.aln_metrics.UNPAIRED.pf_indel_rate|float2nice_pct )))\% \\ + \hline + ((* endif *)) + \end{tabular} +\end{center} + +((* if sample.is_paired_end *)) +% inferred insert size distribution +\subsubsection{Insert size distribution} + +\IfFileExists{((( sample.inserts_metrics_files.output_histogram.path )))} +{ + \begin{figure}[h!] + \centering + \includegraphics[width=0.7\textwidth]{((( sample.inserts_metrics_files.output_histogram.path )))} + \caption{Distribution of insert size length of paired-end reads mapped to opposite strands.} + \end{figure} +} +((= TODO: strand-specific stats +%{ +% \IfFileExists{((( vars['OUT_DIR'] )))/((( vars['SAMPLE'] ))).f.insertsizes.png} +% { +% \begin{figure}[h!] +% \centering +% \includegraphics[width=0.7\textwidth]{((( vars['OUT_DIR'] )))/((( vars['SAMPLE'] ))).f.insertsizes.png} +% \caption{Distribution of insert size length of paired-end reads whose first read maps to the minus strand.} +% \end{figure} +% }{} +% \IfFileExists{((( vars['OUT_DIR'] )))/((( vars['SAMPLE'] ))).r.insertsizes.png} +% { +% \begin{figure}[h!] +% \centering +% \includegraphics[width=0.7\textwidth]{((( vars['OUT_DIR'] )))/((( vars['SAMPLE'] ))).r.insertsizes.png} +% \caption{Distribution of insert size length of paired-end reads whose first read maps to the plus strand.} +% \end{figure} +% }{} +%} +=)) +((* endif *)) + \subsection{RNA-specific metrics}