Skip to content
Back to skills

Differential Gene Analysis Rna Seq

ASecurity

OpenCLAW Skill for bioinformatics data analysis.

  • 12 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 22, 2026
dataexpress

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 22, 2026

npx -y skills add luokai0/ai-agent-skills-by-luo-kai --skill differential-gene-analysis-rna-seq --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Differential Gene Analysis Rna Seq?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Differential Gene Analysis Rna Seq
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/luokai0-differential-gene-analysis-rna-seq/badge)](https://www.skillsdirectory.com/skills/luokai0-differential-gene-analysis-rna-seq)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Differential Gene Expression Analysis (RNA-seq)
OpenCLAW Skill for bioinformatics data analysis.

## License
MIT-0

## Description
This skill performs differential gene analysis using DESeq2 with simulated expression data.

## Input
input/count_matrix.csv

## Output
- output/volcano.png
- output/pca.png
- output/heatmap.png
- output/diff_genes_significant.csv

## Code
```r
# ==============================
# OpenCLAW Skill Run Code
# ==============================

if (!require("BiocManager", quietly = TRUE)) {
  install.packages("BiocManager", repos = "https://cloud.r-project.org/")
}

BiocManager::install(c("DESeq2", "ggplot2", "pheatmap"), update = FALSE, ask = FALSE)

library(DESeq2)
library(ggplot2)
library(pheatmap)

if (!dir.exists("output")) dir.create("output")

# Read input
count_df <- read.csv("input/count_matrix.csv", row.names = 1)
count_matrix <- as.matrix(count_df)
group <- factor(c("Control","Control","Control","Treat","Treat","Treat"))
colData <- data.frame(group = group)

# DESeq2
dds <- DESeqDataSetFromMatrix(round(count_matrix), colData, ~ group)
dds <- dds[rowSums(counts(dds)) > 3, ]
dds <- DESeq(dds)
res <- results(dds, contrast = c("group", "Treat", "Control"))
res_sig <- subset(res, padj < 0.05 & abs(log2FoldChange) > 1)
write.csv(as.data.frame(res_sig), "output/diff_genes_significant.csv")

# Volcano
res_df <- as.data.frame(res)
res_df$sig <- ifelse(res_df$padj < 0.05 & abs(res_df$log2FoldChange) > 1, "Sig", "NS")
p <- ggplot(res_df, aes(log2FoldChange, -log10(padj))) + geom_point(aes(color=sig)) + theme_bw()
ggsave("output/volcano.png", p, dpi=300)

# PCA
vsd <- vst(dds, blind=FALSE)
p_pca <- plotPCA(vsd, intgroup="group") + theme_bw()
ggsave("output/pca.png", p_pca)

# Heatmap
if(nrow(res_sig) > 0) {
  top <- head(rownames(res_sig), 10)
  mat <- t(scale(t(assay(vsd)[top,])))
  png("output/heatmap.png", width=800, height=600)
  pheatmap(mat, annotation_col=data.frame(group))
  dev.off()
}

cat("✅ Skill run successfully\n")

Files in this skill

  • .clawhub/origin.json166 B
  • _meta.json153 B
  • skill.json743 B
  • skill.md2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…