コード例 #1
0
    def __call__(self, track, slice=None):
        edir = EXPORTDIR
        geneset = track
        method = self.method

        rst_text = []

        for level in self.levels:
            for fn in (
                    "%(edir)s/%(method)s/%(geneset)s_%(method)s_%(level)s_heatmap.png",
                    "%(edir)s/%(method)s/%(geneset)s_%(method)s_%(level)s_scvplot.png",
                    "%(edir)s/%(method)s/%(geneset)s_%(method)s_%(level)s_pvalue_vs_length.png"
            ):
                f = fn % locals()
                if not os.path.exists(f):
                    continue
                rst_text.append(".. figure:: %(f)s" % locals())

        if rst_text:
            rst_text = '''
%(geneset)s
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

''' % locals() + "\n\n".join(rst_text)
        else:
            rst_text = ""

        return odict((("text", rst_text), ))
コード例 #2
0
ファイル: Expression.py プロジェクト: tw7649116/cgat-flow
 def __call__(self, track, slice=None):
     c = "%s_FPKM" % slice
     table = track + "_levels"
     if c not in self.getColumns(table):
         return None
     statement = '''SELECT %(slice)s_fpkm FROM %(table)s WHERE %(slice)s_fpkm > %(min_fpkm)f'''
     data = self.getValues(statement)
     return odict((("fpkm", data), ))
コード例 #3
0
ファイル: Genemodels.py プロジェクト: microbialman/cgat-flow
 def __call__(self, track, slice=None):
     vals = self.getValues("""SELECT avg(FPKM)
                                   FROM %(track)s_cuffcompare_tracking AS t,
                                        %(track)s_cuffcompare_transcripts AS a
                                   WHERE code = '%(slice)s' AND 
                                   a.transfrag_id = t.transfrag_id
                                   GROUP BY a.transfrag_id""" % locals())
     return odict((("fpkm", vals), ))
コード例 #4
0
ファイル: Expression.py プロジェクト: tw7649116/cgat-flow
 def __call__(self, track, slice=None):
     c = "%s_FPKM" % slice
     table = track + "_levels"
     if c not in self.getColumns(table):
         return None
     # divide by two to get relative error
     statement = '''SELECT (%(slice)s_conf_hi - %(slice)s_conf_lo ) / %(slice)s_fpkm / 2
                    FROM %(table)s WHERE %(slice)s_fpkm > %(min_fpkm)f'''
     data = self.getValues(statement)
     return odict((("relative_error", data), ))
コード例 #5
0
ファイル: Expression.py プロジェクト: tw7649116/cgat-flow
 def __call__(self, track, slice=None):
     c = "%s_FPKM" % slice
     table = track + "_levels"
     if c not in self.getColumns(table):
         return None
     max_fpkm = float(
         self.getValue('''SELECT max(%(slice)s_fpkm) FROM %(table)s'''))
     statement = '''SELECT CAST( %(slice)s_fpkm AS FLOAT) / %(max_fpkm)f FROM %(table)s WHERE %(slice)s_fpkm > %(min_fpkm)f'''
     data = self.getValues(statement)
     return odict((("percent of max(fpkm)", data), ))
コード例 #6
0
    def __call__(self, track, slice=None):

        annotations = self.mAnnotations
        table = self.mTable
        column, where = self.mColumn, self.mWhere
        if not slice or slice == "all":
            data = self.getValues(
                """SELECT %(column)s FROM %(track)s_%(table)s AS d WHERE %(where)s""" % locals() )
        else:
            data = self.getValues( """SELECT %(column)s FROM %(track)s_%(table)s AS d, %(track)s_%(annotations)s as a 
                                      WHERE d.gene_id = a.gene_id AND a.is_%(slice)s AND %(where)s""" % locals() )

        hist, bins = numpy.histogram(
            data, bins=numpy.arange(0, max(data) + 1, 1))
        return odict(list(zip(list(map(str, bins[:-1])), hist)))
コード例 #7
0
    def __call__(self, track, slice=None):

        pair1, pair2 = track

        a = self.get(
            '''SELECT test_id, treatment_name, control_name FROM %(slice)s_%(pair1)s_gene_diff WHERE significant'''
        )
        b = self.get(
            '''SELECT test_id, treatment_name, control_name FROM %(slice)s_%(pair2)s_gene_diff WHERE significant'''
        )

        a = set(map(str, a))
        b = set(map(str, b))

        return odict(((pair1, len(a)), (pair2, len(b)),
                      ("shared", len(a.intersection(b)))))
コード例 #8
0
    def __call__(self, track, slice=None):

        data = self.getFirstRow( """SELECT round(sum(length*pGC)/sum(length),3) as mean_GC,
                                    round(sum(length*CpG_ObsExp)/sum(length),3) as mean_CpG_ObsExp,
                                    round(sum(length*pCpG)/sum(length),3) as mean_CpG
                                    FROM annotations.genome
                                    WHERE id <> 'total'
                                    AND id not like 'chrX%%'
                                    AND id not like 'chrY%%'
                                    AND id not like 'chrW%%'
                                    AND id not like 'chrZ%%'
                                    AND id not like 'chrM%%'
                                    AND id not like '%%random%%' """ )
        mColumns = ["GC content", "CpG Obs/Exp", "CpG density"]

        return odict(list(zip(mColumns, data)))
