From d6995549b3a6233ca8d1a27d2b5adab2b9556206 Mon Sep 17 00:00:00 2001 From: Narges Rezaie Date: Thu, 21 Mar 2024 11:22:42 -0700 Subject: [PATCH] update docs --- docs/doctrees/api.doctree | Bin 581178 -> 582934 bytes docs/doctrees/environment.pickle | Bin 274090 -> 276887 bytes docs/html/_modules/PyWGCNA/wgcna.html | 107 +++++++++++++++++++------- docs/html/api.html | 7 +- docs/html/searchindex.js | 2 +- 5 files changed, 87 insertions(+), 29 deletions(-) diff --git a/docs/doctrees/api.doctree b/docs/doctrees/api.doctree index fd2bcaa5e15d3ca3886e14a731974ea8351c61fb..6a68467f771560d06376ce82c0cd8bef5fe392f3 100644 GIT binary patch delta 50891 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'e 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

_Tv$fA|s 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 diff --git a/docs/doctrees/environment.pickle b/docs/doctrees/environment.pickle index e4d7214e12d521c911c99205ad030a0bcd79ce26..a40a0f64c642968d262f053f29251811fac59bd3 100644 GIT binary patch delta 5914 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 TZX8?PuhlW_XqnS4gP8Ci3Msg# delta 4182 zcmcIndsNg_9_Kgrhcm--5E$MsLBJ6(F;pxRDFp^DPhV>)PB7YxIE?eiwsHjp5dnF8 zCvRJpYn`^Xhtf_P`-oQvf`@IXv*p=Nu4S9Yqf%OXHape2-~0QGpr_9MRdD#;`~BX} z_j|vudw&=9mFDGhnx5X2NU_@FFuK~*4yU8eW-`>;U2WbbOO5dn7ra{$0w1R+{ryZ9 zyTedhYjBwAEbebo;z*^QczNZo{Ku}1pC+75Gq0ZJ<~+O9TrkZgdT%us&2U-NTsXs3 zb(`~NxYuf6$NYQL+-`>}wXGP+(^kNrvjZS&NjCg->1*<-VPgk3WxP9`8?WIeBRq zEK28o^ZfnP*5!=wTKqhgd0l@7%kX~wCP5FG1yj(gPlU2kEo>+(hr*&nm?*pgpW!&T zE)xE&Un>+seBm6}xhW1>i#9@BVIruCA1&bBW&VN_-mzx2h=f!ud@}aH0Gyp}>8t;td6|K~S@H3dT1th7ZfK(cPVJd`ptMe0{kf6uF<@Fv z#wP@!uzS;axIvSEY#xORB^C@I3`(|C!k|@tc(QjG+(@fyL1P4`4;DH*!rCy=-t11uqQf(=WVk~QpbU3 z3i(>X#tRt6zomV0{77ck9!U-mG7M zbU_1`I~(*!2OCxh`tE%zXGz6-5H`1^fMs70uGH_#MLM*Pqx|;sIo*#~Xy0ETgB=n$ zw{cdG(P4L)vy@(5SUmL4yc>43r$BCF7{WI+mLq++k#Bjeaha^TAA!c4HE}+@Wz4Jh&z42n^GWUN~50k9Lz225Hi%l{Sgk`i*)%R z?sns$e54bHmLv6T<>pITIp%OHU;TUQYNSzZ9KWG0M>c;JPBx~n%B@1sZT3HE<4z^C zbGohlJ{kF`6u}4WJc21{Df4h9&W(q&ksdo-g7ovl8<6IAP+8>$6nA98M2A*pzs0?x zpzv`mM05rsZeC{v(#Jb_BTPy(sf%Y|R~K)AV_n&@ng-&#L*UD}t(Jt+)iN!NS4l$YmYEjr)^MTI z>1>;2+G*Hsw7X#9NJ``hY}}cn%eezCI~SaA`?Dt^q=VO{%{N+%s~)jtIIT4XhmmuI zmTh$|Gqz1n97gj=k4{nJ<@SI5@O+g{w_~@#w%yJWmMFqOIQI_A%n?Gmzt_U}Ki9ZV zo==?xzqq(vmJogH`NVsE65)f(`F=GNr#DxDmZ(2^$%5;u#_aiweS5ARt-K^^|0lt4#KCZ-Az*t z5!jc<+__)9sDR!7*@!M3pPCQKuPGY{Bq})fb&@cTb?prpjW?Fxf2zOY^W! zz&}Oru#V7BMsrDi?{_*P3amJTRP-k05v!VYURH>`af?W_z`QBZvC>N7%QO{aIjg6n zhQ%)=>fY;jlgEVKIl&1Qxbx)soVn zK;LJ&K9a0HE6^K!Q41$6Va(b`W~sjws7}Ex!Y4a}{pDTK6?7lUm}ZQG%O;u>bchZ1 zk#KQXK|f?4;Y@u_L9cSnXt3DALNm5GE!7?`w-fph!Idyv3HOn0exaaGvZ8*HAU;Lt zo6OozV%2{nbX>wQx>X2cC;Ev}IYH=kl(Bb5NHF_bKk-(6Md;lkN^(a@D7%Idaj{5C z**EIMG)!JtYv`2h|h@hdG_)EiB`WL(%*CS*-+jTA}8YwktVXM10+tItE5#daFEOq z4N98AvIa?9@;nvIz@ym~DDPMOkgXMN~znf7h0#7jPOlmkmtBwG4{;6Zr0AvTK(Z#7$4Sz(pM=-6Fn+kw|8U-{OHlv zvzsF%@eV+>p*F9!4tvY=C{{twaz^oVN*<;6k=Ss_)(?A7&pJl2sU+OcAW4xu4};0Z zh)7Ar&(pR}ht0_Ca;K%k$9$bXDP$s*~R(#k$~{CcRm)@gTeTMvwpxoE3lOfq?N zjKtnjN|@5BJf2JaEJypBK@u7*h2yze>ufbf8(qa6<3UQ772kjTIEjytL>f64R-4gk ztE)EJr5HNLNfhq;>Np8cloe%^&A7{Hv^%PJ&82UzY?mFw{>Zp}-{|Z?u?%8h){&r$r*5vnDPnuF#mN5w{BBu4 diff --git a/docs/html/_modules/PyWGCNA/wgcna.html b/docs/html/_modules/PyWGCNA/wgcna.html index 8d7de7c..04729b4 100644 --- a/docs/html/_modules/PyWGCNA/wgcna.html +++ b/docs/html/_modules/PyWGCNA/wgcna.html @@ -366,13 +366,19 @@

Source code for PyWGCNA.wgcna

 
         print("\tDone pre-processing..\n")
-
[docs] def findModules(self, **kwargs): +
[docs] def findModules(self, kwargs_function={'cutreeHybrid': {'deepSplit': 2, 'pamRespectsDendro': False}}): """ Clustering genes through original WGCNA pipeline: 1.pick soft threshold 2.calculating adjacency matrix 3.calculating TOM similarity matrix 4.cluster genes base of dissTOM 5.merge similar cluster dynamically + + :param kwargs_function: dictionary where the keys are the name of the function and values are the dictionary contains parameter you want to change within function + :type kwargs_function: dict """ print(f"{BOLD}{OKBLUE}Run WGCNA...{ENDC}") # Call the network topology analysis function + kwargs = dict() + if 'pickSoftThreshold' in list(kwargs_function.keys()): + kwargs = kwargs_function['pickSoftThreshold'] self.power, self.sft = WGCNA.pickSoftThreshold(self.datExpr.to_df(), RsquaredCut=self.RsquaredCut, MeanCut=self.MeanCut, powerVector=self.powers, networkType=self.networkType, **kwargs) @@ -401,13 +407,19 @@

Source code for PyWGCNA.wgcna

             fig.savefig(f"{self.outputPath}figures/summary_power.{self.figureType}")
 
         # Set Power
-        self.adjacency = WGCNA.adjacency(self.datExpr.to_df(), power=self.power, adjacencyType=self.networkType)
+        kwargs = dict()
+        if 'adjacency' in list(kwargs_function.keys()):
+            kwargs = kwargs_function['adjacency']
+        self.adjacency = WGCNA.adjacency(self.datExpr.to_df(), power=self.power, adjacencyType=self.networkType, **kwargs)
         self.adjacency = pd.DataFrame(self.adjacency,
                                       columns=self.datExpr.to_df().columns,
                                       index=self.datExpr.to_df().columns)
 
         # Turn adjacency into topological overlap
