第1章:Python基础与环境搭建

各位朋友,咱们开始聊《Python批次质控工具详解》这门课。第一件事儿,就是把Python这个吃饭的家伙给拾掇好。你想想看,做质控处理成百上千个批次文件,如果没有一个趁手的工具,那得累死。

Python为什么适合干这个?说白了,它语法简单、生态强大,尤其处理文本和表格数据,真的是天生神力。我个人第一次接触Python是在处理一批测序数据的时候,当时用Perl写脚本写了一周,后来同事用Python两天搞定,我当场就服了。

1.1 Python简介

Python诞生于1991年,作者是Guido van Rossum。这哥们儿希望创造一门易读、易写、功能强大的语言。事实证明他做到了。

做批次质控,我们主要用到Python这几个特长:

  • 文本处理:正则表达式、字符串操作、文件读写,一条龙。
  • 数据分析:pandas、numpy这类库,处理表格跟玩儿似的。
  • 自动化脚本:用Python遍历几百个文件,几行代码就搞定。
  • 可视化:matplotlib、seaborn,出图汇报必备。

其实很多生物信息学工具,比如FastQC、MultiQC,底层都用到了Python。你学会了基础,后面看这些工具的内部逻辑,也不会觉得神秘。

1.2 安装Python

好,咱们动手安装。去官网 python.org 下载对应版本。我建议用Python 3.8以上版本,3.11、3.12都行。

注意:千万别再装Python 2.7了。我在2020年还见过有人用Python 2跑质控脚本,结果一个库装不上,折腾了一下午。Python 2在2020年就停止维护了,新项目一律用Python 3。

安装步骤很简单,但有一个地方要特别留意——

安装时一定要勾选:
☑ Add Python to PATH

这个勾选上了,你才能在命令行直接敲 python 命令。我当时第一次装的时候就忘了勾,结果怎么敲都提示找不到命令,气得够呛。

验证安装是否成功,打开命令行(Windows用cmd,macOS/Linux用终端),敲:

python --version
Python 3.11.5

能看到版本号,说明装对了。

小技巧:如果你电脑里装了多个Python版本,可以用 py -0(Windows)或 python3 --version(macOS/Linux)来区分管理。

1.3 IDE选择:Jupyter vs VS Code

写Python代码,总得有个编辑器。我个人习惯在不同场景用不同工具。你想想看,锯木头用锯子,拧螺丝用改锥,工具选对了,干活才顺手。

特性 Jupyter Notebook VS Code
适合场景 数据分析、探索性开发、教学 大型项目、脚本开发、调试
代码执行方式 按单元格执行,结果即时展示 全文件执行或逐行调试
可视化支持 内置图表展示,非常方便 需要插件或外部窗口
版本控制 不太友好(.ipynb是JSON格式) 原生支持Git,差异对比清晰
上手难度 极低,5分钟上手 中等,需要配置一下

做批次质控的时候,我推荐这样搭配:

  • 探索阶段:用Jupyter。看看数据长什么样,哪些样本有问题,画几张分布图。
  • 生产阶段:用VS Code。写成可复用的脚本或模块,配上参数解析,一劳永逸。

咱们课程里的代码,两种环境都能跑。我会尽量提供完整的脚本文件,方便你们直接复用。

1.3.1 安装Jupyter

如果你用的是Anaconda发行版,Jupyter已经预装了。否则,用pip安装:

pip install jupyter notebook
jupyter notebook

执行后浏览器会自动打开,出现文件列表界面。新建一个Python 3笔记本,就可以写代码了。

为什么要学Jupyter?

做质控分析时,你经常需要反复试错:过滤阈值设多少合适?异常值怎么判定?Jupyter的交互式体验,可以让你边改边看结果,效率非常高。

1.3.2 配置VS Code

VS Code是微软出品的免费编辑器,现在已经是Python开发的标配了。安装好之后,装几个插件:

  • Python(微软官方,提供语法高亮、代码补全、调试)
  • Jupyter(可以在VS Code里直接打开.ipynb文件)
  • Code Runner(一键运行代码,按 Ctrl+Alt+N 就行)

然后设置一下Python解释器路径。按 Ctrl+Shift+P,输入 Python: Select Interpreter,选择你刚安装的Python版本。

曾经踩过的坑:有次我在VS Code里写了半天代码,运行起来总报模块找不到的错误。后来发现是因为VS Code默认用了系统自带的Python 2环境,而不是我装的Python 3。所以务必检查一下解释器路径。

