Install
openclaw skills install bioinfo-style标准化生物信息学分析流程。当用户提出以下任务时激活:(1) 测序数据分析(RNA-seq、ChIP-seq、WGS等),(2) 差异表达分析,(3) 通路/富集分析,(4) 组学数据可视化,(5) 统计检验,(6) 任何需要调用成熟生信工具而非编写Python/R算法代码的分析任务。核心原则:优先调用工具,记录shell脚本过程,结果用Rmarkdown统计可视化,确保分析可重复。
openclaw skills install bioinfo-style工具 > 代码:优先使用成熟的生信工具,绝不自己写算法代码。 过程记录:每一步都写 shell 脚本并执行,而非在对话中描述。 可重复性:所有分析必须可以通过脚本重现。
# 读取 ~/.bashrc 中的环境配置
source ~/.bashrc
# 激活或创建 mamba 环境
mamba activate <env_name> # 已有环境
mamba create -n <env_name> -c <channels> <packages> # 创建新环境
# 常用生信环境示例
mamba create -n bioinfo -c conda-forge -c bioconda \
fastqc trimmomatic star featurecounts deseq2 \
samtools bedtools homer meme
# FastQC 质控
fastqc -o <output_dir> -f fastq <raw_data>/*.fastq.gz
# 批量处理脚本模板
cat > 01_qc.sh << 'EOF'
#!/bin/bash
set -e
RAW_DIR="raw_data"
QC_DIR="qc_results"
mkdir -p $QC_DIR
for fq in $RAW_DIR/*.fastq.gz; do
echo "Processing: $fq"
fastqc -o $QC_DIR "$fq"
done
echo "QC completed"
EOF
bash 01_qc.sh
# RNA-seq: STAR 比对 + featureCounts 定量
cat > 02_alignment.sh << 'EOF'
#!/bin/bash
set -e
REF="genome/GRCh38"
SAMPLE="sample1"
GTF="annotation/gencode.v38.annotation.gtf"
mkdir -p alignment/$SAMPLE
star --genomeDir $REF \
--readFilesIn reads/$SAMPLE.fastq.gz \
--readFilesCommand zcat \
--outSAMtype BAM SortedByCoordinate \
--outFileNamePrefix alignment/$SAMPLE/
featureCounts -T 4 -t exon -g gene_id \
-a $GTF \
-o counts/$SAMPLE.counts \
alignment/$SAMPLE/Aligned.sortedByCoord.out.bam
EOF
bash 02_alignment.sh
cat > 03_differential_analysis.Rmd << 'EOF'
---
title: "差异表达分析报告"
author: "Bioinformatics Pipeline"
date: "`r Sys.Date()`"
output:
html_document:
toc: true
theme: united
---
```{r setup, message=FALSE}
library(DESeq2)
library(ggplot2)
library(pheatmap)
library(clusterProfiler)
# 读取计数矩阵
count_matrix <- read.table("counts/matrix.txt", header=TRUE, row.names=1)
coldata <- read.table("metadata.txt", header=TRUE, row.names=1)
dds <- DESeqDataSetFromMatrix(countData=count_matrix,
colData=coldata,
design=~condition)
dds <- DESeq(dds)
results <- results(dds)
# MA plot
plotMA(results)
# 热图
top_genes <- rownames(head(results[order(results$padj),], 20))
pheatmap(assay(vst(dds))[top_genes,])
EOF Rscript -e "rmarkdown::render('03_differential_analysis.Rmd')"
### 5. 富集分析
```bash
cat > 04_enrichment.sh << 'EOF'
#!/bin/bash
set -e
GENELIST="differential_genes.txt"
OUTPUT="enrichment_results"
# GO富集
enrichment.sh $GENELIST BP CC MF BP
clusterProfiler --dotplot --gseGO
# KEGG通路
enrichment.sh $GENELIST KEGG
# Reactome
enrichment.sh $GENELIST Reactome
EOF
bash 04_enrichment.sh
logs/ 目录project/
├── raw_data/ # 原始数据(只读)
├── qc_results/ # 质控结果
├── alignment/ # 比对结果
├── counts/ # 表达矩阵
├── results/ # 差异分析结果
├── figures/ # 图片
├── scripts/ # 所有分析脚本
└── logs/ # 执行日志