-        self.TOM = WGCNA.TOMsimilarity(self.adjacency.to_numpy(), TOMType=self.TOMType)
+        kwargs = dict()
+        if 'TOMsimilarity' in list(kwargs_function.keys()):
+            kwargs = kwargs_function['TOMsimilarity']
+        self.TOM = WGCNA.TOMsimilarity(self.adjacency.to_numpy(), TOMType=self.TOMType, **kwargs)
         self.TOM.columns = self.datExpr.to_df().columns
         self.TOM.index = self.datExpr.to_df().columns
         dissTOM = 1 - self.TOM
@@ -417,17 +429,23 @@ 

Source code for PyWGCNA.wgcna

         # Call the hierarchical clustering function
         self.geneTree = linkage(a, method="average")
 
-        # Module identification using dynamic tree cut:
-        # dynamicMods = WGCNA.cutreeHybrid(dendro=self.geneTree, distM=dissTOM, deepSplit=2, pamRespectsDendro=False,
-        #                                 minClusterSize=self.minModuleSize, **kwargs)
-        dynamicMods = WGCNA.cutreeHybrid(dendro=self.geneTree, distM=dissTOM, deepSplit=2, pamRespectsDendro=False,
-                                         minClusterSize=self.minModuleSize, **kwargs)
+        # Module identification using dynamic tree cut
+        kwargs = dict()
+        if 'cutreeHybrid' in list(kwargs_function.keys()):
+            kwargs = kwargs_function['cutreeHybrid']
+        dynamicMods = WGCNA.cutreeHybrid(dendro=self.geneTree, distM=dissTOM, minClusterSize=self.minModuleSize, **kwargs)
 
         # Convert numeric labels into colors
-        self.datExpr.var['dynamicColors'] = WGCNA.labels2colors(labels=dynamicMods)
+        kwargs = dict()
+        if 'labels2colors' in list(kwargs_function.keys()):
+            kwargs = kwargs_function['labels2colors']
+        self.datExpr.var['dynamicColors'] = WGCNA.labels2colors(labels=dynamicMods, **kwargs)
 
         # Calculate eigengenes
-        MEList = WGCNA.moduleEigengenes(expr=self.datExpr.to_df(), colors=self.datExpr.var['dynamicColors'])
+        kwargs = dict()
+        if 'moduleEigengenes' in list(kwargs_function.keys()):
+            kwargs = kwargs_function['moduleEigengenes']
+        MEList = WGCNA.moduleEigengenes(expr=self.datExpr.to_df(), colors=self.datExpr.var['dynamicColors'], **kwargs)
 
         self.MEs = MEList['eigengenes']
         if 'MEgrey' in self.MEs.columns:
@@ -452,8 +470,11 @@ 

Source code for PyWGCNA.wgcna

                 plt.savefig(f"{self.outputPath}figures/eigenesgenes.{self.figureType}")
 
             # Call an automatic merging function
+            kwargs = dict()
+            if 'mergeCloseModules' in list(kwargs_function.keys()):
+                kwargs = kwargs_function['mergeCloseModules']
             merge = WGCNA.mergeCloseModules(self.datExpr.to_df(), self.datExpr.var['dynamicColors'],
-                                            cutHeight=self.MEDissThres)
+                                            cutHeight=self.MEDissThres, **kwargs)
             # The merged module colors; Rename to moduleColors
             self.datExpr.var['moduleColors'] = merge['colors']
         else:
@@ -467,10 +488,17 @@ 

Source code for PyWGCNA.wgcna

         self.MEs = merge['newMEs']
 
         # Recalculate MEs with color labels
-        self.datME = WGCNA.moduleEigengenes(self.datExpr.to_df(), self.datExpr.var['moduleColors'])['eigengenes']
+        kwargs = dict()
+        if 'moduleEigengenes' in list(kwargs_function.keys()):
+            kwargs = kwargs_function['moduleEigengenes']
+        self.datME = WGCNA.moduleEigengenes(self.datExpr.to_df(), self.datExpr.var['moduleColors'], **kwargs)['eigengenes']
         if 'MEgrey' in self.datME.columns:
             self.datME.drop(['MEgrey'], axis=1, inplace=True)
-        self.MEs = WGCNA.orderMEs(self.datME)
+
+        kwargs = dict()
+        if 'orderMEs' in list(kwargs_function.keys()):
+            kwargs = kwargs_function['orderMEs']
+        self.MEs = WGCNA.orderMEs(self.datME, **kwargs)
 
         print("\tDone running WGCNA..\n")
@@ -735,7 +763,7 @@

Source code for PyWGCNA.wgcna

             # TODO:colWeightedVars
             var = np.var(datExpr, w=weights)
 
-        var[np.isnan(var)] = 0
+        var[pd.isnull(var)] = 0
         nNAsGenes = datExpr.loc[gg, useSamples].isna().sum(axis=1)
         gg[gg] = np.logical_and(np.logical_and(nNAsGenes < (1 - minFraction) * nSamples, var > tol ** 2),
                                 nSamples - nNAsGenes >= minNSamples)
@@ -3132,7 +3160,10 @@ 

Source code for PyWGCNA.wgcna

 
         height_ratios = []
         for m in metadata:
-            height_ratios.append(len(list(self.metadataColors[m].keys())))
+            if isinstance(self.metadataColors[m], dict):
+                height_ratios.append(len(list(self.metadataColors[m].keys())))
+            else:
+                height_ratios.append(1)
         height_ratios.reverse()
 
         modules = np.unique(self.datExpr.var['moduleColors']).tolist()
@@ -3191,16 +3222,38 @@ 

Source code for PyWGCNA.wgcna

                     x = ind
                     y = np.repeat(3000 * metadata.index(m), len(ind))
                     color = cat[m].values
-                    for n in list(self.metadataColors[m].keys()):
-                        color = np.where(color == n, self.metadataColors[m][n], color)
-                        patch = mpatches.Patch(color=self.metadataColors[m][n], label=n)
-                        handles.append(patch)
-                    if m != colorBar:
-                        axs[0, 0].scatter(x, y, c=color, s=1600, marker='s')
-                    ax_legend = plt.Subplot(fig, axs_legend[len(metadata) - 1 - metadata.index(m)])
-                    ax_legend.legend(title=m, handles=handles)
-                    ax_legend.axis('off')
-                    fig.add_subplot(ax_legend)
+                    if type(self.metadataColors[m]) == dict:
+                        for n in list(self.metadataColors[m].keys()):
+                            color = np.where(color == n, self.metadataColors[m][n], color)
+                            patch = mpatches.Patch(color=self.metadataColors[m][n], label=n)
+                            handles.append(patch)
+                        if m != colorBar:
+                            axs[0, 0].scatter(x, y, c=color, s=1600, marker='s')
+                        ax_legend = plt.Subplot(fig, axs_legend[len(metadata) - 1 - metadata.index(m)])
+                        ax_legend.legend(title=m, handles=handles)
+                        ax_legend.axis('off')
+                        fig.add_subplot(ax_legend)
+                    else:
+                        cat[m] = cat[m].astype('float')
+                        color = cat[m].values
+                        axs[0, 0].scatter(x, y, c=color,
+                                          cmap=self.metadataColors[m].get_cmap(),
+                                          s=1600, marker='s')
+
+                        ax_legend = plt.Subplot(fig, axs_legend[len(metadata) - 1 - metadata.index(m)])
+                        clb = fig.colorbar(mappable=self.metadataColors[m],
+                                           ax=ax_legend,
+                                           orientation='horizontal',
+                                           fraction=0.9)
+                        clb.ax.set_title(m.capitalize())
+                        ax_legend.axis('off')
+                        fig.add_subplot(ax_legend)
+                    # if m != colorBar:
+                    #     axs[0, 0].scatter(x, y, c=color, s=1600, marker='s')
+                    # ax_legend = plt.Subplot(fig, axs_legend[len(metadata) - 1 - metadata.index(m)])
+                    # ax_legend.legend(title=m, handles=handles)
+                    # ax_legend.axis('off')
+                    # fig.add_subplot(ax_legend)
 
                 axs[0, 0].set_title(f"Module Eigengene for {moduleName}", size=28, fontweight="bold")
                 axs[0, 0].set_ylim(-2000, np.max(y) + 2000)
@@ -3651,8 +3704,8 @@ 

Source code for PyWGCNA.wgcna

             for line in response.text.strip().split("\n"):
                 l = line.strip().split("\t")
 
-                res = res.append({'gene1': l[2], 'gene2': l[3], 'score': l[5]},
-                                 ignore_index=True)
+                tmp = pd.DataFrame({'gene1': l[2], 'gene2': l[3], 'score': l[5]}, index=[0])
+                res = pd.concat([res, tmp], ignore_index=True)
 
         sleep(1)
 
