kallisto+sleuth是在转录本水平上进行直接分析的方法。
首先先在服务器上用conda下载kallisto进行分析(conda的安装及下载方法会另出一篇单独写),kallisto运行脚本如下
脚本意思:$1 $2 $3 $4 是我们传递进入脚本的参数,即运行脚本只需要输进去这四个参数即可。kallisto的参数简介help即可查看,不做过多阐述。
如我运行的命令行:nohup ./kallisto.sh FRAS210250511 index rna.fa kallisto_11 &
nohup &是后台运行;./kallisto.sh 是当前目录下的脚本名;FRAS210250511是我的$1参数,$1=fq也即脚本中的fq;index是第二个参数,即索引命令中的输出;input是第三个参数,即rna.fa的文件(若该文件不在当前目录下写全路径);kallisto_11是第4个参数,即定量中的输出文件名。
因为是在转录水平上进行定量,因此索引用了rna的转录文件,在NCBI搜索相关物种的数据即可找到,构建好索引后,即可进行转录水平的定量。
定量得到的文件有三个:
其中abundance.tsv是各数据的定量数据:
tpm即为各数据的转录ID标准化后的表达水平
得到这三个文件即kallisto分析完成,后用R下载sleuth包进行差异基因数据的准备。
R中命令如下:
library("sleuth")
##读入kallisto所在桌面的路径,在此路径下只存在所需处理样品即可
base_dir <- "D:/桌面/download_kallisto/2WAG"
group_dir <- "D:/桌面/download_kallisto/2WAG"
sample_id <- dir(file.path(base_dir))
sample_id
kal_dirs <- sapply(sample_id, function(id) file.path(base_dir, id))
kal_dirs
##2group.txt当读入路径结束再放到此路径下
s2c <- read.table(file.path(group_dir, "2group.txt"),header = TRUE, stringsAsFactors = FALSE)
s2c <- dplyr::select(s2c, sample=samples, group)
s2c <- dplyr::mutate(s2c, path = kal_dirs)
print(s2c)
so <- sleuth_prep(s2c, ~group)
so <- sleuth_fit(so)
models(so)
so <- sleuth_wt(so, 'group2WAG_D')
results_table <- sleuth_results(so, 'group2WAG_D')
write.csv(results_table,"D:/桌面/download_kallisto/2WAG/2WAG.csv")
至此,分析所需数据完成。