clust——共表达聚类

clust 是一种用于识别在一个或多个物种的异构数据集中持续共表达(相关性良好)的基因簇(组)的全自动方法。

Workflow_PyPkg.png

(一)对于单个数据集,clust 自动识别共表达基因的 clusters 的数量 k 并完成聚类。

Clusters_1DS.png

(二)对于多个数据集,clust 自动识别在每个输入数据集中共表达(相关性良好)的基因 clusters,此处每个数据集的条件或时间点数量不同。

Clusters.png

对于 clust,具有如下的特征:

  • 无需对数据进行预处理,clust 能够自动对数据进行归一化处理
  • 无需预设聚类的数量,clust 能够自动识别 cluster 的数目
  • 可以通过参数 -t 控制聚类的紧密度(tightness)
  • 同时也可以适用于如下数据集:
    • 不同技术生成(如 RNA-seq 或微阵列)
    • 来自不同物种
    • 条件或时间点数量不同
    • 同一条件有多个重复
    • 需要不同类型的归一化
    • 不同年份和实验室生成
    • 存在缺失值
    • 并非所有基因都被包含在每个数据集中
  • 输出文件:
    • 聚类统计表
    • 列出各聚类所含基因的表格
    • 预处理(归一化、汇总和过滤)数据集文件
    • 聚类基因表达谱图谱(PDF 文件)

官网:https://github.com/BaselAbujamous/clust

网页版:http://clust.baselabujamous.com

安装

方法一:使用 conda(推荐)

conda create -n clust
conda activate clust
conda install -c bioconda clust

方法二:使用 pip

# 以下任选一条命令即可
sudo pip install clust
pip install --user clust

补充:更新版本(分别对应如上的安装命令)

conda update -c bioconda clust
sudo pip install clust --upgrade
pip install --user clust --upgrade

使用

1. 基础版

输入数据格式:每个数据集都以单个 TAB 分隔(TSV)文件表示,其中第一列表示基因 ID,第一行表示样本的唯一标签,文件的其余部分包括数值,主要是基因表达值。

Data_simple.png

注意:当相同的基因 ID 出现在不同的数据集中时,会被认为是同一个基因;如果同一文件中有多行具有相同的标识符会自动将它们的值相加进行汇总;基因名称不应包含空格、逗号或分号。

(一)对于归一化过的同质数据集,可以直接运行:

clust data_path -o output_directory [...]

该命令使用默认参数运行 clust,data_path 可以是单个数据文件(v1.8.5 以上)的路径,也可以是包含一个或多个数据文件的目录路径;如果没使用 -o 提供输出目录,clust 会在当前工作目录下为结果创建一个新目录。

(二)对于原始 RNA-seq TPM、FPKM 或 RPKM 数据,可参考如下进阶版的归一化部分。 有关处理 replicates 数据、处理来自多个物种的数据,以及处理微阵列数据(仅RNA-seq数据或与RNA-seq数据混合)也可参考如下进阶版中对应内容。

2. 进阶版

2.1 归一化(Normalisation)

V1.7.0 及更新版本中,可以实现自动规范化,除非用户通过 -n 另有说明,否则会自动检测每个数据集最适合的归一化方法,所使用的归一化 codes 存储在输出文件 /Normalisation_actual 中。

$ cat ~/clust/rpkm_Results_05_Aug_24/Normalisation_actual.txt
total_rpkm_gene.csv     101 3 4

V1.6.0 及更早版本 中,用户应通过 -n 说明所需的归一化技术,否则不应用归一化。

(一)方法一(V1.7.0 及更新版本):列出要应用于一个或多个数据集的一个或多个归一化 codes(可从下表中选取)

clust data_path -n code1 [code2 code3 ...] [...]

# 示例
clust total_rpkm_gene.csv -n 101 3 4 -o rpkm_Results_05_Aug_24

(二)方法二:提供列出每个数据集的归一化 codes 的文件,分隔符可以是空格、TAB、逗号或分号

NormalisationFile.png
clust data_path -n normalisation_file [...]

# 示例
clust total_rpkm_gene.csv -n Normalisation_actual.txt -o rpkm_Results_05_Aug_24

常用数据集建议 codes:

  • RNA-seq TPM, FPKM, and RPKM data: 101 3 4
  • Log2 RNA-seq TPM, FPKM, and RPKM data: 101 4
  • One-colour microarray gene expression data: 101 3 4
  • Log2 one-colour microarray gene expression data: 101 4
  • Two-colour microarray gene expression data: 3 6
  • Log2 two-colour microarray gene expression data: 6
  • Log2 fold-changes 4

在此基础上,如果数据集中有太多的零或一些负值,则建议使用 31 代替 3。

All normalisation codes:

