From 3269e7f9e4d52953a967bdf649d251b3e44f2a4d Mon Sep 17 00:00:00 2001 From: Narges Rezaie Date: Sun, 3 Dec 2023 20:04:07 -0800 Subject: [PATCH] update docs --- docs/doctrees/api.doctree | Bin 572641 -> 575280 bytes docs/doctrees/environment.pickle | Bin 272007 -> 272563 bytes docs/html/_modules/PyWGCNA/utils.html | 4 ++- docs/html/_modules/PyWGCNA/wgcna.html | 38 ++++++++++++++++---------- docs/html/api.html | 6 ++-- docs/html/searchindex.js | 2 +- setup.py | 2 +- 7 files changed, 32 insertions(+), 20 deletions(-) diff --git a/docs/doctrees/api.doctree b/docs/doctrees/api.doctree index b8ec257437b8c6c1d67ad233c1695f1b934701b0..0c0d166c4d3318733d96b2cd7f63ce534d44bf0a 100644 GIT binary patch delta 48059 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 diff --git a/docs/doctrees/environment.pickle b/docs/doctrees/environment.pickle index a980f33693e064c3421bf248305c17568c622163..7bea5412d4fe7d004e86e9bb27486e3dc43bccf1 100644 GIT binary patch delta 4085 zcmb_fdr*|u6=(N;Ja-paL4<{c4}^d(d^D!M10n*udz3g_q*GBAt^MGG#V~g7j1VnDfb5hg3Ycf!GO`{Z*Eq6s?xN}tH@1u zS935BuliND*DgDK!2psy_FzD7cllJ=>6BHw+ZFnvARE&8*X!nSxFA-6u0@HqhgBd`Lm;PihKV#+&X_%EX5rN7UIQa)%e3D-8iWv4u7>a z0q3o&#akBF;ndRQIB@Sw;8)uEEQS8}OE8Rk&;wi63Nf zeRpUyuWvw`l~Ub)UwP@ql3nioig&+VIZ)(rHRFpVTmQ$1X|=w=$N!N(t@d|^MtAEw zLc% z+1S!pi{IathtDpqW^;EDbASIe@SdpWCqx$|US8UO^QG9hV_5*bt^Z z=(sYC`_nY;FOyuTW9OF|sKUYBqnTz}x*b7g4g)P3476e}RO0fEs%#ooAB(Dwsr50f zKBm+MIww17VH;x(eIMxBLuD~+Tgq|&;SBt`oD=6*6dM&)=&;}mhZcgy%|nZT&hIP( zy06m$^i1cyK)>uP0lKzp4bTU>ih;h|W#L!~KHOD+I~0Rq5(^@7wBU1{1^5F+KjoqC za0Rz;;f7;$E!t44sJ`H&8BRJ<3cz(oYPi|~e5I!VcO8kxhL-p#n138u$=5rWuJ+ziNy;OT| z?^d8M_tJ`f)w`P8oMvfyJTs?kx*jeEjbA>zmTR1acna|2`({k5@Xu+!k9zgfgs)Ms zN4>fkyXsOAYbN08iTv#}s20G^BG~hkQOZn0z z7Q%0ir*ifRE9^fuH86J3;2h2-F}8KEfV0VreSYvR z&ZaWv8Az34IU0Umc>B_Zw3MfBlOJBVl6xT zaOA%IIQ|069%1Mef<(OFD7kB8%NHVwfgWY>DuM!YeA^yYO=dX8xvk`)}CIKPzuLv}W3XMvHB4AB|Gq(K`-nnU559oqYbNz5l` zK8O>;&+5<`4O#pd$|W72p&YW$ie{0sW|U1{eHSeyGqO-J8A;Q`l4=8bk&wTk`J^xr zRpBT8m4u(V5JOHRq9k(5fC|Z5|3R7IR}+zGC2n{xC;Vvz(xD$LL9v~!2V`%vZ>6|N zZBe{ptI~eJ?QIf4=5JG6st;z0=#hOsrAbsSI`s)&Ag`gxu0@W>OJeTwX9 zFH&4yyRF4rI9J?jciHIcE$&1*eCuD-2F4Hwm*U*An`b)!XCzMe)pdr$^x=s^a&=lX2Qt;e40@!<@CcogLd z$Mw<=iE#|&#{O6@{SGY11V$F<*U9z*?r$oG4$eIwEqp=VKMX|M( zG&v+$jR2U4oTV|DB3#4^Q{x|C3%L+NnLOHCFQ5WG^9-Ym3KoE#2VnE7UIo4>cLv2} z743Vx_NK^6BunVmCdu98cPj9Sw~z-;Av3#-`Icu+Luppj^|D&$mF@IBU?CrzLM9%> z*a(_!W)4$$5TF`CEmvGL7_wv>!EHvY<0u1$=5b`6b!XHqHmBc5D?xrVj`Bg{?D!H`Om76ORsl*tq9r@aQ6$wE3N?9V#W2vEX)}M*N`wZL<5}bPiB5ip=TEZ4!^u z<5fIfw@vXen~SGW#Mi%lR6+7Xd0^vV0D+QA)0 zS&&_S7{RSheg*@NOgf3uMP?PLpx@IZs|u}NrE9O7Ba%->kx63-=e&sKZRU1w#t9+- zc@l&LFg%eUz{iuE<-^qkfxj67*|@qthgVL-7u$1Ud4M9WJ~%l~$JPP5Ggv1q)Vx8? z>4YV?ek3LQ8B7w%QnNNW-D!6z3q)saB1(4Kt9#ortWo0LC^ z#PB(jKoU@zbuQVSFPP9m>l$)@zL1$&V%-7p5~E zUr4Wf&H7Gnke%NdHg}r`?&gjBXwrS7wKhh?wQ!?4l~Tp&j4Vutw~$4538{sA)95et WQif*txm^+ccq*OTMbdVcVEQjfL@uNN delta 3774 zcmbtXdr(x@8Rzb~fUvu~NoBF7&)0x!xNSkIRX-%9qZPRGSe&?J8WHPOPI6L#* z^F7Y*d!BRm`ftXxUyJDt`MjZ4d#(Dq&nwqh-KziJIT@tfL_$Ie=YF*GpWKdgLY zD<0;q#@Gsnxc4+3+oEA^n!#2y%n$;vD6sM3x(BtdaiIow{E4VSAv&Sv?TC7ujE zSSDr-Ps2=j4k#>w%d6&LndH@T@|i)m?Jnkpjo{|pw)-QvKaSu&9pwDmRzH@o3R~9n zrlqset@82h_+UlD2dfx9ilA^?Nd^n6lSkFb%{sYNCpYRuo3q=>v5jHde}J@L`@%5Z zmO|LKBNaZhj2&gm3l9m&wVB}B_Q`1RXnP*gNzDt9ZfGt>dZGChq>r2DA}wf{jr5I{ zIY=+I6bmdBcC_TcHdU`5#KMSd^>Dd42kxo5VGo@O?mUkhq~Lr|)HPuiZOeSlr=}{C01mVDIz7CU{w4jo$AgwRrQ9 z9`=?Z{ldEf>HIepr29F&_a>{w_1a(VRWi{XM}Za`ubvu?VQ!&!)F{e>&3o{ptMV z*ggvj38}BDuj+LBcKB@5N8#u$MS>^7|IYp?8h+~Wto{FU_zg@&%!$6S&3_stg|z#Y ziVe265Xp=`r9Yet`Smv>{BbfD@|$o-7!k>Z{8AheHb!tEyVZv=H^nfa$K&ya@s{J; zUJD=k#v4wc+3=mixZS=cCOF}bICwAxBR$%~YH+b91L>Wfi5lOxtr4dK5vQf=t7-Pv zQbK=}rZ1GQ4n=A5=<3lLEiH)B)C9K1Ym$Z(lV~H+j0$|2qFF!&jdN(PQ4>Z}(`0?% zV7lhy%UXA%(`a!zReNnNEv?k7qP>-xbm|I7S%HU@n)8I%9qz!%Rhs2JfqWgAEd{RY zNtOiP+)koB(PR`&jV22G^q;YC{=Mz9!+9k+~?_mKSYzbneA6@E7toiJUr*Cy&Zf88$&2)O2Z^Uy9VDCnEmlgQ866~*Ztfrx0;sq% zPIK>#K+7qj4U@j5-ZLaaejKR~dKy=gLbXbgw%zBA=YI=~b*fu&)Os4!rb5+@2kp<; zWFvuN5`GCsUOtGvr}WBN#@(7mTsa_EM$WQsgNr?}{ev#4WN`M#p-QVx>84+uCF8;m=#*=yq+0@HToi}Dp;MkP^JFM%4tkXIh`QcS za^(qnWh142k{dr#FaIQ?J&npId8FEN--Bo(>v%U}`*Wmx|5gvbd*Z zMVr^UthK12bNWfL08E7It-)nBJhYBa8?g@uWP!z9;j&oS%gsbD_7j7sQP&xgl+IoJ zk6AL&=l~IyvNs-1w?1k2p$X>ePye#*i@>?q;c;i^?#!_p*J(-FkWI7`w~ zco;Fl)ag>4E=P^p#B=}Ad6GI}DqQLY4}OnS<8-i4KRHjvNTx#r1g|2RIY1IpIaaWr zO_q%+M-`dUGw+jBv}+h3cz@A7_z+1=I!97Q)YapxwYXJwJ{Q^7Ik+RfC-7u|OcXC6 zZyIgU$?@=HV}u3+Db>j@Am&z`jIRoML_99(gB0{Pmx5?;xySwr;eA6fd^?aja-pr&c#y|UE^qUT3l+WI2c$XcACvE zm}j9fHmEGe&$I@0zS__bRL?P2pjwNA#ZoGSource code for PyWGCNA.utils
 import pickle
 import os
 import biomart
+import pandas as pd
 import requests
 import matplotlib.pyplot as plt
 import networkx as nx
@@ -230,10 +231,11 @@ 

Source code for PyWGCNA.utils

     # Store the data in a dict
     for line in data.splitlines():
         line = line.split('\t')
+        tmp = pd.DataFrame(line, index=attributes).T
         dict = {}
         for i in range(len(attributes)):
             dict[attributes[i]] = line[i]
-        geneInfo = geneInfo.append(dict, ignore_index=True)
+        geneInfo = pd.concat([geneInfo, tmp], ignore_index=True)
 
     geneInfo.index = geneInfo[attributes[0]]
     geneInfo.drop(attributes[0], axis=1, inplace=True)
diff --git a/docs/html/_modules/PyWGCNA/wgcna.html b/docs/html/_modules/PyWGCNA/wgcna.html
index b07197c..1ee4ac1 100644
--- a/docs/html/_modules/PyWGCNA/wgcna.html
+++ b/docs/html/_modules/PyWGCNA/wgcna.html
@@ -1848,7 +1848,7 @@ 

Source code for PyWGCNA.wgcna

                                     useObjects = ColorsX in np.unique(labelsOnBranch)
                                     DistSClustClust = distM.iloc[InCluster, useObjects]
                                     MeanDist = DistSClustClust.mean(axis=0)
-                                    useColorsFac = pd.Categorical(ColorsX[useObjects])
+                                    useColorsFac = ColorsX[useObjects]#pd.Categorical(ColorsX[useObjects])
                                     MeanDist = pd.DataFrame({'MeanDist': MeanDist, 'useColorsFac': useColorsFac})
                                     MeanMeanDist = MeanDist.groupby(
                                         'useColorsFac').mean()  # tapply(MeanDist, useColorsFac, mean)
@@ -1867,7 +1867,7 @@ 

Source code for PyWGCNA.wgcna

                                 InCluster = np.where(SmallLabels == sclust)[0].tolist()
                                 DistSClustClust = distM.iloc[InCluster, useObjects]
                                 MeanDist = DistSClustClust.mean(axis=0)
-                                useColorsFac = pd.Categorical(ColorsX[useObjects])
+                                useColorsFac = ColorsX[useObjects]#pd.Categorical(ColorsX[useObjects])
                                 MeanDist = pd.DataFrame({'MeanDist': MeanDist, 'useColorsFac': useColorsFac})
                                 MeanMeanDist = MeanDist.groupby(
                                     'useColorsFac').mean()  # tapply(MeanDist, useColorsFac, mean)
@@ -1889,7 +1889,7 @@ 

Source code for PyWGCNA.wgcna

                             basicOnBranch = branch_basicClusters[onBr - 1]
                             labelsOnBranch = branchLabels[basicOnBranch]
                             useObjects = ColorsX in np.unique(labelsOnBranch)
-                            useColorsFac = pd.Categorical(ColorsX[useObjects])
+                            useColorsFac = ColorsX[useObjects]#pd.Categorical(ColorsX[useObjects])
                             UnassdToClustDist = distM.iloc[useObjects, obj].groupby(
                                 'useColorsFac').mean()  # tapply(distM[useObjects, obj], useColorsFac, mean)
                             nearest = UnassdToClustDist.idxmin().astype(int) - 1
@@ -1901,7 +1901,7 @@ 

Source code for PyWGCNA.wgcna

                                 nPAMed = nPAMed + 1
                     else:
                         useObjects = np.where(ColorsX != 0)[0].tolist()
-                        useColorsFac = pd.Categorical(ColorsX[useObjects])
+                        useColorsFac = ColorsX[useObjects]#pd.Categorical(ColorsX[useObjects])
                         tmp = pd.DataFrame(distM.iloc[useObjects, Unlabeled])
                         tmp['group'] = useColorsFac
                         UnassdToClustDist = tmp.groupby(
@@ -2107,9 +2107,9 @@ 

Source code for PyWGCNA.wgcna

                 u = u[:, 0:min(n, p, nPC)]
                 v = v[0:min(n, p, nPC), :]
                 tmp = datModule.copy()
-                tmp = tmp.append(pd.DataFrame(v[0:min(n, p, nVarExplained), :],
-                                              columns=tmp.columns.tolist()),
-                                 ignore_index=True)
+                tmp = pd.concat([tmp, pd.DataFrame(v[0:min(n, p, nVarExplained), :],
+                                                   columns=tmp.columns.tolist())],
+                                ignore_index=True)
                 veMat = pd.DataFrame(np.corrcoef(tmp.values)).iloc[:-1, -1].T
                 varExpl.iloc[0:min(n, p, nVarExplained), i] = (veMat ** 2).mean(axis=0)
                 pc = v[0].tolist()
@@ -2127,7 +2127,7 @@ 

Source code for PyWGCNA.wgcna

                         scaledExpr = pd.DataFrame(scale(datModule.T).T, index=datModule.index,
                                                   columns=datModule.columns)
                         covEx = np.cov(scaledExpr)
-                        covEx[not np.isfinite(covEx)] = 0
+                        covEx[~ np.isfinite(covEx)] = 0
                         modAdj = np.abs(covEx) ** softPower
                         kIM = (modAdj.mean(axis=0)) ** 3
                         if np.max(kIM) > 1:
@@ -2870,6 +2870,7 @@ 

Source code for PyWGCNA.wgcna

 
 
[docs] def module_trait_relationships_heatmap(self, metaData, + figsize=None, show=True, file_name='module-traitRelationships'): """ @@ -2877,6 +2878,8 @@

Source code for PyWGCNA.wgcna

 
         :param metaData: traits you would like to see the relationship with topics (must be column name of datExpr.obs)
         :type metaData: list
+        :param figsize: indicate the size of plot
+        :type figsize: tuple of float
         :param show: indicate if you want to show the plot or not (default: True)
         :type show: bool
         :param file_name: name and path of the plot use for save (default: topic-traitRelationships)
@@ -2884,8 +2887,10 @@ 

Source code for PyWGCNA.wgcna

         """
         datTraits = self.getDatTraits(metaData)
 
-        fig, ax = plt.subplots(figsize=(max(20, int(self.moduleTraitPvalue.shape[0] * 1.5)),
-                                        self.moduleTraitPvalue.shape[1] * 1.5), facecolor='white')
+        if figsize is None:
+            figsize = (max(20, int(self.moduleTraitPvalue.shape[0] * 1.5)),
+                       self.moduleTraitPvalue.shape[1] * 1.5)
+        fig, ax = plt.subplots(figsize=figsize, facecolor='white')
         # names
         xlabels = []
         for label in self.MEs.columns:
@@ -3217,7 +3222,7 @@ 

Source code for PyWGCNA.wgcna

                 else:
                     return axs
-
[docs] def functional_enrichment_analysis(self, type, moduleName, sets=None, p_value=1, file_name=None): +
[docs] def functional_enrichment_analysis(self, type, moduleName, sets=None, p_value=1, file_name=None, **kwargs): """ Doing functional enrichment analysis including GO, KEGG and REACTOME @@ -3231,6 +3236,8 @@

Source code for PyWGCNA.wgcna

         :type p_value: float
         :param file_name: name of the file you want to use to save plot (default is moduleName)
         :type file_name: str
+        :param kwargs: Other keyword arguments are passed through to the underlying gseapy.enrichr() finction
+        :type kwargs: key, value pairings
         """
         if type not in ["GO", "KEGG", "REACTOME"]:
             sys.exit("Type is not valid! it should be one of them GO, KEGG, REACTOME")
@@ -3261,7 +3268,8 @@ 

Source code for PyWGCNA.wgcna

                                  gene_sets=sets,
                                  organism=self.species,
                                  outdir=f"{self.outputPath}figures/{type}/{file_name}",
-                                 cutoff=p_value)
+                                 cutoff=p_value,
+                                 **kwargs)
                 dotplot(enr.res2d,
                         title=f"Gene ontology in {moduleName} module",
                         cmap='viridis_r',
@@ -3516,9 +3524,9 @@ 

Source code for PyWGCNA.wgcna

 
         adj = self.TOM.loc[genes, genes]
         adj[adj < minTOM] = 0
-        adj = adj.where(np.triu(np.ones(adj.shape)).astype(bool))
-        adj = adj.where(adj.values != np.diag(adj), 0,
-                        adj.where(adj.values != np.flipud(adj).diagonal(0), 0, inplace=True))
+        adj.where(np.triu(np.ones(adj.shape)).astype(bool), inplace=True)
+        adj.where(adj.values != np.diag(adj), 0, inplace=True)
+        adj.where(adj.values != np.flipud(adj).diagonal(0), 0, inplace=True)
         adj = adj.stack().nlargest(numConnections)
 
         net = Network()
diff --git a/docs/html/api.html b/docs/html/api.html
index 8eaa9a2..0278daf 100644
--- a/docs/html/api.html
+++ b/docs/html/api.html
@@ -574,7 +574,7 @@
 
 
-functional_enrichment_analysis(type, moduleName, sets=None, p_value=1, file_name=None)[source]
+functional_enrichment_analysis(type, moduleName, sets=None, p_value=1, file_name=None, **kwargs)[source]

Doing functional enrichment analysis including GO, KEGG and REACTOME

Parameters
@@ -584,6 +584,7 @@
  • sets (str, list, tuple) – str, list, tuple of Enrichr Library name(s). or custom defined gene_sets (dict, or gmt file) (you can add any Enrichr Libraries from here: https://maayanlab.cloud/Enrichr/#stats) only need to fill if the type is GO or KEGG

  • p_value (float) – Defines the pValue threshold. (default: 0.05)

  • file_name (str) – name of the file you want to use to save plot (default is moduleName)

  • +
  • kwargs (key, value pairings) – Other keyword arguments are passed through to the underlying gseapy.enrichr() finction

  • @@ -875,12 +876,13 @@
    -module_trait_relationships_heatmap(metaData, show=True, file_name='module-traitRelationships')[source]
    +module_trait_relationships_heatmap(metaData, figsize=None, show=True, file_name='module-traitRelationships')[source]

    plot topic-trait relationship heatmap

    Parameters
    • metaData (list) – traits you would like to see the relationship with topics (must be column name of datExpr.obs)

    • +
    • figsize (tuple of float) – indicate the size of plot

    • show (bool) – indicate if you want to show the plot or not (default: True)

    • file_name (str) – name and path of the plot use for save (default: topic-traitRelationships)

    diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js index 1177b6a..5266ef2 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, "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, "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, "figsiz": 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, "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 diff --git a/setup.py b/setup.py index 37367b9..c38c926 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ author='Narges Rezaie', # your name author_email='nargesrezaie80@gmail.com', # your email url='https://github.com/mortazavilab/PyWGCNA', # url to your git repo - download_url='https://github.com/mortazavilab/PyWGCNA/archive/refs/tags/v1.20.4.tar.gz', # link to the tar.gz file associated with this release + download_url='https://github.com/mortazavilab/PyWGCNA/archive/refs/tags/v2.0.0.zip', # link to the tar.gz file associated with this release keywords=['PyWGCNA', 'WGCNA', 'bulk', 'gene clustering', 'network analysis'], # install_requires=[ # these can also include >, <, == to enforce version compatibility 'pandas>=2.1.0', # make sure the packages you put here are those NOT included in the