1.4 基本语法快速回顾

咱们不是零基础教程,但一些关键语法还是要快速过一遍。毕竟后面写质控脚本会反复用到。

1.4.1 变量与数据类型

Python是动态类型语言,变量不需要声明类型,直接赋值就行。

# 数值
sample_count = 96
mean_quality = 35.8

# 字符串
sample_name = "SAMPLE_001"
fastq_path = "/data/raw/sample.fastq"

# 布尔值
is_pass = True
is_fail = False

# 列表
samples = ["S001", "S002", "S003"]
qualities = [35.2, 36.1, 34.8]

# 字典
sample_info = {
    "S001": {"reads": 1500000, "q30": 92.5},
    "S002": {"reads": 1200000, "q30": 88.3}
}
重点:质控结果通常用字典嵌套列表来存,比如每个样本的各个质控指标。后面讲pandas的时候,会直接转成DataFrame分析,非常方便。

1.4.2 条件与循环

这两个结构是写质控脚本的核心。你会经常用到:

# 条件判断
if mean_quality >= 30:
    print(f"{sample_name} 质控通过")
    is_pass = True
elif mean_quality >= 20:
    print(f"{sample_name} 需要复查")
    is_pass = False
else:
    print(f"{sample_name} 不合格")
    is_pass = False

# for循环遍历样本
for sample in samples:
    print(f"正在处理:{sample}")

# while循环(用得少,但某些轮询场景有用)
retry = 0
while retry < 3:
    try:
        process_sample(sample)
        break
    except Exception:
        retry += 1

嗯,这里要注意:列表推导式在批量处理时特别好用。比如过滤掉不合格的样本:

pass_samples = [s for s in samples if qual_dict[s] >= 30]

一行代码替代一个for循环加if判断,简洁又高效。

1.4.3 函数与模块

写质控脚本,一定要学会封装函数。不要把所有代码都堆在全局作用域里,那样调试起来会非常痛苦。

def check_quality(fastq_path, min_q=30):
    """
    检查单个fastq文件的碱基质量
    返回:达标率
    """
    # 这里的代码我们会后续章节实现
    pass

# 调用
result = check_quality("/data/S001.fastq", min_q=30)
print(result)
好习惯:函数名用动词开头,比如 check_、parse_、compute_。参数加上类型提示,以后自己看也明白。

模块就是 .py 文件,里面可以放多个函数。用 import 引入其他文件或第三方库。

import os
import json
import pandas as pd
from pathlib import Path

pathlib 是Python 3.4之后的路径处理神器,建议你们尽快熟悉。比原来的 os.path 好用不止一倍。

1.4.4 文件读写

做质控,读写文件是基本功。咱们最常用的是读取CSV、TSV这类表格文件:

# 传统方式(用内置csv模块)
import csv

with open("qc_results.csv", "r") as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row["sample_id"], row["q30"])

# 推荐方式(用pandas)
import pandas as pd

df = pd.read_csv("qc_results.csv")
print(df.head())

# 写入结果
df.to_csv("filtered_results.csv", index=False)

我建议你从现在开始,所有表格读写都用pandas。它不仅能读,还能做各种筛选、分组、统计,后面章节我们会大量使用。

第一章知识体系:Python质控工具基础 第一章:环境与基础 Python简介 环境搭建 IDE选型 语法快速回顾 诞生与特点 质控应用场景 Python下载与安装 PATH配置验证 Jupyter & VS Code 场景选择建议 变量/条件/循环 函数与文件读写 💡 学习路径建议 先装环境 → 熟悉IDE → 动手敲代码 → 跑通第一个质控脚本 花2-3天夯实基础,后面会非常顺畅

1.5 本章总结要点

好啦,第一章的内容就到这里。说白了,这一章就是给你铺好路:

  • 环境搭好:Python 3.8+,配好PATH,能跑就行。
  • 工具选对:Jupyter用于探索,VS Code用于开发。
  • 语法过一遍:变量、循环、函数、文件读写,后面每天都要用。
  • 别怕踩坑:版本不对、路径不对、解释器选错,都是正常的。遇到问题就用搜索引擎,基本都能解决。

我个人的建议是:把这章的代码都亲手敲一遍,别复制粘贴。敲的时候想想每行代码是干什么的。这样做完第一章,你后面学起来会快一倍。