参考

1. 安装环境

1
2
3
conda create -n mageck-vispr  python=3.7
conda activate mageck-vispr
conda install -c bioconda -c conda-forge mageck-vispr

经过实际操作,部分源代码需要修改

1
2
3
4
5
6
7
8
9
# ***/miniconda3/envs/mageck-vispr/lib/python3.7/site-packages/vispr/server.py
# (1) 注释第13行代码
## from jinja2 import Markup

# (2) CAPTIONS = yaml.load(f) 替换为 CAPTIONS = yaml.safe_load(f)


# ***/miniconda3/envs/mageck-vispr/lib/python3.7/site-packages/vispr/cli.py
# (1) config = yaml.load(f) 同样替换为 config = yaml.safe_load(f)

2. 下载示例数据

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
tar xvf esc.testdata.step2.tar.bz2

ls esc-testdata
# designmatrix.txt  reads  yusa_library.csv

## (1) 原始fastq数据
ls esc-testdata/reads
# ERR376998.subsample.fastq  
# ERR376999.subsample.fastq  
# ERR377000.subsample.fastq

## (2) sgRNA坐标/序列/靶基因信息
head esc-testdata/yusa_library.csv
# id,gRNA.sequence,Gene
# chr9:21066101-21066124,CCTTCTCAATACCCATTCG,ZGLP1
# chr9:21066102-21066125,CTTCTCAATACCCATTCGC,ZGLP1
# chr9:21066273-21066296,GACCTGGGTGGCCGGCGAA,ZGLP1

## (3) 样本设计(optional)
cat esc-testdata/designmatrix.txt
# samples baseline        esc
# plasmid 1       0
# esc1    1       1
# esc2    1       1

3. 初始化项目

1
2
3
4
5
6
7
8
mkdir workflow
mageck-vispr init workflow/ \
    --reads esc-testdata/reads/ERR376998.subsample.fastq \
            esc-testdata/reads/ERR376999.subsample.fastq \
            esc-testdata/reads/ERR377000.subsample.fastq

ls workflow
# config.yaml  README.txt  Snakefile

根据需要修改config.yaml,比较关键的有如下

  • librarry: 指定sgRNA信息,即上面的yusa_library.csv 文件
  • speciesassembly指定物种与参考基因组
  • sample: 修改样本名
  • day0label: control初始样本(刚加入sgRNA还没产生效应)

要么通过day0label设置control,要么通过后面的experiments,指定designmatrix文件。总之,似乎必须要有这个实验设计control–treat。

  • norm_method默认使用所有sgRNA median norm factor进行标准化。若设置为control,需要提供文库中的阴性对照sgRNA(one sgrna id per row),即仅使用这些sgRNA median norm factor进行标准化。

  • 关于paired参数适用于双端测序,即提供每一样本的r2的fastq.gz文件路径。不过根据结果来看,似乎还是默认采用的R1。不过一般来说,sgRNA 序列信息一般都在Read1了。

  • 关于count, 即直接提供已经计算好的count矩阵,再进行后续的阳性与阴性筛选分析。

4. 执行snakemake脚本

1
2
3
4
5
6
cd workflow
# dry-run
snakemake -n

# 实际允许
snakemake --cores 8

查询结果

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
ls 
# config.yaml  logs  README.txt  results  Snakefile
ls results
# count  mle.vispr.yaml  qc  test

# 可视化展示
vispr server results/*.vispr.yaml
# Loading data.
# Starting server.

# Open:  go to 127.0.0.1:5000 in your browser.
# Note: Safari and Internet Explorer are currently unsupported.
# Close: hit Ctrl-C in this terminal.
#  * Serving Flask app 'vispr.server'
#  * Debug mode: off


# 本地端口查看可视化结果
ssh -i 秘钥地址 -p 端口 -N -L localhost:5000:localhost:5000 user@ip 
# -N 表示不执行远程命令,仅建立端口转发(即不登录 Shell,只用于端口转发)

其他补充

  • Mageck在计算Gini-index时,会先对Count进行log转换后,再计算。