生成图文并茂的分析报告/实验报告/质检报告(固定模版)。当用户要求"生成报告/总结报告/实验报告/质检报告/QC报告",或分析流程收尾需要交付报告时使用。报告必须基于真实分析输出,包含固定章节结构、关键指标表格和真实结果图。
日本語の概要は準備中です。原文の説明を表示しています。
NCPGR高性能计算集群LSF作业调度系统使用指南。用于提交、管理和监控LSF批处理作业,包括串行作业、多线程作业、MPI并行作业、GPU作业、数组作业等。当用户需要编写LSF作业脚本、提交计算任务、查询作业状态、调整作业参数或排查作业问题时使用此skill。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
提交LSF作业前必须遵守以下规范:
由于计算节点没有联网,所有需要网络的任务都必须在当前登录节点进行,不得提交到计算节点。
| 任务类型 | 执行位置 | 说明 |
|---|---|---|
| 需要网络(下载数据、下载参考基因组、安装软件包等) | 登录节点 | 直接在登录节点执行,不能通过bsub提交 |
| 纯计算(比对、定量、组装、分析等) | 计算节点(通过LSF提交) | 通过编写 .lsf 脚本提交到计算节点 |
作业脚本应保持简洁易读,不可过度编码或使用高级技巧(如复杂的 sed/awk 变量替换、多重临时文件创建/清理、嵌套条件逻辑等)。用户需要能够轻松阅读、检查和自行修改脚本。
LSF作业脚本后缀必须使用 .lsf
# 正确命名
my_job.lsf
bwa_mem.lsf
rnaseq_pipeline.lsf
# 避免使用
my_job.sh # 不推荐
my_job.bash # 不推荐
核心原则:由于队列已配置资源限制,作业脚本应尽可能简化
所有队列都已配置内存限制,不需要在作业脚本中设置 -M 和 rusage[mem=...]:
# 正确的简化写法(推荐)
#!/bin/bash
#BSUB -J my_job
#BSUB -q normal
#BSUB -n 4
#BSUB -R "span[hosts=1]"
#BSUB -o %J.out
#BSUB -e %J.err
your_program --threads $LSB_DJOB_NUMPROC
# 错误的冗余写法(不推荐)
#BSUB -M 8G # 不需要!
#BSUB -R "rusage[mem=8G]" # 不需要!
不需要设置 -W 运行时间限制:
# 正确的简化写法(推荐)
#!/bin/bash
#BSUB -J my_job
#BSUB -q normal
#BSUB -n 4
#BSUB -R "span[hosts=1]"
#BSUB -o %J.out
#BSUB -e %J.err
# 错误的冗余写法(不推荐)
#BSUB -W 12:00 # 不需要!
# 第1步:查看当前集群资源
bhosts | grep -E "ok|closed" | head -10
# 第2步:根据结果决定核数
# 多数节点为 closed → 申请2-4核(易调度)
#BSUB -n 2
# 有空闲节点且核心充足 → 可申请8+核
#BSUB -n 8
| 场景 | 建议策略 |
|---|---|
多数节点状态为closed | 申请2-4核,提高调度优先级 |
有空闲节点(ok)且有较多空核心 | 可申请8-16核加速计算 |
| 急需作业跑上 | 申请1-2核,几乎可以立即调度 |
警告:盲目申请过多核心(如32核)会导致作业长时间排队
| 命令 | 用途 |
|---|---|
bsub < job.lsf | 提交作业脚本 |
bjobs | 查看作业状态 |
bjobs -l <jobid> | 查看作业详细信息 |
bpeek <jobid> | 查看作业输出 |
bkill <jobid> | 终止作业 |
bstop <jobid> / bresume <jobid> | 挂起/恢复作业 |
bmod -n 4 <jobid> | 修改作业参数 |
lsload | 查看节点负载 |
bhosts | 查看节点状态 |
bqueues | 查看队列信息 |
添加到 ~/.bashrc:
alias bbjobs='bjobs -o "jobid:10 user:6 stat:6 queue:6 exec_host:10 job_name:10 max_mem:14 submit_time:12"'
alias bbs='bjobs -o "jobid:8 user:8 stat:6 queue:6 exec_host:10 job_name:8 nreq_slot:6 slots:5 max_mem:12 submit_time:12 start_time:12 run_time:16 cpu_used"'
如果用户使用集群已安装的软件,必须使用 module 命令加载:
# 查看可用软件
module av bwa # 查看bwa相关模块
module av star # 查看STAR相关模块
module av # 查看所有可用模块
# 在作业脚本中加载
module load BWA/0.7.17-foss-2018b
module load STAR/2.6.0a-foss-2016b
规则:
module load 加载对应的模块module av 软件名 查看具体模块名#!/bin/bash
#BSUB -J job_name # 作业名
#BSUB -n 4 # 申请4个核心(根据bhosts结果调整)
#BSUB -R "span[hosts=1]" # 限制在单节点运行
#BSUB -o %J.out # 输出文件
#BSUB -e %J.err # 错误文件
#BSUB -q normal # 队列名
# 加载集群已安装的软件(如果有)
# module load SoftwareName/Version
# 使用 $LSB_DJOB_NUMPROC 自动获取申请的核心数
your_program --threads $LSB_DJOB_NUMPROC
极简原则:
-M 和 rusage[mem=...](队列已自动管理)-W 时间限制module load 加载集群已安装的软件重要: 生物信息软件大多不支持跨节点并行,务必使用 -R "span[hosts=1]" 限制在单节点运行。
#!/bin/bash
#BSUB -J MPIJob
#BSUB -q normal
#BSUB -n 400
#BSUB -R "span[ptile=20]" # 每节点20核
#BSUB -o stdout_%J.out
#BSUB -e stderr_%J.err
module load intel/2018.4
module load mpi/intel/2018.4
mpirun -np $LSB_DJOB_NUMPROC ./MPI_program
警告: 生物软件绝大多数不支持MPI,请勿随意使用多节点并行。
注意: 使用 GPU 队列前,需先向管理员申请 GPU 队列使用权限。
#!/bin/bash
#BSUB -J gpu_job
#BSUB -q gpu
#BSUB -n 4
#BSUB -R "span[hosts=1]"
#BSUB -gpu "num=1:mode=shared"
#BSUB -o %J.out
#BSUB -e %J.err
python train.py
# 基础交互
bsub -q interactive -Is bash
# 带X11转发(图形界面)
bsub -q interactive -XF -Is bash
限制:只能在interactive队列,最长48小时。
for sample in /path/to/data/*_1.fq.gz; do
index=$(basename $sample | sed 's/_1.fq.gz//')
bsub -J ${index} -n 8 -R span[hosts=1] -o %J.${index}.out \
"your_program -t 8 -i $sample"
sleep 10 # 避免瞬间提交过多
done
使用 -K 参数让作业按顺序执行:
# 在流程脚本内
bsub -K -J step1 -n 8 ... "command1" # -K等待完成
bsub -K -J step2 -n 1 ... "command2" # step1完成后执行
bsub -K -J step3 -n 2 ... "command3"
#BSUB -J array[1-100] # 提交100个任务
# 使用 $LSB_JOBINDEX 区分不同任务
input="sample_${LSB_JOBINDEX}.fq"
| 状态 | 含义 |
|---|---|
| PEND | 排队中 |
| RUN | 运行中 |
| DONE | 正常完成 |
| EXIT | 异常退出 |
| SSUSP | 系统挂起(节点内存不足等) |
| USUSP | 用户挂起 |
查看排队原因:
bjobs -p <jobid>
常见原因:
User has reached the pre-user job slot limit: 用户作业数达队列上限The user has reached his job slot limit: 用户总作业数达系统上限The queue has reached its job slot limit: 队列总核数已满检查作业效率:
# 比较 run_time (walltime) 和 cpu_used (cputime)
# 若 cpu_used << run_time * 核数,说明作业可能空跑或出错
作业运行异常/资源不合理检查原则:
当分析已完成作业的 bjobs 输出时,如果同时满足以下两个条件,必须提醒用户:
walltime (实际运行时间) 远小于 cputime (CPU总时间)
单核实际内存使用 < 队列单核内存限制
提醒内容应包括:
判断示例:
| 申请核数 | walltime | cputime | 实际内存 | 队列限制 | 结论 |
|---|---|---|---|---|---|
| 8核 | 60分钟 | 70分钟 | 2GB | 6GB | 提醒:只用到1核,建议减少核数 |
| 8核 | 60分钟 | 420分钟 | 2GB | 6GB | 正常:有效利用了约7核 |
| 4核 | 30分钟 | 35分钟 | 1GB | 6GB | 提醒:只用到1核,建议减少核数 |
bkill <jobid> # 终止作业
bkill 0 # 终止用户所有作业
bstop <jobid> # 挂起作业
bresume <jobid> # 恢复作业
bmod -n 8 <jobid> # 修改核心数
bmod -q high <jobid> # 修改队列
btop <jobid> # 作业移到队首
bbot <jobid> # 作业移到队尾
brequeue <jobid> # 重新提交作业
| 队列 | 用途 | 特点 |
|---|---|---|
| normal | 普通计算 | 默认队列,自动内存限制(6-10GB) |
| smp | 大内存 | 大内存节点(s001-s006),自动内存限制(12-20GB) |
| high | 384GB内存 | 大内存作业,自动内存限制(11-15GB) |
| q2680v2 | 计算队列 | 自动内存限制(6-10GB) |
| gpu | GPU计算 | gpu01-04,自动内存限制(需确认) |
| parallel | MPI并行 | 跨节点并行,自动内存限制(需确认) |
| interactive | 交互调试 | 限48小时,自动内存限制(30-500GB) |
所有队列都已配置资源限制,用户无需在脚本中设置:
| 队列 | 内存限制 | 时间限制 | 说明 |
|---|---|---|---|
| normal | 默认6GB,最大10GB | 无默认 | 用户无需设置内存和时间 |
| smp | 默认12GB,最大20GB | 无默认 | 用户无需设置内存和时间 |
| high | 默认11GB,最大15GB | 无默认 | 用户无需设置内存和时间 |
| q2680v2 | 默认6GB,最大10GB | 无默认 | 用户无需设置内存和时间 |
| interactive | 默认30GB,最大500GB | 48小时 | 仅限48小时交互 |
使用原则:
-M 和 rusage[mem=...](队列已自动管理)-W 时间限制(除非是测试性作业)-n 核心数和 -q 队列名内存超限处理:
| 变量 | 说明 |
|---|---|
$LSB_JOBID | 作业ID |
$LSB_JOBINDEX | 数组作业索引 |
$LSB_DJOB_NUMPROC | 申请的核心数 |
$LSB_QUEUE | 队列名 |
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
生成图文并茂的分析报告/实验报告/质检报告(固定模版)。当用户要求"生成报告/总结报告/实验报告/质检报告/QC报告",或分析流程收尾需要交付报告时使用。报告必须基于真实分析输出,包含固定章节结构、关键指标表格和真实结果图。
日本語の概要は準備中です。原文の説明を表示しています。
Predicts ADMET properties using ADMETlab 3.0 (119 endpoints with uncertainty), ADMET-AI, DeepChem MolNet, and chemprop D-MPNN with explicit handling of OECD QSAR principles, applicability domain assessment, calibration, hERG/CYP/AMES gold-standard endpoints, and PAINS / Lipinski / Ro5 / Veber / BBB druglikeness filters. Use when filtering compounds for drug-likeness, prioritizing leads by predicted safety, or building an in-house ADMET QSAR model.
日本語の概要は準備中です。原文の説明を表示しています。
Trim PCR primers from aligned reads in amplicon-panel BAMs using samtools ampliconclip. Use when processing SARS-CoV-2 ARTIC, hereditary cancer panels, ctDNA hot-spot panels, or any amplicon assay where primer-derived bases would falsely confirm reference at primer footprints.
日本語の概要は準備中です。原文の説明を表示しています。
Filter alignments by flags, mapping quality, and regions using samtools view and pysam. Use when extracting specific reads, removing low-quality alignments, or subsetting to target regions.
日本語の概要は準備中です。原文の説明を表示しています。
Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam. Use when enabling random access to alignment files or fetching specific genomic regions.
日本語の概要は準備中です。原文の説明を表示しています。
Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO. Supports Clustal, PHYLIP, Stockholm, FASTA, Nexus, and other alignment formats for phylogenetics and conservation analysis. Use when reading, writing, or converting alignment file formats.
日本語の概要は準備中です。原文の説明を表示しています。