def getLaTeXReport(self):
     table = LaTeX.ltxTable(2)
     table.addRow(["Total bp: ","{:,}".format(self.totalBp)])
     table.addRow(["Peak: ",str(self.peak)])
     table.addRow(["Mean base coverage: ", "{:.2f}".format(self.coverage)])
     table.addRow(["",""])
     table.addRow(["Unique good kmers: ","{:,}".format(self.unique_gkmers)])
     table.addRow(["BGI genome size estimation: ", "{:,}".format(int(round(self.bgi)))])
     table.addRow(["GSE kmers/peak: ","{:,}".format(self.kmersPerPeak)])
     
     tex = table.getText()
     
     img = LaTeX.ltxImage(self.genSizeHistoPlot)
     tex = tex + img.getText()
     return tex
 def getLaTeXReport(self):
     txt = ""
     table = LaTeX.ltxTable(len(self.fastqInfo.values()[0]) + 1)
     table.addRow(
         [
             "Fastq file",
             "Total bases",
             "number of reads",
             "AVG read length",
             "Percentage high quality bases ($qv > 30$)",
         ]
     )
     for [index, fastqEntry] in self.fastqInfo.iteritems():
         table.addRow([index] + fastqEntry)
     txt = txt + table.getText()
     return txt + "\\\\"
 def getLaTeXReport(self):
     """
     Convert all previously calculated statistics into LaTeX with this method.
     """
     txt = "\\subsection{Statistics}\n"
     table = LaTeX.ltxTable(2)
     table.addRow(["Total sequences: ",str(self.totalSeqs)])
     table.addRow(["Total length: ","{:,}".format(self.totalLen)])
     table.addRow(["GC perc: ","{:.2f}".format(self.gcPerc) + "\%"])
     table.addRow(["Longest sequence: ","{:,}".format(self.longestSeq)])
     table.addRow(["N50 index: ","{:,}".format(self.n50Index)])
     table.addRow(["N50: ","{:,}".format(self.n50)])
     table.addRow(["",""])
     table.addRow(["N90 index: ","{:,}".format(self.n90Index)])
     table.addRow(["N90: ","{:,}".format(self.n90)])
     if hasattr(self, "cegmaScore"):
         table.addRow(["",""])
         table.addRow(["Cegma complete: ",self.cegmaScore[0] + "\%"])
         table.addRow(["Cegma partial: ",self.cegmaScore[1] + "\%"])
     for name, value in self.otherCegmaScores.iteritems():
         table.addRow(["",""])
         print value[0]
         table.addRow([name + " complete: ",value[0] + "\%"])
         table.addRow([name + " partial: ",value[1] + "\%"])
         
     if hasattr(self, "rawDnaMappingStats"):
         table.addRow(["",""])
         table.addRow(["DNA reads: ","{:,}".format(int(self.rawDnaMappingStats["total"]))])
         table.addRow(["Mapped: ",self.rawDnaMappingStats["mapped"] + "\%"])
         if "propPair" in self.rawDnaMappingStats:
             table.addRow(["Properly paired",self.rawDnaMappingStats["propPair"] + "\%"])
         table.addRow(["Error rate: ","{:.2f}".format(self.errorRate) + " SNPs per 10kb"])
         table.addRow(["SNP density: ","{:.2f}".format(self.snpDensity) + " SNPs per 10kb"])
     if hasattr(self, "rnaMappingStats"):
         table.addRow(["",""])
         table.addRow(["RNA reads: ","{:,}".format(int(self.rnaMappingStats["total"]))])
         table.addRow(["Mapped: ",self.rnaMappingStats["mapped"] + "\%"])
         if "propPair" in self.rnaMappingStats:
             table.addRow(["Properly paired: ",self.rnaMappingStats["propPair"] + "\%"])
         
     txt = txt + table.getText()
     txt = txt + "\\begin{figure}[h]\n"
     txt = txt + "\\includegraphics[scale=0.7]{" + self.a50Plot + "}\n"
     txt = txt + "\\end{figure}\n"
     return txt
    def getLaTeXReport(self):
        txt = "\\section{Fastqc of " +self.status.replace("_"," ")+"}\n"
        table = False
        imgs = 0
        with open(self.outputFile) as reportReader:
            for line in reportReader:
                if "</h2>" in line and "Summary" not in line:
                    txt = txt + "\\subsection*{"+re.findall(r"]\">(.*?)</h2>",line)[0]+"}\n"
#                     if "Basic Statistics" in line:
#                         smallReport = FastqSmallReport.FastqSmallReport()
#                         smallReport.createSmallReport([self.forward], None)
#                         txt = txt + smallReport.getLaTeXReport()
#                         txt = txt + "\\\\"
                elif "<table>" in line:
                    xml = "<table>"
                    table = True
                elif "</table>" in line:
                    xml = xml + "</table>"
                    table = False
                    domTable = minidom.parseString(xml)
                    ltxTable = LaTeX.ltxTable(len(domTable.firstChild.firstChild.childNodes))
                    noOfRows = 0
                    for row in domTable.firstChild.childNodes:
                        cols = []
                        noOfRows = noOfRows + 1
                        if noOfRows > 15:
                            continue
                        for col in row.childNodes:
                            cols.append(col.firstChild.nodeValue.replace("%"," percent"))
                        if "Filename" in cols[0]:
                                continue
                        ltxTable.addRow(cols)
                    txt = txt + ltxTable.getText()
                    if noOfRows > 15:
                        txt = txt + "\\\\Total length of this table is "+ str(noOfRows) + ". The table is cut after 15 rows..."
                elif table == True:
                    xml = xml + line.strip()
                elif "<img class=\"indented\"" in line:
                    imgs = imgs +1
                    img = re.findall("src=\"(.*)\" alt=",line)[0]
                    ltxImg = LaTeX.ltxImage(os.path.dirname(self.outputFile) + "/" + img)
                    txt = txt + ltxImg.getText()
                    if imgs % 2 == 0:
                        txt = txt + "\\clearpage\n"
        return txt