Code Definition
0 No normalisation (Default in v1.6.0 and earlier)
1 Divide by the mean value of the row
2 Divide by the first value of the row
3 Log2
31 Set all values that are less than 1.0 to 1.0, then log2 (v1.7.0+)
4 Z-score: subtract the mean of the row and then divide by its standard deviation
5 Divide by the total (sum) of the row
6 Subtract the mean value of the row
7 Divide by the maximum value of the row
8 2 to the power X
9 Subtract the minimum value of the row
10 Rank across rows (1 for the lowest, up to N for N columns; average ranks at ties)
11 Rank across rows (1 for the lowest, up to N for N columns; order arbitrarly at ties)
12 Linear transformation to the [0, 1] range across rows (0.0 for the lowest and 1.0 for the highest)
13 Set all values of genes with low expression everywhere to zeros. The threshold of low expression is found by fitting a bimodal distribution to per-gene maximum expression values over all samples (v1.7.0+)
- -
101 Quantile normalisation
102 Column-wise mean subtraction
103 Subtract the global mean of the entire dataset
- -
1000 Automatic detection of suitable normalisation (Default in v1.7.0 and newer)

注意:codes 的顺序决定了归一化技术的应用顺序

2.2 处理 replicates

提供包含有 replicates 信息的文件,其中文件中的每一行代表一个样本,按顺序包含数据集文件的名称(如 X0.txt),样本条件的名称,该样本条件的一个或多个 replicates 名称,且这些名称应与数据集文件中的列名相匹配,分隔符可以是空格、TAB、逗号或分号。

ReplicatesFile.png
$ cat rpkm_replicates_file.txt
total_rpkm_gene.csv AC   AC1_count, AC2_count, AC3_count
total_rpkm_gene.csv BC   BC1_count, BC2_count, BC3_count
total_rpkm_gene.csv BD   BD1_count, BD2_count, BD3_count
total_rpkm_gene.csv AD   AD1_count, AD2_count, AD3_count
total_rpkm_gene.csv BE   BE1_count, BE2_count, BE3_count
total_rpkm_gene.csv AE   AE1_count, AE2_count, AE3_count

具体使用代码:

clust data_path -r replicates_file [...]

# 示例
clust total_rpkm_gene.csv -r rpkm_replicates_file.txt -o rpkm_Results_05_Aug_24
2.3 多物种数据

提供包含有多物种信息的文件 mapping file,其中 mapping file 是一个 TAB 分隔文件,第一行显示物种名称,第一列显示 orthologue groups(OG)的 ID,每个 OG 包括零个、一个或多个orthologous genes,每个物种一栏用逗号分隔,具体文件格式可参考官网信息。

clust data_path -m map_file [...]
2.4 多技术数据

提供包含有多技术信息的文件mapping file,注意此处需要为不同技术数据集应用不同的归一化 codes,如果微阵列数据文件的第一列包含探针 ID,而这些探针 ID 在使用不同微阵列/RNA-seq 平台生成的数据集中并不完全相同,则应确保探针-基因映射信息包含在上述 mapping file 中,具体文件格式可参考官网信息。

clust data_path -m map_file [...]
2.5 缺失值处理

使用 -d 自动舍弃未出现在所有(或大部分)数据集中的基因;如共有 20 个数据集,可以通过以下方法强制 clust 丢弃至少 17 个数据集未包含的基因:

clust data_path -d 17 [...]
2.6 低表达基因处理

在 v1.7.0+ 中,clust 默认会在合并 replicates 和归一化后过滤掉表达谱平坦(表达谱完全没有变化)的基因;可使用 --no-fil-flat 禁止该操作。

如果向 clust 提供三个选项 -fil-v-fil-c-fil-d,clust 可以自动过滤掉表达值低的基因:

clust data_path -fil-v value -fil-c conditions -fil-d datasets

此代码将舍弃在数据集中低于 value 值、在 conditions 条件下低于 conditions 值的所有基因。

此部分需要在归一化之前使用,但要在合并 replicates 数据和处理跨物种基因 mapping 之后使用。

2.7 noisy clusters 处理

紧密度参数 -t 可以控制聚类的紧密程度(较紧密较小的聚类 vs 较不紧密较大的聚类),为正实数,默认值为 1.0;小于 1.0 的值(如 0.5)产生的聚类不太紧密,而大于 1.0 的值(如 2.0、5.0、10.0...)产生的聚类更紧密。

更大的 -t 值可以获得更紧密的聚类:

clust data_path -t tightness_level
示例
clust Data/ -r Replicates.txt \
    -n Normalisation.txt \
    -m MapIDs.txt \
    -t 5 \
    -o MyResultsDirectory/

参考

  1. BaselAbujamous/clust: Automatic and optimised consensus clustering of one or more heterogeneous datasets (github.com)
  2. Basel Abu-Jamous and Steven Kelly (2018) Clust: automatic extraction of optimal coexpressed gene clusters from gene expression data. Genome Biology: 19:172; doi: https://doi.org/10.1186/s13059-018-1536-8.
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容