[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M75F46F48DBCBGEYQHTFN528":3,"skill-same:01M75F46F48DBCBGEYQHTFN528":49},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":27,"commitSha":28,"skillDirectory":29,"forksCount":30,"repositoryHtmlUrl":31,"repositoryHomepageUrl":31,"ownerHtmlUrl":32,"ownerBlogUrl":6,"ownerDescription":33,"updatedAt":34,"install":35,"resources":48},"01M75F46F48DBCBGEYQHTFN528","omics-integration",null,"Multi-omics data integration using MOFA+, DIABLO, and MixOmics for combining genomics, transcriptomics, proteomics, metabolomics, and epigenomics datasets. Use for identifying shared variation across omics layers, building integrative biomarker models, and discovering cross-modal biological patterns. Best for paired multi-omics cohort studies.","Lord1Egypt\u002Fai-skillforge","Lord1Egypt","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F99746359?v=4","01M7592YDNT0XK9WJ0T2MQVPDN","Mohamed Mounir Ali AL Keshita","01M7597M9CBBVAPX1CYE1KFTSM",2,"MIT","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fai-skillforge\u002Fblob\u002Fmain\u002Fskills\u002Fgemini\u002Fomics-integration\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: omics-integration\ndescription: Multi-omics data integration using MOFA+, DIABLO, and MixOmics for combining genomics, transcriptomics, proteomics, metabolomics, and epigenomics datasets. Use for identifying shared variation across omics layers, building integrative biomarker models, and discovering cross-modal biological patterns. Best for paired multi-omics cohort studies.\nallowed-tools: Read Write Edit Bash\nlicense: MIT license\nmetadata:\n    skill-author: Lord1Egypt\n---\n\n# Multi-Omics Integration\n\n## Overview\n\nMulti-omics integration combines data from multiple molecular measurement platforms (RNA-seq, proteomics, ATAC-seq, metabolomics, methylation) to identify shared biological variation and cross-modal regulatory relationships. This skill covers MOFA+ for unsupervised factor analysis, MixOmics\u002FDIABLO for supervised integration, and network-based approaches.\n\n## When to Use This Skill\n\n- Integrating paired multi-omics datasets (same samples across platforms)\n- Identifying latent factors that explain variation across omics layers\n- Building multi-omics classifiers or biomarker panels\n- Finding correlated features across genomics, transcriptomics, and proteomics\n- Studying regulatory cascades (DNA → RNA → protein → metabolite)\n- Visualizing multi-omics data in low-dimensional space\n- Performing network-based multi-omics enrichment\n\n## Quick Start\n\n### MOFA+ (Multi-Omics Factor Analysis)\n\n```python\nfrom mofapy2.run.entry_point import entry_point\nimport pandas as pd\nimport numpy as np\n\n# Prepare multi-omics data as list of DataFrames\n# Each DataFrame: samples × features, one per omics layer\nrna_data = pd.read_csv(\"rna_normalized.csv\", index_col=0)      # 100 samples × 20000 genes\nprotein_data = pd.read_csv(\"protein_lfq.csv\", index_col=0)     # 100 samples × 5000 proteins\nmetabolite_data = pd.read_csv(\"metabolites.csv\", index_col=0)  # 100 samples × 1000 metabolites\n\n# Align samples\ncommon_samples = rna_data.index.intersection(protein_data.index).intersection(metabolite_data.index)\nrna_data = rna_data.loc[common_samples]\nprotein_data = protein_data.loc[common_samples]\nmetabolite_data = metabolite_data.loc[common_samples]\n\nprint(f\"Shared samples: {len(common_samples)}\")\nprint(f\"RNA: {rna_data.shape[1]} features\")\nprint(f\"Protein: {protein_data.shape[1]} features\")\nprint(f\"Metabolite: {metabolite_data.shape[1]} features\")\n\n# Prepare MOFA+ input\nent = entry_point()\nent.set_data_options(scale_groups=False, scale_views=False)\nent.set_data_df(\n    pd.concat([rna_data.T, protein_data.T, metabolite_data.T]),\n    likelihoods=[\"gaussian\", \"gaussian\", \"gaussian\"],\n)\nent.set_model_options(factors=15, spikeslab_weights=True, ard_factors=True, ard_weights=True)\nent.set_train_options(iter=1000, convergence_mode=\"fast\", seed=42, gpu_mode=False)\n\nent.build()\nent.run()\nent.save(\"mofa_model.hdf5\")\nprint(\"MOFA+ training complete.\")\n```\n\n### Loading and Interpreting MOFA+ Results\n\n```python\nimport mofapy2\nfrom mofapy2.core.entry_point import entry_point\nimport numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\n# Load trained model\nmodel = entry_point()\nmodel.load_hdf5(\"mofa_model.hdf5\")\n\n# Variance explained per factor per view\nr2 = model.calculate_variance_explained()\nfor view_name, r2_vals in zip(model.data_opts[\"views\"], r2[\"r2_per_factor\"]):\n    print(f\"\\n{view_name} — variance explained per factor:\")\n    for i, r2_val in enumerate(r2_vals):\n        print(f\"  Factor {i+1}: {r2_val*100:.1f}%\")\n\n# Extract factor values (latent space)\nZ = model.nodes[\"Z\"].getExpectation()  # samples × factors\nfactors_df = pd.DataFrame(Z, index=common_samples, columns=[f\"Factor{i+1}\" for i in range(Z.shape[1])])\n\n# Visualize factor 1 vs factor 2 colored by clinical variable\nsample_meta = pd.read_csv(\"sample_metadata.csv\", index_col=0)\nfig, ax = plt.subplots(figsize=(8, 6))\nscatter = ax.scatter(\n    factors_df[\"Factor1\"],\n    factors_df[\"Factor2\"],\n    c=pd.Categorical(sample_meta.loc[common_samples, \"condition\"]).codes,\n    cmap=\"Set1\",\n    s=60,\n    alpha=0.8,\n)\nax.set_xlabel(\"Factor 1\", fontsize=12)\nax.set_ylabel(\"Factor 2\", fontsize=12)\nax.set_title(\"MOFA+ Latent Space\", fontsize=14)\nplt.tight_layout()\nplt.savefig(\"mofa_factors.png\", dpi=150)\n```\n\n### DIABLO (Supervised Multi-Omics Integration)\n\n```python\n# DIABLO via mixOmics (R-based, called from Python)\nimport subprocess\nimport pandas as pd\nimport numpy as np\n\n# Write data files for R\nrna_data.to_csv(\"rna_for_diablo.csv\")\nprotein_data.to_csv(\"protein_for_diablo.csv\")\nmetabolite_data.to_csv(\"metabolite_for_diablo.csv\")\nsample_meta[[\"condition\"]].to_csv(\"labels_for_diablo.csv\")\n\n# R script for DIABLO\nr_script = \"\"\"\nlibrary(mixOmics)\n\n# Load data\nX_rna \u003C- as.matrix(read.csv(\"rna_for_diablo.csv\", row.names=1))\nX_protein \u003C- as.matrix(read.csv(\"protein_for_diablo.csv\", row.names=1))\nX_metabolite \u003C- as.matrix(read.csv(\"metabolite_for_diablo.csv\", row.names=1))\nY \u003C- read.csv(\"labels_for_diablo.csv\", row.names=1)[,1]\n\nX \u003C- list(RNA = X_rna, Protein = X_protein, Metabolite = X_metabolite)\n\n# Design matrix (strength of connection between data blocks)\ndesign \u003C- matrix(0.1, nrow=3, ncol=3, dimnames=list(names(X), names(X)))\ndiag(design) \u003C- 0\n\n# Run DIABLO\ndiablo_res \u003C- block.splsda(X, Y, ncomp=2, design=design)\n\n# Save results\nwrite.csv(diablo_res$variates$RNA, \"diablo_rna_components.csv\")\nwrite.csv(diablo_res$variates$Protein, \"diablo_protein_components.csv\")\nsaveRDS(diablo_res, \"diablo_model.rds\")\ncat(\"DIABLO complete\\\\n\")\n\"\"\"\n\nwith open(\"run_diablo.R\", \"w\") as f:\n    f.write(r_script)\n\nresult = subprocess.run([\"Rscript\", \"run_diablo.R\"], capture_output=True, text=True)\nprint(result.stdout)\n```\n\n### Correlation Network (WGCNA-style)\n\n```python\nimport pandas as pd\nimport numpy as np\nimport networkx as nx\nfrom scipy.stats import pearsonr, spearmanr\nfrom statsmodels.stats.multitest import multipletests\n\ndef build_cross_omics_network(\n    df1: pd.DataFrame,\n    df2: pd.DataFrame,\n    correlation_threshold: float = 0.6,\n    fdr_threshold: float = 0.05,\n    corr_method: str = \"spearman\",\n) -> nx.Graph:\n    \"\"\"Build cross-omics correlation network between two feature matrices.\"\"\"\n    assert df1.index.equals(df2.index), \"Samples must be aligned\"\n\n    edges = []\n    for feat1 in df1.columns[:500]:  # Limit for performance\n        for feat2 in df2.columns[:500]:\n            if corr_method == \"spearman\":\n                r, p = spearmanr(df1[feat1], df2[feat2])\n            else:\n                r, p = pearsonr(df1[feat1], df2[feat2])\n            if abs(r) > correlation_threshold:\n                edges.append({\"feat1\": feat1, \"feat2\": feat2, \"r\": r, \"p\": p})\n\n    edges_df = pd.DataFrame(edges)\n    if len(edges_df) == 0:\n        print(\"No edges found above threshold.\")\n        return nx.Graph()\n\n    _, fdr, _, _ = multipletests(edges_df[\"p\"], method=\"fdr_bh\")\n    edges_df[\"fdr\"] = fdr\n    sig_edges = edges_df[edges_df[\"fdr\"] \u003C fdr_threshold]\n\n    G = nx.Graph()\n    for _, row in sig_edges.iterrows():\n        G.add_edge(row[\"feat1\"], row[\"feat2\"], weight=abs(row[\"r\"]), r=row[\"r\"])\n\n    print(f\"Network: {G.number_of_nodes()} nodes, {G.number_of_edges()} edges\")\n    return G\n\n# Build RNA-Protein correlation network\nrna_protein_net = build_cross_omics_network(\n    rna_data.iloc[:, :200],\n    protein_data.iloc[:, :200],\n    correlation_threshold=0.7,\n)\n```\n\n### SNF — Similarity Network Fusion\n\n```python\n# SNF for patient stratification across omics\nimport numpy as np\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.metrics import pairwise_distances\nfrom scipy.stats import rankdata\n\ndef build_similarity_matrix(data: np.ndarray, K: int = 20, sigma: float = 0.5) -> np.ndarray:\n    \"\"\"Build patient similarity matrix from omics data.\"\"\"\n    scaler = StandardScaler()\n    data_scaled = scaler.fit_transform(data)\n    dist = pairwise_distances(data_scaled, metric=\"euclidean\")\n    # Scaled exponential similarity kernel\n    return np.exp(-dist**2 \u002F (sigma * np.median(dist[dist > 0])))\n\ndef snf_fuse(*matrices, K: int = 20, t: int = 20) -> np.ndarray:\n    \"\"\"Simple Similarity Network Fusion.\"\"\"\n    n = matrices[0].shape[0]\n    W_list = list(matrices)\n\n    # Normalize similarity matrices\n    for i in range(len(W_list)):\n        row_sums = W_list[i].sum(axis=1, keepdims=True)\n        W_list[i] = W_list[i] \u002F (row_sums + 1e-10)\n\n    # Iterative fusion\n    for _ in range(t):\n        W_new = []\n        for i in range(len(W_list)):\n            others = [W_list[j] for j in range(len(W_list)) if j != i]\n            avg_others = np.mean(others, axis=0)\n            W_new.append(W_list[i] @ avg_others @ W_list[i].T)\n        W_list = W_new\n\n    return np.mean(W_list, axis=0)\n\n# Build similarity matrices\nW_rna = build_similarity_matrix(rna_data.values)\nW_protein = build_similarity_matrix(protein_data.values)\nW_metabolite = build_similarity_matrix(metabolite_data.values)\n\n# Fuse\nfused_matrix = snf_fuse(W_rna, W_protein, W_metabolite, K=20, t=20)\nprint(f\"Fused similarity matrix: {fused_matrix.shape}\")\n\n# Cluster patients\nfrom sklearn.cluster import SpectralClustering\nclustering = SpectralClustering(n_clusters=3, affinity=\"precomputed\", random_state=42)\npatient_clusters = clustering.fit_predict(fused_matrix)\nprint(f\"Patient clusters: {pd.Series(patient_clusters).value_counts().to_dict()}\")\n```\n\n## Integration Strategy Guide\n\n| Approach | Method | Use Case |\n|----------|--------|----------|\n| Unsupervised | MOFA+, SNF | Discovery, patient stratification |\n| Supervised | DIABLO, LASSO | Biomarker selection, classification |\n| Network | Correlation, WGCNA | Regulatory networks, hub genes |\n| Dimensionality | UMAP on concatenated | Visualization, clustering |\n| Causal | Mendelian randomization | Causal inference |\n\n## Dependencies\n\n```bash\npip install mofapy2 pandas numpy scipy networkx matplotlib seaborn\npip install scikit-learn statsmodels\n# R for DIABLO\u002FmixOmics:\n# install.packages(\"BiocManager\")\n# BiocManager::install(\"mixOmics\")\n```\n","# Multi-Omics Integration\n\n## Overview\n\nMulti-omics integration combines data from multiple molecular measurement platforms (RNA-seq, proteomics, ATAC-seq, metabolomics, methylation) to identify shared biological variation and cross-modal regulatory relationships. This skill covers MOFA+ for unsupervised factor analysis, MixOmics\u002FDIABLO for supervised integration, and network-based approaches.\n\n## When to Use This Skill\n\n- Integrating paired multi-omics datasets (same samples across platforms)\n- Identifying latent factors that explain variation across omics layers\n- Building multi-omics classifiers or biomarker panels\n- Finding correlated features across genomics, transcriptomics, and proteomics\n- Studying regulatory cascades (DNA → RNA → protein → metabolite)\n- Visualizing multi-omics data in low-dimensional space\n- Performing network-based multi-omics enrichment\n\n## Quick Start\n\n### MOFA+ (Multi-Omics Factor Analysis)\n\n```python\nfrom mofapy2.run.entry_point import entry_point\nimport pandas as pd\nimport numpy as np\n\n# Prepare multi-omics data as list of DataFrames\n# Each DataFrame: samples × features, one per omics layer\nrna_data = pd.read_csv(\"rna_normalized.csv\", index_col=0)      # 100 samples × 20000 genes\nprotein_data = pd.read_csv(\"protein_lfq.csv\", index_col=0)     # 100 samples × 5000 proteins\nmetabolite_data = pd.read_csv(\"metabolites.csv\", index_col=0)  # 100 samples × 1000 metabolites\n\n# Align samples\ncommon_samples = rna_data.index.intersection(protein_data.index).intersection(metabolite_data.index)\nrna_data = rna_data.loc[common_samples]\nprotein_data = protein_data.loc[common_samples]\nmetabolite_data = metabolite_data.loc[common_samples]\n\nprint(f\"Shared samples: {len(common_samples)}\")\nprint(f\"RNA: {rna_data.shape[1]} features\")\nprint(f\"Protein: {protein_data.shape[1]} features\")\nprint(f\"Metabolite: {metabolite_data.shape[1]} features\")\n\n# Prepare MOFA+ input\nent = entry_point()\nent.set_data_options(scale_groups=False, scale_views=False)\nent.set_data_df(\n    pd.concat([rna_data.T, protein_data.T, metabolite_data.T]),\n    likelihoods=[\"gaussian\", \"gaussian\", \"gaussian\"],\n)\nent.set_model_options(factors=15, spikeslab_weights=True, ard_factors=True, ard_weights=True)\nent.set_train_options(iter=1000, convergence_mode=\"fast\", seed=42, gpu_mode=False)\n\nent.build()\nent.run()\nent.save(\"mofa_model.hdf5\")\nprint(\"MOFA+ training complete.\")\n```\n\n### Loading and Interpreting MOFA+ Results\n\n```python\nimport mofapy2\nfrom mofapy2.core.entry_point import entry_point\nimport numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\n# Load trained model\nmodel = entry_point()\nmodel.load_hdf5(\"mofa_model.hdf5\")\n\n# Variance explained per factor per view\nr2 = model.calculate_variance_explained()\nfor view_name, r2_vals in zip(model.data_opts[\"views\"], r2[\"r2_per_factor\"]):\n    print(f\"\\n{view_name} — variance explained per factor:\")\n    for i, r2_val in enumerate(r2_vals):\n        print(f\"  Factor {i+1}: {r2_val*100:.1f}%\")\n\n# Extract factor values (latent space)\nZ = model.nodes[\"Z\"].getExpectation()  # samples × factors\nfactors_df = pd.DataFrame(Z, index=common_samples, columns=[f\"Factor{i+1}\" for i in range(Z.shape[1])])\n\n# Visualize factor 1 vs factor 2 colored by clinical variable\nsample_meta = pd.read_csv(\"sample_metadata.csv\", index_col=0)\nfig, ax = plt.subplots(figsize=(8, 6))\nscatter = ax.scatter(\n    factors_df[\"Factor1\"],\n    factors_df[\"Factor2\"],\n    c=pd.Categorical(sample_meta.loc[common_samples, \"condition\"]).codes,\n    cmap=\"Set1\",\n    s=60,\n    alpha=0.8,\n)\nax.set_xlabel(\"Factor 1\", fontsize=12)\nax.set_ylabel(\"Factor 2\", fontsize=12)\nax.set_title(\"MOFA+ Latent Space\", fontsize=14)\nplt.tight_layout()\nplt.savefig(\"mofa_factors.png\", dpi=150)\n```\n\n### DIABLO (Supervised Multi-Omics Integration)\n\n```python\n# DIABLO via mixOmics (R-based, called from Python)\nimport subprocess\nimport pandas as pd\nimport numpy as np\n\n# Write data files for R\nrna_data.to_csv(\"rna_for_diablo.csv\")\nprotein_data.to_csv(\"protein_for_diablo.csv\")\nmetabolite_data.to_csv(\"metabolite_for_diablo.csv\")\nsample_meta[[\"condition\"]].to_csv(\"labels_for_diablo.csv\")\n\n# R script for DIABLO\nr_script = \"\"\"\nlibrary(mixOmics)\n\n# Load data\nX_rna \u003C- as.matrix(read.csv(\"rna_for_diablo.csv\", row.names=1))\nX_protein \u003C- as.matrix(read.csv(\"protein_for_diablo.csv\", row.names=1))\nX_metabolite \u003C- as.matrix(read.csv(\"metabolite_for_diablo.csv\", row.names=1))\nY \u003C- read.csv(\"labels_for_diablo.csv\", row.names=1)[,1]\n\nX \u003C- list(RNA = X_rna, Protein = X_protein, Metabolite = X_metabolite)\n\n# Design matrix (strength of connection between data blocks)\ndesign \u003C- matrix(0.1, nrow=3, ncol=3, dimnames=list(names(X), names(X)))\ndiag(design) \u003C- 0\n\n# Run DIABLO\ndiablo_res \u003C- block.splsda(X, Y, ncomp=2, design=design)\n\n# Save results\nwrite.csv(diablo_res$variates$RNA, \"diablo_rna_components.csv\")\nwrite.csv(diablo_res$variates$Protein, \"diablo_protein_components.csv\")\nsaveRDS(diablo_res, \"diablo_model.rds\")\ncat(\"DIABLO complete\\\\n\")\n\"\"\"\n\nwith open(\"run_diablo.R\", \"w\") as f:\n    f.write(r_script)\n\nresult = subprocess.run([\"Rscript\", \"run_diablo.R\"], capture_output=True, text=True)\nprint(result.stdout)\n```\n\n### Correlation Network (WGCNA-style)\n\n```python\nimport pandas as pd\nimport numpy as np\nimport networkx as nx\nfrom scipy.stats import pearsonr, spearmanr\nfrom statsmodels.stats.multitest import multipletests\n\ndef build_cross_omics_network(\n    df1: pd.DataFrame,\n    df2: pd.DataFrame,\n    correlation_threshold: float = 0.6,\n    fdr_threshold: float = 0.05,\n    corr_method: str = \"spearman\",\n) -> nx.Graph:\n    \"\"\"Build cross-omics correlation network between two feature matrices.\"\"\"\n    assert df1.index.equals(df2.index), \"Samples must be aligned\"\n\n    edges = []\n    for feat1 in df1.columns[:500]:  # Limit for performance\n        for feat2 in df2.columns[:500]:\n            if corr_method == \"spearman\":\n                r, p = spearmanr(df1[feat1], df2[feat2])\n            else:\n                r, p = pearsonr(df1[feat1], df2[feat2])\n            if abs(r) > correlation_threshold:\n                edges.append({\"feat1\": feat1, \"feat2\": feat2, \"r\": r, \"p\": p})\n\n    edges_df = pd.DataFrame(edges)\n    if len(edges_df) == 0:\n        print(\"No edges found above threshold.\")\n        return nx.Graph()\n\n    _, fdr, _, _ = multipletests(edges_df[\"p\"], method=\"fdr_bh\")\n    edges_df[\"fdr\"] = fdr\n    sig_edges = edges_df[edges_df[\"fdr\"] \u003C fdr_threshold]\n\n    G = nx.Graph()\n    for _, row in sig_edges.iterrows():\n        G.add_edge(row[\"feat1\"], row[\"feat2\"], weight=abs(row[\"r\"]), r=row[\"r\"])\n\n    print(f\"Network: {G.number_of_nodes()} nodes, {G.number_of_edges()} edges\")\n    return G\n\n# Build RNA-Protein correlation network\nrna_protein_net = build_cross_omics_network(\n    rna_data.iloc[:, :200],\n    protein_data.iloc[:, :200],\n    correlation_threshold=0.7,\n)\n```\n\n### SNF — Similarity Network Fusion\n\n```python\n# SNF for patient stratification across omics\nimport numpy as np\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.metrics import pairwise_distances\nfrom scipy.stats import rankdata\n\ndef build_similarity_matrix(data: np.ndarray, K: int = 20, sigma: float = 0.5) -> np.ndarray:\n    \"\"\"Build patient similarity matrix from omics data.\"\"\"\n    scaler = StandardScaler()\n    data_scaled = scaler.fit_transform(data)\n    dist = pairwise_distances(data_scaled, metric=\"euclidean\")\n    # Scaled exponential similarity kernel\n    return np.exp(-dist**2 \u002F (sigma * np.median(dist[dist > 0])))\n\ndef snf_fuse(*matrices, K: int = 20, t: int = 20) -> np.ndarray:\n    \"\"\"Simple Similarity Network Fusion.\"\"\"\n    n = matrices[0].shape[0]\n    W_list = list(matrices)\n\n    # Normalize similarity matrices\n    for i in range(len(W_list)):\n        row_sums = W_list[i].sum(axis=1, keepdims=True)\n        W_list[i] = W_list[i] \u002F (row_sums + 1e-10)\n\n    # Iterative fusion\n    for _ in range(t):\n        W_new = []\n        for i in range(len(W_list)):\n            others = [W_list[j] for j in range(len(W_list)) if j != i]\n            avg_others = np.mean(others, axis=0)\n            W_new.append(W_list[i] @ avg_others @ W_list[i].T)\n        W_list = W_new\n\n    return np.mean(W_list, axis=0)\n\n# Build similarity matrices\nW_rna = build_similarity_matrix(rna_data.values)\nW_protein = build_similarity_matrix(protein_data.values)\nW_metabolite = build_similarity_matrix(metabolite_data.values)\n\n# Fuse\nfused_matrix = snf_fuse(W_rna, W_protein, W_metabolite, K=20, t=20)\nprint(f\"Fused similarity matrix: {fused_matrix.shape}\")\n\n# Cluster patients\nfrom sklearn.cluster import SpectralClustering\nclustering = SpectralClustering(n_clusters=3, affinity=\"precomputed\", random_state=42)\npatient_clusters = clustering.fit_predict(fused_matrix)\nprint(f\"Patient clusters: {pd.Series(patient_clusters).value_counts().to_dict()}\")\n```\n\n## Integration Strategy Guide\n\n| Approach | Method | Use Case |\n|----------|--------|----------|\n| Unsupervised | MOFA+, SNF | Discovery, patient stratification |\n| Supervised | DIABLO, LASSO | Biomarker selection, classification |\n| Network | Correlation, WGCNA | Regulatory networks, hub genes |\n| Dimensionality | UMAP on concatenated | Visualization, clustering |\n| Causal | Mendelian randomization | Causal inference |\n\n## Dependencies\n\n```bash\npip install mofapy2 pandas numpy scipy networkx matplotlib seaborn\npip install scikit-learn statsmodels\n# R for DIABLO\u002FmixOmics:\n# install.packages(\"BiocManager\")\n# BiocManager::install(\"mixOmics\")\n```\n",{"name":5,"license":24,"metadata":25,"description":7,"allowed-tools":26},"MIT license",{"skill-author":9},"Read Write Edit Bash","main","3f88e1b76af67701a6405069a542e21a997d2868","skills\u002Fgemini\u002Fomics-integration",0,"https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fai-skillforge","https:\u002F\u002Fgithub.com\u002FLord1Egypt","Unbreakable. Unstoppable. Unmatched⚡.\r\n Speaker of machine tongues 🤖  | World-builder of decentralized dreams 🌐 | Defender of the digital realm🛡️.","2026-06-05 10:16:24",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add Lord1Egypt\u002Fai-skillforge --skill omics-integration",{"tool":41,"command":42},"bunx","bunx skills add Lord1Egypt\u002Fai-skillforge --skill omics-integration",{"tool":44,"command":45},"pnpm","pnpm dlx skills add Lord1Egypt\u002Fai-skillforge --skill omics-integration","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fai-skillforge\u002Fblob\u002Fmain\u002Fskills\u002Fgemini\u002Fomics-integration\u002FSKILL.md",true,[],[50,57,64,71,78,85],{"skillNo":51,"name":52,"nameZh":6,"description":53,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":54,"categories":55,"keywords":56,"publishedAt":19},"01M75GWTHWA52GYQKS347FF6CD","zarr-python","Chunked N-D arrays for cloud storage. Compressed arrays, parallel I\u002FO, S3\u002FGCS integration, NumPy\u002FDask\u002FXarray compatible, for large-scale scientific computing pipelines.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fai-skillforge\u002Fblob\u002Fmain\u002Fskills\u002Fscientific\u002Fzarr-python\u002FSKILL.md",[],[],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":19},"01M75GW9FBP9NAFBSNVJ23RHSX","what-if-oracle","Run structured What-If scenario analysis with multi-branch possibility exploration. Use this skill when the user asks speculative questions like \"what if...\", \"what would happen if...\", \"what are the possibilities\", \"explore scenarios\", \"scenario analysis\", \"possibility space\", \"what could go wrong\", \"best case \u002F worst case\", \"risk analysis\", \"contingency planning\", \"strategic options\", or any question about uncertain futures. Also trigger when the user faces a fork-in-the-road decision, wants to stress-test an idea, or needs to think through consequences before committing.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fai-skillforge\u002Fblob\u002Fmain\u002Fskills\u002Fscientific\u002Fwhat-if-oracle\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":19},"01M75GW351MZZQ1V7207PDCX5D","venue-templates","Access comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fai-skillforge\u002Fblob\u002Fmain\u002Fskills\u002Fscientific\u002Fvenue-templates\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":19},"01M75GVYGMAZDV2NHWSV6PP6TK","vaex","Use this skill for processing and analyzing large tabular datasets (billions of rows) that exceed available RAM. Vaex excels at out-of-core DataFrame operations, lazy evaluation, fast aggregations, efficient visualization of big data, and machine learning on large datasets. Apply when users need to work with large CSV\u002FHDF5\u002FArrow\u002FParquet files, perform fast statistics on massive datasets, create visualizations of big data, or build ML pipelines that do not fit in memory.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fai-skillforge\u002Fblob\u002Fmain\u002Fskills\u002Fscientific\u002Fvaex\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":19},"01M75GVS0ADH3DZ3QB564EVYC9","usfiscaldata","Query the U.S. Treasury Fiscal Data API for federal financial data including national debt, government spending, revenue, interest rates, exchange rates, and savings bonds. Access 54 datasets and 182 data tables with no API key required. Use when working with U.S. federal fiscal data, national debt tracking (Debt to the Penny), Daily Treasury Statements, Monthly Treasury Statements, Treasury securities auctions, interest rates on Treasury securities, foreign exchange rates, savings bonds, or any U.S. government financial statistics.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fai-skillforge\u002Fblob\u002Fmain\u002Fskills\u002Fscientific\u002Fusfiscaldata\u002FSKILL.md",[],[],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":19},"01M75GVDTBSXRQ4Q11RVJQC56M","treatment-plans","Generate concise (3-4 page), focused medical treatment plans in LaTeX\u002FPDF format for all clinical specialties. Supports general medical treatment, rehabilitation therapy, mental health care, chronic disease management, perioperative care, and pain management. Includes SMART goal frameworks, evidence-based interventions with minimal text citations, regulatory compliance (HIPAA), and professional formatting. Prioritizes brevity and clinical actionability.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fai-skillforge\u002Fblob\u002Fmain\u002Fskills\u002Fscientific\u002Ftreatment-plans\u002FSKILL.md",[],[]]