コード例 #9
0
    def __call__(self, track, slice=None):

        where = self.mWhere
        select = self.mSelect
        table = self.mTable

        if slice == "all" or slice is None:
            data = self.getFirstRow(
                "%(select)s FROM %(track)s_%(table)s WHERE %(where)s" %
                locals())
        else:
            data = self.getFirstRow(
                "%(select)s FROM %(track)s_%(table)s WHERE %(where)s AND is_%slices"
                % locals())

        return odict(list(zip(self.mColumns, data)))
コード例 #10
0
    def __call__(self, track, slice=None):
        data = self.getValues(
            """SELECT count(distinct gene_id) as intervals FROM (
                               SELECT gene_id,
                               CASE WHEN  tss_gene_extended_pover1 > 0  THEN 'TSS'
                               WHEN upstream_flank_pover1 >0 THEN 'Upstream'
                               WHEN genes_pover1 > 0 THEN 'Gene'
                               WHEN downstream_flank_pover1 >0 THEN 'Downstream'
                               ELSE 'Intergenic'
                               END AS feature_class
                               FROM %(track)s_merged_ensembl_gene_overlap)
                               group by feature_class
                               order by feature_class asc""" % locals())

        result = odict(
            list(
                zip(("Downstream", "Gene", "Intergenic", "TSS", "Upstream"),
                    data)))
        return result
コード例 #11
0
ファイル: cpgReport.py プロジェクト: tw7649116/cgat-flow
    def __call__(self, track, slice=None):
        table = self.mTable
        where = self.mWhere
        data = self.getValues(
            """ SELECT count(distinct gene_id) as intervals FROM (
                                   SELECT gene_id,
                                   CASE WHEN  %(where)s > 0  THEN 'TSS'
                                   WHEN genes_pover1 > 0 THEN 'Gene'
                                   WHEN upstream_flank_pover1 >0 THEN 'Upstream'
                                   WHEN downstream_flank_pover1 >0 THEN 'Downstream'
                                   ELSE 'Intergenic'
                                   END AS feature_class
                                   FROM %(track)s%(table)s)
                                   group by feature_class
                                   order by feature_class asc""" % locals())

        result = odict(
            list(
                zip(("Downstream", "Gene", "Intergenic", "TSS", "Upstream"),
                    data)))
        return result
コード例 #12
0
    def __call__(self, track, slice=None):

        edir, method = EXPORTDIR, self.method
        rst_text = []

        geneset = track
        for level in self.levels:
            for x, y in itertools.combinations(EXPERIMENTS, 2):
                filename = "%(edir)s/%(method)s/%(geneset)s_%(method)s_%(level)s_%(x)s_vs_%(y)s_significance.png" % locals(
                )
                if not os.path.exists(filename):
                    continue

                rst_text.append('''
%(geneset)s %(level)s %(x)s vs %(y)s 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

.. figure:: %(filename)s

''' % locals())

        return odict((("text", "\n".join(rst_text)), ))
コード例 #13
0
    def __call__(self, track, slice=None):
        edir = EXPORTDIR
        level = "gene"
        geneset = slice
        method = self.method

        filename = "%(edir)s/%(method)s/%(geneset)s_%(method)s_%(level)s_fit_%(track)s.png" % locals(
        )

        # fitting information will not exist if there are no replicates
        if not os.path.exists(filename):
            return None

        rst_text = '''
%(level)s %(track)s %(geneset)s
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

.. figure:: %(edir)s/%(method)s/%(geneset)s_%(method)s_%(level)s_fit_%(track)s.png

.. figure:: %(edir)s/%(method)s/%(geneset)s_%(method)s_%(level)s_residuals_%(track)s.png

''' % locals()

        return odict((("text", rst_text), ))
コード例 #14
0
 def __call__(self, track, slice=None):
     statement = '''SELECT SUM(CASE WHEN nover>0 THEN 1 ELSE 0 END) as with, SUM(CASE WHEN nover=0 THEN 1 ELSE 0 END) AS without
                    FROM %(track)s_merged_repeats '''
     return odict(
         list(zip(("with", "without"), self.getFirstRow(statement))))
コード例 #15
0
ファイル: Genemodels.py プロジェクト: microbialman/cgat-flow
 def __call__(self, track, slice=None):
     return odict(
         (('mean',
           self.getValues('''SELECT mean FROM %(track)s_mappability''')), ))
コード例 #16
0
 def __call__(self, track, slice=None):
     statement = self.getStatement(track, slice)
     if not statement:
         return []
     return odict(
         list(zip(("with", "without"), self.getFirstRow(statement))))