diff --git a/docs/html/api.html b/docs/html/api.html
index 6395c40..d2b4eee 100644
--- a/docs/html/api.html
+++ b/docs/html/api.html
@@ -550,8 +550,13 @@
 
 
-findModules(**kwargs)[source]
+findModules(kwargs_function={'cutreeHybrid': {'deepSplit': 2, 'pamRespectsDendro': False}})[source]

Clustering genes through original WGCNA pipeline: 1.pick soft threshold 2.calculating adjacency matrix 3.calculating TOM similarity matrix 4.cluster genes base of dissTOM 5.merge similar cluster dynamically

+
+
Parameters
+

kwargs_function (dict) – dictionary where the keys are the name of the function and values are the dictionary contains parameter you want to change within function

+
+
diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js index 5266ef2..8a36176 100644 --- a/docs/html/searchindex.js +++ b/docs/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api", "cite", "index", "installation", "suggested_reading", "tutorials"], "filenames": ["api.rst", "cite.rst", "index.rst", "installation.rst", "suggested_reading.rst", "tutorials.rst"], "titles": ["API Documentation", "Citation", "PyWGCNA: A python package for weighted gene co-expression network analysis", "Installation", "Suggested Reading", "Tutorials"], "terms": {"class": 0, "pywgcna": [0, 1, 3, 5], "geneexp": 0, "speci": 0, "none": 0, "level": 0, "gene": [0, 1, 5], "anndata": 0, "geneexppath": 0, "sep": 0, "geneinfo": 0, "sampleinfo": 0, "sourc": 0, "A": [0, 1], "us": [0, 1, 2, 5], "creat": 0, "express": [0, 1], "along": 0, "data": [0, 5], "trait": [0, 2], "includ": [0, 2], "both": 0, "sampl": [0, 2], "inform": 0, "paramet": [0, 5], "str": 0, "you": [0, 2, 4, 5], "i": 0, "e": 0, "mous": 0, "human": 0, "which": 0, "type": 0, "transcript": 0, "default": 0, "format": [0, 5], "should": 0, "pass": 0, "through": 0, "thi": 0, "x": 0, "matrix": 0, "var": 0, "ob": 0, "panda": 0, "datafram": 0, "ar": [0, 4], "row": 0, "column": 0, "path": 0, "separ": 0, "symbol": 0, "read": [0, 2], "properli": 0, "contain": 0, "have": [0, 5], "same": 0, "index": [0, 2], "name": 0, "id": 0, "static": 0, "updategeneinfo": 0, "geneexpr": 0, "add": 0, "updat": 0, "info": 0, "expr": 0, "tabl": 0, "want": 0, "your": [0, 5], "return": 0, "updatesampleinfo": 0, "metadata": 0, "wgcna": [0, 2, 4], "tpmcutoff": 0, "1": 0, "power": 0, "rsquaredcut": 0, "0": 0, "9": [0, 3], "meancut": 0, "100": 0, "networktyp": 0, "sign": 0, "hybrid": 0, "tomtyp": 0, "minmodules": 0, "50": 0, "nacolor": 0, "grei": 0, "cut": 0, "inf": 0, "medissthr": 0, "2": 0, "save": 0, "fals": 0, "outputpath": 0, "figuretyp": 0, "pdf": 0, "do": [0, 2], "weight": [0, 1, 4], "co": [0, 1], "network": [0, 1, 4, 5], "analysi": [0, 1, 4, 5], "we": [0, 4, 5], "visual": [0, 5], "bool": 0, "indic": 0, "result": 0, "import": 0, "step": 0, "figur": 0, "directori": [0, 3], "all": 0, "object": [0, 5], "where": 0, "rau": 0, "script": 0, "int": 0, "off": 0, "remov": 0, "under": 0, "number": 0, "float": 0, "outlier": 0, "By": 0, "don": 0, "t": 0, "ani": 0, "hierarch": 0, "cluster": [0, 2], "list": [0, 5], "differ": [0, 2], "test": 0, "scale": 0, "free": 0, "10": 0, "11": 0, "21": 0, "r": [0, 4], "squaer": 0, "choos": 0, "between": 0, "mean": 0, "connect": 0, "can": [0, 2, 5], "unsign": 0, "topolog": 0, "overlap": 0, "tom": 0, "like": 0, "larg": 0, "modul": [0, 2, 5], "so": 0, "set": 0, "minimum": 0, "size": 0, "rel": 0, "high": 0, "color": 0, "identifi": 0, "find": [0, 2, 5], "them": [0, 5], "diss": 0, "similar": 0, "threshold": 0, "extens": 0, "me": 0, "ndarrai": 0, "eigengen": [0, 2], "raw": 0, "datexpr": 0, "preprocess": [0, 5], "dynamicmod": 0, "togeth": 0, "measur": [0, 2], "averag": 0, "linkag": 0, "input": [0, 5], "interconnected": 0, "adjac": 0, "calcul": [0, 2], "base": 0, "genetre": 0, "disstom": 0, "6": 0, "sft": 0, "soft": 0, "ha": 0, "each": 0, "datm": 0, "param": 0, "signedkm": 0, "membership": [0, 2], "moduletraitcor": 0, "correl": [0, 2, 4], "moduletraitpvalu": 0, "p": 0, "valu": 0, "calculatesignedkm": 0, "exprweight": 0, "meweight": 0, "also": [0, 2], "known": 0, "option": 0, "observ": 0, "dimens": 0, "frame": 0, "correspond": 0, "give": 0, "respect": 0, "coexpressionmoduleplot": 0, "numgen": 0, "numconnect": 0, "mintom": 0, "filter": 0, "file_nam": 0, "plot": [0, 5], "coexpress": 0, "given": 0, "show": 0, "keep": 0, "dict": 0, "dictionari": 0, "kei": 0, "determin": 0, "html": 0, "output": 0, "file": 0, "more": [0, 5], "than": [0, 5], "3": [0, 3], "ppi_network": 0, "modulenam": 0, "genelist": 0, "output_format": 0, "imag": 0, "retriev": 0, "an": [0, 4], "string": [0, 5], "neighborhood": 0, "surround": 0, "one": [0, 2], "protein": [0, 5], "ask": 0, "onli": 0, "interact": [0, 5], "ncbi": 0, "taxon": 0, "g": 0, "9606": 0, "see": 0, "http": 0, "db": 0, "org": 0, "cgi": 0, "pl": 0, "input_page_active_form": 0, "organ": 0, "ppi": [0, 5], "highres_imag": 0, "svg": 0, "score": 0, "tomsimilar": 0, "adjmat": 0, "tomdenom": 0, "min": 0, "dissimilar": 0, "from": [0, 2, 5], "squar": 0, "symmetr": 0, "entri": 0, "neg": 0, "allow": 0, "charact": 0, "specifi": 0, "variant": 0, "recogn": 0, "standard": 0, "describ": [0, 4], "zhang": 0, "horvath": 0, "2005": 0, "function": [0, 5], "denomin": 0, "replac": 0, "The": 0, "mai": 0, "produc": 0, "better": 0, "time": 0, "consid": 0, "experiment": 0, "hold": 0, "selectcol": 0, "adjacencytyp": 0, "coropt": 0, "empti": 0, "weightargnam": 0, "distanc": 0, "select": 0, "whose": 0, "either": 0, "numer": 0, "boolean": 0, "uniqu": 0, "abbrevi": 0, "addit": 0, "argument": 0, "corfnc": 0, "non": 0, "pearson": 0, "length": 0, "repres": 0, "variabl": 0, "y": 0, "null": 0, "analysewgcna": 0, "order": 0, "true": 0, "altern": 0, "two": [0, 5], "side": 0, "analys": 0, "relationship": 0, "heatmap": 0, "go": [0, 3, 5], "term": 0, "up": 0, "mind": 0, "multipl": 0, "when": [0, 1], "run": [0, 3], "code": 0, "defin": 0, "hypothesi": 0, "follow": 0, "avail": 0, "nonzero": 0, "less": 0, "zero": 0, "greater": [0, 3], "posit": 0, "barplotmoduleeigengen": 0, "combin": 0, "colorbar": 0, "bar": 0, "eigen": 0, "praram": 0, "calblocks": 0, "matrixs": 0, "rectangularblock": 0, "maxmemoryalloc": 0, "overheadfactor": 0, "suitabl": 0, "block": 0, "checkadjmat": 0, "max": 0, "check": 0, "correct": 0, "maximum": 0, "rais": 0, "exit": 0, "checkandscaleweight": 0, "scalebymax": 0, "dive": 0, "boll": 0, "process": [0, 5], "checkset": 0, "checkstructur": 0, "useset": 0, "whether": 0, "must": 0, "compon": 0, "content": 0, "arrai": 0, "If": [0, 4], "incorrect": 0, "structur": 0, "trigger": 0, "error": 0, "appropri": 0, "flag": 0, "specif": 0, "some": [0, 5], "nset": 0, "vector": 0, "ngene": 0, "nsampl": 0, "structureok": 0, "equal": 0, "paramt": 0, "few": 0, "its": 0, "otherwis": 0, "exhaust": 0, "meant": 0, "catch": 0, "obviou": 0, "user": [0, 2], "rather": 0, "bulletproof": 0, "checksimilar": 0, "consensusmedissimilaritymajor": 0, "useab": 0, "method": 0, "consensu": 0, "cor": 0, "realiz": 0, "sever": 0, "consensusorderm": 0, "greylast": 0, "greynam": 0, "megrei": 0, "reorder": 0, "ones": 0, "next": 0, "other": 0, "multi": 0, "control": 0, "absolut": 0, "plain": 0, "defualt": 0, "perform": [0, 5], "normal": 0, "reserv": 0, "unassign": 0, "henc": 0, "proper": 0, "convent": 0, "put": 0, "last": 0, "desir": 0, "major": 0, "re": 0, "cutre": 0, "sampletre": 0, "cutheight": 0, "50000": 0, "z": 0, "tree": 0, "scipi": 0, "array_lik": 0, "height": 0, "group": 0, "agglomer": 0, "full": 0, "first": 0, "point": 0, "own": 0, "At": 0, "node": 0, "merg": 0, "final": 0, "singleton": 0, "n_cluster": 0, "cutreehybrid": 0, "dendro": 0, "distm": 0, "minclusters": 0, "20": 0, "deepsplit": 0, "maxcorescatt": 0, "mingap": 0, "maxabscorescatt": 0, "minabsgap": 0, "minsplitheight": 0, "minabssplitheight": 0, "externalbranchsplitfnc": 0, "nexternalsplit": 0, "minexternalsplit": 0, "externalsplitopt": 0, "externalsplitfncneedsdist": 0, "assumesimpleexternalspecif": 0, "pamstag": 0, "pamrespectsdendro": 0, "usemedoid": 0, "maxpamdist": 0, "respectsmallclust": 0, "detect": 0, "dendorgram": 0, "hclust": 0, "wa": 0, "join": 0, "It": 0, "99of": 0, "rang": 0, "5th": 0, "percentil": 0, "dendrogram": 0, "logic": 0, "integ": 0, "4": 0, "provid": 0, "rough": 0, "over": 0, "sensit": 0, "split": 0, "higher": 0, "smaller": 0, "scatter": 0, "core": 0, "branch": 0, "fraction": 0, "gap": 0, "overrid": 0, "below": 0, "automat": 0, "minabssplith": 0, "abov": 0, "evalu": 0, "singl": [0, 2, 5], "decid": 0, "further": 0, "extern": [0, 2, 5], "need": 0, "element": 0, "per": 0, "scalar": 0, "assum": 0, "simpl": 0, "second": 0, "pam": 0, "stage": 0, "sens": 0, "assign": 0, "lie": 0, "medoid": 0, "closest": 0, "fail": 0, "becaus": 0, "insuffici": 0, "individu": 0, "detail": 0, "detec": 0, "findmodul": 0, "kwarg": 0, "origin": [0, 4], "pipelin": 0, "pick": 0, "5": 0, "dynam": 0, "fixdatastructur": 0, "encapsul": 0, "wrapper": 0, "make": 0, "work": 0, "multiset": 0, "collect": 0, "ot": 0, "oper": 0, "functional_enrichment_analysi": 0, "p_valu": 0, "enrich": [0, 5], "kegg": [0, 5], "reactom": [0, 5], "databas": [0, 5], "tupl": 0, "enrichr": 0, "librari": [0, 2], "s": 0, "custom": 0, "gene_set": 0, "gmt": 0, "here": [0, 1, 2, 5], "maayanlab": 0, "cloud": 0, "stat": 0, "fill": 0, "pvalu": 0, "05": 0, "pair": 0, "keyword": 0, "underli": 0, "gseapi": 0, "finction": 0, "getdattrait": 0, "get": 0, "getgenemodul": 0, "request": 0, "getmodulenam": 0, "getmodulesgen": 0, "geneid": 0, "goodgenesfun": 0, "usesampl": 0, "usegen": 0, "minfract": 0, "minnsampl": 0, "minngen": 0, "tol": 0, "minrelativeweight": 0, "miss": 0, "varianc": 0, "good": 0, "fit": 0, "actual": 0, "fall": 0, "issu": 0, "small": 0, "compar": [0, 2, 5], "against": 0, "divid": 0, "note": 0, "exclud": 0, "goodsamplesfun": 0, "findmodulesminimum": 0, "goodsamplesgen": 0, "necessari": 0, "iter": 0, "tripl": 0, "goodgen": 0, "goodsampl": 0, "allok": 0, "everyth": 0, "okai": 0, "d": 0, "complet": 0, "analyz": [0, 5], "pdist": 0, "algorithm": 0, "encod": 0, "intramodularconnect": 0, "mat": 0, "intramodular": 0, "within": 0, "label": 0, "ncol": 0, "im": 0, "getwholenetworkconnect": 0, "total": 0, "extra": 0, "modular": 0, "intra": 0, "labels2color": 0, "zeroisgrei": 0, "colorseq": 0, "convert": 0, "sequenc": 0, "mergeclosemodul": 0, "exprdata": 0, "imput": 0, "checkdataformat": 0, "unassdcolor": 0, "equalizequantil": 0, "quantilesummari": 0, "consensusquantil": 0, "relabel": 0, "getnewm": 0, "getnewunassdm": 0, "traperror": 0, "too": 0, "close": 0, "factor": 0, "been": 0, "befor": 0, "comput": 0, "thei": 0, "disabl": 0, "presenc": 0, "na": 0, "caus": 0, "hubgen": 0, "approxim": 0, "usabl": 0, "enter": 0, "quantil": 0, "reproduc": 0, "old": 0, "mani": 0, "least": 0, "achiev": 0, "One": 0, "median": 0, "how": [0, 5], "refer": 0, "qualifi": 0, "procedur": 0, "repeat": 0, "until": 0, "chang": 0, "execut": 0, "after": 0, "packag": [0, 1, 4], "start": [0, 5], "manipul": 0, "doe": 0, "forc": 0, "newm": 0, "oldm": 0, "trap": 0, "stop": 0, "dictionati": 0, "attempt": 0, "mimic": 0, "mode": 0, "howev": 0, "fnction": 0, "most": [0, 2], "recent": [0, 2], "olddendro": 0, "copi": 0, "moduleeigengen": 0, "npc": 0, "align": 0, "excludegrei": 0, "subhub": 0, "softpow": 0, "scalevar": 0, "1st": 0, "princip": 0, "dataset": [0, 2], "form": 0, "probe": 0, "latter": 0, "present": 0, "explain": 0, "rest": 0, "proport": 0, "warn": 0, "orient": 0, "undetermin": 0, "left": 0, "improp": 0, "consist": 0, "design": [0, 2], "hub": 0, "substitut": 0, "offend": 0, "clear": 0, "lead": 0, "handl": 0, "aris": 0, "call": 0, "without": 0, "abnorm": 0, "take": 0, "preced": 0, "turn": 0, "singular": 0, "decomposit": 0, "previous": 0, "case": 0, "bit": 0, "faster": 0, "outsid": 0, "let": 0, "slightli": 0, "prepend": 0, "meturquois": 0, "etc": 0, "returnvalidonli": 0, "averageexpr": 0, "ae": 0, "aeturquois": 0, "varexplain": 0, "pc": 0, "exact": 0, "irrespect": 0, "record": 0, "validm": 0, "valid": 0, "invalid": 0, "definit": 0, "validcolor": 0, "signal": 0, "correctli": 0, "allpc": 0, "ispc": 0, "ishub": 0, "valida": 0, "allaeok": 0, "impli": 0, "module_trait_relationships_heatmap": 0, "figsiz": 0, "traitrelationship": 0, "topic": 0, "would": 0, "multisetm": 0, "universalcolor": 0, "restrict": 0, "subset": 0, "whichev": 0, "appli": 0, "spirit": 0, "orderm": 0, "orderbi": 0, "well": 0, "picksoftthreshold": 0, "dataisexpr": 0, "powervector": 0, "nbreak": 0, "blocksiz": 0, "morenetworkconcept": 0, "gcinterv": 0, "interpret": 0, "bin": 0, "histogram": 0, "broken": 0, "print": 0, "verbos": 0, "memori": 0, "problem": 0, "decreas": 0, "concept": 0, "densiti": 0, "heterogen": 0, "central": 0, "depend": 0, "For": 0, "dong": 0, "2008": 0, "plo": 0, "comp": 0, "biol": 0, "interv": 0, "garbag": 0, "never": 0, "powerestim": 0, "estim": 0, "lowest": 0, "exce": 0, "conect": 0, "datout": 0, "adjust": 0, "linear": 0, "coeffici": 0, "complic": 0, "model": 0, "plotmoduleeigengen": 0, "replacemiss": 0, "replacewith": 0, "item": 0, "look": 0, "request_ppi": 0, "partner": 0, "request_ppi_imag": 0, "request_url": 0, "version": [0, 3], "link": 0, "direct": 0, "webpag": 0, "url": 0, "request_ppi_subset": 0, "tsv": 0, "header": 0, "interaction_partn": 0, "our": [0, 1], "runwgcna": 0, "savewgcna": 0, "current": 0, "pickl": 0, "scalefreefitindex": 0, "k": 0, "statist": 0, "setmetadatacolor": 0, "col": 0, "cmap": 0, "pallet": 0, "softconnect": 0, "1500": 0, "construct": 0, "sum": 0, "low": 0, "sai": 0, "ineffici": 0, "while": 0, "out": 0, "physic": 0, "slow": 0, "down": 0, "chosen": 0, "doubl": 0, "top_n_hub_gen": 0, "n": 0, "top": 0, "hun": 0, "ad": 0, "comparison": 0, "genemodul": 0, "anoth": [0, 2], "marker": [0, 2, 5], "jaccard_similar": 0, "jaccard": 0, "common": 0, "calculatefract": 0, "netwrok": 0, "calculatejaccardsimilar": 0, "calculatepvalu": 0, "comparenetwork": 0, "list1": 0, "list2": 0, "plotbubblecomparison": 0, "bubble_s": 0, "cutoff": 0, "01": 0, "order1": 0, "order2": 0, "plot_show": 0, "plot_format": 0, "png": 0, "bubble_comparison": 0, "bubbl": 0, "signific": 0, "tick": 0, "pywgcna1": 0, "map": 0, "pywgcna2": 0, "plotheatmapcomparison": 0, "row_clust": 0, "col_clust": 0, "heatmap_comparison": 0, "plotjaccardsimilar": 0, "savecomparison": 0, "util": 0, "server": 0, "comparesinglecel": 0, "sc": 0, "cell": [0, 2, 5], "experi": 0, "getgenelist": 0, "mmusculus_gene_ensembl": 0, "attribut": 0, "ensembl_gene_id": 0, "external_gene_nam": 0, "gene_biotyp": 0, "gene_id": 0, "gene_nam": 0, "go_id": 0, "server_domain": 0, "ensembl": 0, "biomart": 0, "hsapiens_gene_ensembl": 0, "bioconductor": 0, "riken": 0, "jp": 0, "bioc": 0, "vignett": 0, "inst": 0, "doc": 0, "pull": 0, "uswest": 0, "asia": 0, "extract": 0, "relat": [0, 2], "getgenelistgoid": 0, "goid": 0, "0003700": 0, "inforamt": 0, "readcomparison": 0, "readwgcna": 0, "pleas": 1, "cite": 1, "paper": 1, "rezai": 1, "narg": 1, "fairli": 1, "rees": 1, "ali": 1, "mortazavi": 1, "python": [1, 3], "biorxiv": 1, "2022": 1, "highli": 2, "summar": 2, "methodolog": 2, "github": 2, "page": 2, "instal": 2, "pypi": 2, "recommend": 2, "commit": 2, "tutori": 2, "suggest": 2, "citat": 2, "api": 2, "document": 2, "search": 2, "To": 3, "requir": 3, "releas": 3, "pip": 3, "git": 3, "clone": 3, "repositori": 3, "unfamiliar": 4, "refrenc": 4, "public": 4, "variou": 4, "featur": 4, "program": 4, "languag": 4, "clean": 5, "pre": 5, "quick": 5, "load": 5, "access": 5, "three": 5, "shown": 5, "recov": 5}, "objects": {"PyWGCNA": [[0, 0, 0, "-", "comparison"], [0, 0, 0, "-", "geneExp"], [0, 0, 0, "-", "utils"], [0, 0, 0, "-", "wgcna"]], "PyWGCNA.comparison": [[0, 1, 1, "", "Comparison"]], "PyWGCNA.comparison.Comparison": [[0, 2, 1, "", "calculateFraction"], [0, 2, 1, "", "calculateJaccardSimilarity"], [0, 2, 1, "", "calculatePvalue"], [0, 2, 1, "", "compareNetworks"], [0, 2, 1, "", "jaccard"], [0, 2, 1, "", "plotBubbleComparison"], [0, 2, 1, "", "plotHeatmapComparison"], [0, 2, 1, "", "plotJaccardSimilarity"], [0, 2, 1, "", "saveComparison"]], "PyWGCNA.geneExp": [[0, 1, 1, "", "GeneExp"]], "PyWGCNA.geneExp.GeneExp": [[0, 2, 1, "", "updateGeneInfo"], [0, 2, 1, "", "updateSampleInfo"]], "PyWGCNA.utils": [[0, 3, 1, "", "compareNetworks"], [0, 3, 1, "", "compareSingleCell"], [0, 3, 1, "", "getGeneList"], [0, 3, 1, "", "getGeneListGOid"], [0, 3, 1, "", "readComparison"], [0, 3, 1, "", "readWGCNA"]], "PyWGCNA.wgcna": [[0, 1, 1, "", "WGCNA"]], "PyWGCNA.wgcna.WGCNA": [[0, 2, 1, "", "CalculateSignedKME"], [0, 2, 1, "", "CoexpressionModulePlot"], [0, 2, 1, "", "PPI_network"], [0, 2, 1, "", "TOMsimilarity"], [0, 2, 1, "", "adjacency"], [0, 2, 1, "", "analyseWGCNA"], [0, 2, 1, "", "barplotModuleEigenGene"], [0, 2, 1, "", "calBlockSize"], [0, 2, 1, "", "checkAdjMat"], [0, 2, 1, "", "checkAndScaleWeights"], [0, 2, 1, "", "checkSets"], [0, 2, 1, "", "checkSimilarity"], [0, 2, 1, "", "consensusMEDissimilarityMajor"], [0, 2, 1, "", "consensusOrderMEs"], [0, 2, 1, "", "cutree"], [0, 2, 1, "", "cutreeHybrid"], [0, 2, 1, "", "findModules"], [0, 2, 1, "", "fixDataStructure"], [0, 2, 1, "", "functional_enrichment_analysis"], [0, 2, 1, "", "getDatTraits"], [0, 2, 1, "", "getGeneModule"], [0, 2, 1, "", "getModuleName"], [0, 2, 1, "", "getModulesGene"], [0, 2, 1, "", "goodGenesFun"], [0, 2, 1, "", "goodSamplesFun"], [0, 2, 1, "", "goodSamplesGenes"], [0, 2, 1, "", "hclust"], [0, 2, 1, "", "intramodularConnectivity"], [0, 2, 1, "", "labels2colors"], [0, 2, 1, "", "mergeCloseModules"], [0, 2, 1, "", "moduleEigengenes"], [0, 2, 1, "", "module_trait_relationships_heatmap"], [0, 2, 1, "", "multiSetMEs"], [0, 2, 1, "", "orderMEs"], [0, 2, 1, "", "pickSoftThreshold"], [0, 2, 1, "", "plotModuleEigenGene"], [0, 2, 1, "", "preprocess"], [0, 2, 1, "", "replaceMissing"], [0, 2, 1, "", "request_PPI"], [0, 2, 1, "", "request_PPI_image"], [0, 2, 1, "", "request_PPI_subset"], [0, 2, 1, "", "runWGCNA"], [0, 2, 1, "", "saveWGCNA"], [0, 2, 1, "", "scaleFreeFitIndex"], [0, 2, 1, "", "setMetadataColor"], [0, 2, 1, "", "softConnectivity"], [0, 2, 1, "", "top_n_hub_genes"], [0, 2, 1, "", "updateGeneInfo"], [0, 2, 1, "", "updateSampleInfo"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "titleterms": {"api": 0, "document": 0, "citat": 1, "pywgcna": 2, "A": 2, "python": 2, "packag": 2, "weight": 2, "gene": 2, "co": 2, "express": 2, "network": 2, "analysi": 2, "indic": 2, "tabl": 2, "instal": 3, "from": 3, "pypi": 3, "recommend": 3, "most": 3, "recent": 3, "commit": 3, "suggest": 4, "read": 4, "tutori": 5}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["api", "cite", "index", "installation", "suggested_reading", "tutorials"], "filenames": ["api.rst", "cite.rst", "index.rst", "installation.rst", "suggested_reading.rst", "tutorials.rst"], "titles": ["API Documentation", "Citation", "PyWGCNA: A python package for weighted gene co-expression network analysis", "Installation", "Suggested Reading", "Tutorials"], "terms": {"class": 0, "pywgcna": [0, 1, 3, 5], "geneexp": 0, "speci": 0, "none": 0, "level": 0, "gene": [0, 1, 5], "anndata": 0, "geneexppath": 0, "sep": 0, "geneinfo": 0, "sampleinfo": 0, "sourc": 0, "A": [0, 1], "us": [0, 1, 2, 5], "creat": 0, "express": [0, 1], "along": 0, "data": [0, 5], "trait": [0, 2], "includ": [0, 2], "both": 0, "sampl": [0, 2], "inform": 0, "paramet": [0, 5], "str": 0, "you": [0, 2, 4, 5], "i": 0, "e": 0, "mous": 0, "human": 0, "which": 0, "type": 0, "transcript": 0, "default": 0, "format": [0, 5], "should": 0, "pass": 0, "through": 0, "thi": 0, "x": 0, "matrix": 0, "var": 0, "ob": 0, "panda": 0, "datafram": 0, "ar": [0, 4], "row": 0, "column": 0, "path": 0, "separ": 0, "symbol": 0, "read": [0, 2], "properli": 0, "contain": 0, "have": [0, 5], "same": 0, "index": [0, 2], "name": 0, "id": 0, "static": 0, "updategeneinfo": 0, "geneexpr": 0, "add": 0, "updat": 0, "info": 0, "expr": 0, "tabl": 0, "want": 0, "your": [0, 5], "return": 0, "updatesampleinfo": 0, "metadata": 0, "wgcna": [0, 2, 4], "tpmcutoff": 0, "1": 0, "power": 0, "rsquaredcut": 0, "0": 0, "9": [0, 3], "meancut": 0, "100": 0, "networktyp": 0, "sign": 0, "hybrid": 0, "tomtyp": 0, "minmodules": 0, "50": 0, "nacolor": 0, "grei": 0, "cut": 0, "inf": 0, "medissthr": 0, "2": 0, "save": 0, "fals": 0, "outputpath": 0, "figuretyp": 0, "pdf": 0, "do": [0, 2], "weight": [0, 1, 4], "co": [0, 1], "network": [0, 1, 4, 5], "analysi": [0, 1, 4, 5], "we": [0, 4, 5], "visual": [0, 5], "bool": 0, "indic": 0, "result": 0, "import": 0, "step": 0, "figur": 0, "directori": [0, 3], "all": 0, "object": [0, 5], "where": 0, "rau": 0, "script": 0, "int": 0, "off": 0, "remov": 0, "under": 0, "number": 0, "float": 0, "outlier": 0, "By": 0, "don": 0, "t": 0, "ani": 0, "hierarch": 0, "cluster": [0, 2], "list": [0, 5], "differ": [0, 2], "test": 0, "scale": 0, "free": 0, "10": 0, "11": 0, "21": 0, "r": [0, 4], "squaer": 0, "choos": 0, "between": 0, "mean": 0, "connect": 0, "can": [0, 2, 5], "unsign": 0, "topolog": 0, "overlap": 0, "tom": 0, "like": 0, "larg": 0, "modul": [0, 2, 5], "so": 0, "set": 0, "minimum": 0, "size": 0, "rel": 0, "high": 0, "color": 0, "identifi": 0, "find": [0, 2, 5], "them": [0, 5], "diss": 0, "similar": 0, "threshold": 0, "extens": 0, "me": 0, "ndarrai": 0, "eigengen": [0, 2], "raw": 0, "datexpr": 0, "preprocess": [0, 5], "dynamicmod": 0, "togeth": 0, "measur": [0, 2], "averag": 0, "linkag": 0, "input": [0, 5], "interconnected": 0, "adjac": 0, "calcul": [0, 2], "base": 0, "genetre": 0, "disstom": 0, "6": 0, "sft": 0, "soft": 0, "ha": 0, "each": 0, "datm": 0, "param": 0, "signedkm": 0, "membership": [0, 2], "moduletraitcor": 0, "correl": [0, 2, 4], "moduletraitpvalu": 0, "p": 0, "valu": 0, "calculatesignedkm": 0, "exprweight": 0, "meweight": 0, "also": [0, 2], "known": 0, "option": 0, "observ": 0, "dimens": 0, "frame": 0, "correspond": 0, "give": 0, "respect": 0, "coexpressionmoduleplot": 0, "numgen": 0, "numconnect": 0, "mintom": 0, "filter": 0, "file_nam": 0, "plot": [0, 5], "coexpress": 0, "given": 0, "show": 0, "keep": 0, "dict": 0, "dictionari": 0, "kei": 0, "determin": 0, "html": 0, "output": 0, "file": 0, "more": [0, 5], "than": [0, 5], "3": [0, 3], "ppi_network": 0, "modulenam": 0, "genelist": 0, "output_format": 0, "imag": 0, "retriev": 0, "an": [0, 4], "string": [0, 5], "neighborhood": 0, "surround": 0, "one": [0, 2], "protein": [0, 5], "ask": 0, "onli": 0, "interact": [0, 5], "ncbi": 0, "taxon": 0, "g": 0, "9606": 0, "see": 0, "http": 0, "db": 0, "org": 0, "cgi": 0, "pl": 0, "input_page_active_form": 0, "organ": 0, "ppi": [0, 5], "highres_imag": 0, "svg": 0, "score": 0, "tomsimilar": 0, "adjmat": 0, "tomdenom": 0, "min": 0, "dissimilar": 0, "from": [0, 2, 5], "squar": 0, "symmetr": 0, "entri": 0, "neg": 0, "allow": 0, "charact": 0, "specifi": 0, "variant": 0, "recogn": 0, "standard": 0, "describ": [0, 4], "zhang": 0, "horvath": 0, "2005": 0, "function": [0, 5], "denomin": 0, "replac": 0, "The": 0, "mai": 0, "produc": 0, "better": 0, "time": 0, "consid": 0, "experiment": 0, "hold": 0, "selectcol": 0, "adjacencytyp": 0, "coropt": 0, "empti": 0, "weightargnam": 0, "distanc": 0, "select": 0, "whose": 0, "either": 0, "numer": 0, "boolean": 0, "uniqu": 0, "abbrevi": 0, "addit": 0, "argument": 0, "corfnc": 0, "non": 0, "pearson": 0, "length": 0, "repres": 0, "variabl": 0, "y": 0, "null": 0, "analysewgcna": 0, "order": 0, "true": 0, "altern": 0, "two": [0, 5], "side": 0, "analys": 0, "relationship": 0, "heatmap": 0, "go": [0, 3, 5], "term": 0, "up": 0, "mind": 0, "multipl": 0, "when": [0, 1], "run": [0, 3], "code": 0, "defin": 0, "hypothesi": 0, "follow": 0, "avail": 0, "nonzero": 0, "less": 0, "zero": 0, "greater": [0, 3], "posit": 0, "barplotmoduleeigengen": 0, "combin": 0, "colorbar": 0, "bar": 0, "eigen": 0, "praram": 0, "calblocks": 0, "matrixs": 0, "rectangularblock": 0, "maxmemoryalloc": 0, "overheadfactor": 0, "suitabl": 0, "block": 0, "checkadjmat": 0, "max": 0, "check": 0, "correct": 0, "maximum": 0, "rais": 0, "exit": 0, "checkandscaleweight": 0, "scalebymax": 0, "dive": 0, "boll": 0, "process": [0, 5], "checkset": 0, "checkstructur": 0, "useset": 0, "whether": 0, "must": 0, "compon": 0, "content": 0, "arrai": 0, "If": [0, 4], "incorrect": 0, "structur": 0, "trigger": 0, "error": 0, "appropri": 0, "flag": 0, "specif": 0, "some": [0, 5], "nset": 0, "vector": 0, "ngene": 0, "nsampl": 0, "structureok": 0, "equal": 0, "paramt": 0, "few": 0, "its": 0, "otherwis": 0, "exhaust": 0, "meant": 0, "catch": 0, "obviou": 0, "user": [0, 2], "rather": 0, "bulletproof": 0, "checksimilar": 0, "consensusmedissimilaritymajor": 0, "useab": 0, "method": 0, "consensu": 0, "cor": 0, "realiz": 0, "sever": 0, "consensusorderm": 0, "greylast": 0, "greynam": 0, "megrei": 0, "reorder": 0, "ones": 0, "next": 0, "other": 0, "multi": 0, "control": 0, "absolut": 0, "plain": 0, "defualt": 0, "perform": [0, 5], "normal": 0, "reserv": 0, "unassign": 0, "henc": 0, "proper": 0, "convent": 0, "put": 0, "last": 0, "desir": 0, "major": 0, "re": 0, "cutre": 0, "sampletre": 0, "cutheight": 0, "50000": 0, "z": 0, "tree": 0, "scipi": 0, "array_lik": 0, "height": 0, "group": 0, "agglomer": 0, "full": 0, "first": 0, "point": 0, "own": 0, "At": 0, "node": 0, "merg": 0, "final": 0, "singleton": 0, "n_cluster": 0, "cutreehybrid": 0, "dendro": 0, "distm": 0, "minclusters": 0, "20": 0, "deepsplit": 0, "maxcorescatt": 0, "mingap": 0, "maxabscorescatt": 0, "minabsgap": 0, "minsplitheight": 0, "minabssplitheight": 0, "externalbranchsplitfnc": 0, "nexternalsplit": 0, "minexternalsplit": 0, "externalsplitopt": 0, "externalsplitfncneedsdist": 0, "assumesimpleexternalspecif": 0, "pamstag": 0, "pamrespectsdendro": 0, "usemedoid": 0, "maxpamdist": 0, "respectsmallclust": 0, "detect": 0, "dendorgram": 0, "hclust": 0, "wa": 0, "join": 0, "It": 0, "99of": 0, "rang": 0, "5th": 0, "percentil": 0, "dendrogram": 0, "logic": 0, "integ": 0, "4": 0, "provid": 0, "rough": 0, "over": 0, "sensit": 0, "split": 0, "higher": 0, "smaller": 0, "scatter": 0, "core": 0, "branch": 0, "fraction": 0, "gap": 0, "overrid": 0, "below": 0, "automat": 0, "minabssplith": 0, "abov": 0, "evalu": 0, "singl": [0, 2, 5], "decid": 0, "further": 0, "extern": [0, 2, 5], "need": 0, "element": 0, "per": 0, "scalar": 0, "assum": 0, "simpl": 0, "second": 0, "pam": 0, "stage": 0, "sens": 0, "assign": 0, "lie": 0, "medoid": 0, "closest": 0, "fail": 0, "becaus": 0, "insuffici": 0, "individu": 0, "detail": 0, "detec": 0, "findmodul": 0, "kwargs_funct": 0, "origin": [0, 4], "pipelin": 0, "pick": 0, "5": 0, "dynam": 0, "chang": 0, "within": 0, "fixdatastructur": 0, "encapsul": 0, "wrapper": 0, "make": 0, "work": 0, "multiset": 0, "collect": 0, "ot": 0, "oper": 0, "functional_enrichment_analysi": 0, "p_valu": 0, "kwarg": 0, "enrich": [0, 5], "kegg": [0, 5], "reactom": [0, 5], "databas": [0, 5], "tupl": 0, "enrichr": 0, "librari": [0, 2], "s": 0, "custom": 0, "gene_set": 0, "gmt": 0, "here": [0, 1, 2, 5], "maayanlab": 0, "cloud": 0, "stat": 0, "fill": 0, "pvalu": 0, "05": 0, "pair": 0, "keyword": 0, "underli": 0, "gseapi": 0, "finction": 0, "getdattrait": 0, "get": 0, "getgenemodul": 0, "request": 0, "getmodulenam": 0, "getmodulesgen": 0, "geneid": 0, "goodgenesfun": 0, "usesampl": 0, "usegen": 0, "minfract": 0, "minnsampl": 0, "minngen": 0, "tol": 0, "minrelativeweight": 0, "miss": 0, "varianc": 0, "good": 0, "fit": 0, "actual": 0, "fall": 0, "issu": 0, "small": 0, "compar": [0, 2, 5], "against": 0, "divid": 0, "note": 0, "exclud": 0, "goodsamplesfun": 0, "findmodulesminimum": 0, "goodsamplesgen": 0, "necessari": 0, "iter": 0, "tripl": 0, "goodgen": 0, "goodsampl": 0, "allok": 0, "everyth": 0, "okai": 0, "d": 0, "complet": 0, "analyz": [0, 5], "pdist": 0, "algorithm": 0, "encod": 0, "intramodularconnect": 0, "mat": 0, "intramodular": 0, "label": 0, "ncol": 0, "im": 0, "getwholenetworkconnect": 0, "total": 0, "extra": 0, "modular": 0, "intra": 0, "labels2color": 0, "zeroisgrei": 0, "colorseq": 0, "convert": 0, "sequenc": 0, "mergeclosemodul": 0, "exprdata": 0, "imput": 0, "checkdataformat": 0, "unassdcolor": 0, "equalizequantil": 0, "quantilesummari": 0, "consensusquantil": 0, "relabel": 0, "getnewm": 0, "getnewunassdm": 0, "traperror": 0, "too": 0, "close": 0, "factor": 0, "been": 0, "befor": 0, "comput": 0, "thei": 0, "disabl": 0, "presenc": 0, "na": 0, "caus": 0, "hubgen": 0, "approxim": 0, "usabl": 0, "enter": 0, "quantil": 0, "reproduc": 0, "old": 0, "mani": 0, "least": 0, "achiev": 0, "One": 0, "median": 0, "how": [0, 5], "refer": 0, "qualifi": 0, "procedur": 0, "repeat": 0, "until": 0, "execut": 0, "after": 0, "packag": [0, 1, 4], "start": [0, 5], "manipul": 0, "doe": 0, "forc": 0, "newm": 0, "oldm": 0, "trap": 0, "stop": 0, "dictionati": 0, "attempt": 0, "mimic": 0, "mode": 0, "howev": 0, "fnction": 0, "most": [0, 2], "recent": [0, 2], "olddendro": 0, "copi": 0, "moduleeigengen": 0, "npc": 0, "align": 0, "excludegrei": 0, "subhub": 0, "softpow": 0, "scalevar": 0, "1st": 0, "princip": 0, "dataset": [0, 2], "form": 0, "probe": 0, "latter": 0, "present": 0, "explain": 0, "rest": 0, "proport": 0, "warn": 0, "orient": 0, "undetermin": 0, "left": 0, "improp": 0, "consist": 0, "design": [0, 2], "hub": 0, "substitut": 0, "offend": 0, "clear": 0, "lead": 0, "handl": 0, "aris": 0, "call": 0, "without": 0, "abnorm": 0, "take": 0, "preced": 0, "turn": 0, "singular": 0, "decomposit": 0, "previous": 0, "case": 0, "bit": 0, "faster": 0, "outsid": 0, "let": 0, "slightli": 0, "prepend": 0, "meturquois": 0, "etc": 0, "returnvalidonli": 0, "averageexpr": 0, "ae": 0, "aeturquois": 0, "varexplain": 0, "pc": 0, "exact": 0, "irrespect": 0, "record": 0, "validm": 0, "valid": 0, "invalid": 0, "definit": 0, "validcolor": 0, "signal": 0, "correctli": 0, "allpc": 0, "ispc": 0, "ishub": 0, "valida": 0, "allaeok": 0, "impli": 0, "module_trait_relationships_heatmap": 0, "figsiz": 0, "traitrelationship": 0, "topic": 0, "would": 0, "multisetm": 0, "universalcolor": 0, "restrict": 0, "subset": 0, "whichev": 0, "appli": 0, "spirit": 0, "orderm": 0, "orderbi": 0, "well": 0, "picksoftthreshold": 0, "dataisexpr": 0, "powervector": 0, "nbreak": 0, "blocksiz": 0, "morenetworkconcept": 0, "gcinterv": 0, "interpret": 0, "bin": 0, "histogram": 0, "broken": 0, "print": 0, "verbos": 0, "memori": 0, "problem": 0, "decreas": 0, "concept": 0, "densiti": 0, "heterogen": 0, "central": 0, "depend": 0, "For": 0, "dong": 0, "2008": 0, "plo": 0, "comp": 0, "biol": 0, "interv": 0, "garbag": 0, "never": 0, "powerestim": 0, "estim": 0, "lowest": 0, "exce": 0, "conect": 0, "datout": 0, "adjust": 0, "linear": 0, "coeffici": 0, "complic": 0, "model": 0, "plotmoduleeigengen": 0, "replacemiss": 0, "replacewith": 0, "item": 0, "look": 0, "request_ppi": 0, "partner": 0, "request_ppi_imag": 0, "request_url": 0, "version": [0, 3], "link": 0, "direct": 0, "webpag": 0, "url": 0, "request_ppi_subset": 0, "tsv": 0, "header": 0, "interaction_partn": 0, "our": [0, 1], "runwgcna": 0, "savewgcna": 0, "current": 0, "pickl": 0, "scalefreefitindex": 0, "k": 0, "statist": 0, "setmetadatacolor": 0, "col": 0, "cmap": 0, "pallet": 0, "softconnect": 0, "1500": 0, "construct": 0, "sum": 0, "low": 0, "sai": 0, "ineffici": 0, "while": 0, "out": 0, "physic": 0, "slow": 0, "down": 0, "chosen": 0, "doubl": 0, "top_n_hub_gen": 0, "n": 0, "top": 0, "hun": 0, "ad": 0, "comparison": 0, "genemodul": 0, "anoth": [0, 2], "marker": [0, 2, 5], "jaccard_similar": 0, "jaccard": 0, "common": 0, "calculatefract": 0, "netwrok": 0, "calculatejaccardsimilar": 0, "calculatepvalu": 0, "comparenetwork": 0, "list1": 0, "list2": 0, "plotbubblecomparison": 0, "bubble_s": 0, "cutoff": 0, "01": 0, "order1": 0, "order2": 0, "plot_show": 0, "plot_format": 0, "png": 0, "bubble_comparison": 0, "bubbl": 0, "signific": 0, "tick": 0, "pywgcna1": 0, "map": 0, "pywgcna2": 0, "plotheatmapcomparison": 0, "row_clust": 0, "col_clust": 0, "heatmap_comparison": 0, "plotjaccardsimilar": 0, "savecomparison": 0, "util": 0, "server": 0, "comparesinglecel": 0, "sc": 0, "cell": [0, 2, 5], "experi": 0, "getgenelist": 0, "mmusculus_gene_ensembl": 0, "attribut": 0, "ensembl_gene_id": 0, "external_gene_nam": 0, "gene_biotyp": 0, "gene_id": 0, "gene_nam": 0, "go_id": 0, "server_domain": 0, "ensembl": 0, "biomart": 0, "hsapiens_gene_ensembl": 0, "bioconductor": 0, "riken": 0, "jp": 0, "bioc": 0, "vignett": 0, "inst": 0, "doc": 0, "pull": 0, "uswest": 0, "asia": 0, "extract": 0, "relat": [0, 2], "getgenelistgoid": 0, "goid": 0, "0003700": 0, "inforamt": 0, "readcomparison": 0, "readwgcna": 0, "pleas": 1, "cite": 1, "paper": 1, "rezai": 1, "narg": 1, "fairli": 1, "rees": 1, "ali": 1, "mortazavi": 1, "python": [1, 3], "biorxiv": 1, "2022": 1, "highli": 2, "summar": 2, "methodolog": 2, "github": 2, "page": 2, "instal": 2, "pypi": 2, "recommend": 2, "commit": 2, "tutori": 2, "suggest": 2, "citat": 2, "api": 2, "document": 2, "search": 2, "To": 3, "requir": 3, "releas": 3, "pip": 3, "git": 3, "clone": 3, "repositori": 3, "unfamiliar": 4, "refrenc": 4, "public": 4, "variou": 4, "featur": 4, "program": 4, "languag": 4, "clean": 5, "pre": 5, "quick": 5, "load": 5, "access": 5, "three": 5, "shown": 5, "recov": 5}, "objects": {"PyWGCNA": [[0, 0, 0, "-", "comparison"], [0, 0, 0, "-", "geneExp"], [0, 0, 0, "-", "utils"], [0, 0, 0, "-", "wgcna"]], "PyWGCNA.comparison": [[0, 1, 1, "", "Comparison"]], "PyWGCNA.comparison.Comparison": [[0, 2, 1, "", "calculateFraction"], [0, 2, 1, "", "calculateJaccardSimilarity"], [0, 2, 1, "", "calculatePvalue"], [0, 2, 1, "", "compareNetworks"], [0, 2, 1, "", "jaccard"], [0, 2, 1, "", "plotBubbleComparison"], [0, 2, 1, "", "plotHeatmapComparison"], [0, 2, 1, "", "plotJaccardSimilarity"], [0, 2, 1, "", "saveComparison"]], "PyWGCNA.geneExp": [[0, 1, 1, "", "GeneExp"]], "PyWGCNA.geneExp.GeneExp": [[0, 2, 1, "", "updateGeneInfo"], [0, 2, 1, "", "updateSampleInfo"]], "PyWGCNA.utils": [[0, 3, 1, "", "compareNetworks"], [0, 3, 1, "", "compareSingleCell"], [0, 3, 1, "", "getGeneList"], [0, 3, 1, "", "getGeneListGOid"], [0, 3, 1, "", "readComparison"], [0, 3, 1, "", "readWGCNA"]], "PyWGCNA.wgcna": [[0, 1, 1, "", "WGCNA"]], "PyWGCNA.wgcna.WGCNA": [[0, 2, 1, "", "CalculateSignedKME"], [0, 2, 1, "", "CoexpressionModulePlot"], [0, 2, 1, "", "PPI_network"], [0, 2, 1, "", "TOMsimilarity"], [0, 2, 1, "", "adjacency"], [0, 2, 1, "", "analyseWGCNA"], [0, 2, 1, "", "barplotModuleEigenGene"], [0, 2, 1, "", "calBlockSize"], [0, 2, 1, "", "checkAdjMat"], [0, 2, 1, "", "checkAndScaleWeights"], [0, 2, 1, "", "checkSets"], [0, 2, 1, "", "checkSimilarity"], [0, 2, 1, "", "consensusMEDissimilarityMajor"], [0, 2, 1, "", "consensusOrderMEs"], [0, 2, 1, "", "cutree"], [0, 2, 1, "", "cutreeHybrid"], [0, 2, 1, "", "findModules"], [0, 2, 1, "", "fixDataStructure"], [0, 2, 1, "", "functional_enrichment_analysis"], [0, 2, 1, "", "getDatTraits"], [0, 2, 1, "", "getGeneModule"], [0, 2, 1, "", "getModuleName"], [0, 2, 1, "", "getModulesGene"], [0, 2, 1, "", "goodGenesFun"], [0, 2, 1, "", "goodSamplesFun"], [0, 2, 1, "", "goodSamplesGenes"], [0, 2, 1, "", "hclust"], [0, 2, 1, "", "intramodularConnectivity"], [0, 2, 1, "", "labels2colors"], [0, 2, 1, "", "mergeCloseModules"], [0, 2, 1, "", "moduleEigengenes"], [0, 2, 1, "", "module_trait_relationships_heatmap"], [0, 2, 1, "", "multiSetMEs"], [0, 2, 1, "", "orderMEs"], [0, 2, 1, "", "pickSoftThreshold"], [0, 2, 1, "", "plotModuleEigenGene"], [0, 2, 1, "", "preprocess"], [0, 2, 1, "", "replaceMissing"], [0, 2, 1, "", "request_PPI"], [0, 2, 1, "", "request_PPI_image"], [0, 2, 1, "", "request_PPI_subset"], [0, 2, 1, "", "runWGCNA"], [0, 2, 1, "", "saveWGCNA"], [0, 2, 1, "", "scaleFreeFitIndex"], [0, 2, 1, "", "setMetadataColor"], [0, 2, 1, "", "softConnectivity"], [0, 2, 1, "", "top_n_hub_genes"], [0, 2, 1, "", "updateGeneInfo"], [0, 2, 1, "", "updateSampleInfo"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "titleterms": {"api": 0, "document": 0, "citat": 1, "pywgcna": 2, "A": 2, "python": 2, "packag": 2, "weight": 2, "gene": 2, "co": 2, "express": 2, "network": 2, "analysi": 2, "indic": 2, "tabl": 2, "instal": 3, "from": 3, "pypi": 3, "recommend": 3, "most": 3, "recent": 3, "commit": 3, "suggest": 4, "read": 4, "tutori": 5}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file