创建大鼠cistarget参考数据库
2023-10-12 本文已影响0人
sglwc
运行SCENIC做单细胞的转录因子分析时遇到一个问题,就是运行SCENIC所需的输入文件中需要用到cistarget database的参考motif文件,而这个在SCENIC官网上仅有人、小鼠、果蝇的参考数据库,而自己的数据是大鼠的基因组,因此需要自己动手去建大鼠的cistarget database。
SCENIC官网中提供了create cistarget database的workflow,但官网中该部分的文档写的并不十分详细,在此特别感谢另外一位做拟南芥的简友,提供了很好的借鉴,附上参考资料:
https://github.com/aertslab/create_cisTarget_databases
https://www.jianshu.com/p/59db26de0858
https://github.com/weng-lab/cluster-buster
第一步:安装各种软件
创建环境
conda create -n create_cistarget_databases \
'python=3.10' \
'numpy=1.21' \
'pandas>=1.4.1' \
'pyarrow>=7.0.0' \
'numba>=0.55.1' \
'python-flatbuffers'
conda activate create_cistarget_databases
将create_cisTarget_databases软件包拷贝到本地
git clone https://github.com/aertslab/create_cisTarget_databases
安装Cluster-Buster
##安装预编译二进制文件
cd "${CONDA_PREFIX}/bin" #进入环境根目录下的bin文件夹
wget https://resources.aertslab.org/cistarget/programs/cbust #下载预编译二进制文件
chmod a+x cbust #使该文件变为可执行文件
##安装cbust
git clone -b change_f4_output https://github.com/ghuls/cluster-buster/
cd cluster-buster
make cbust
conda activate create_cistarget_databases
cp -a cbust "${CONDA_PREFIX}/bin/cbust"
安装UCSC工具
cd "${CONDA_PREFIX}/bin"
wget http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/liftOver
wget http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/bigWigAverageOverBed
chmod a+x liftOver bigWigAverageOverBed
conda activate create_cistarget_databases
第二步:创建Cistarget数据库
根据create_cistarget_database的官方文档,需要输入以下文件
image.png
所需文件
1、FASTA file with regulatory regions: 所有基因的启动子区域序列,可以在UCSC中下载https://hgdownload.soe.ucsc.edu/goldenPath/rn7/bigZips/。
2、motifs矩阵文件:in Cluster-Buster format
从cisBP(http://cisbp.ccbr.utoronto.ca/)中下载大鼠基因的motif信息,主要关注PWM文件夹。
image.png PWM文件夹由许多motif的txt文件组成,点开其中一个motif的txt文件可以看到其中包含了motif的概率矩阵信息。在这个矩阵中,每一行代表一个碱基位置,每一列代表一个碱基类型,数字表示该位置上对应碱基类型的频次或权重。 image.png需要注意的是,PWM文件夹中的motif矩阵文件需要修饰为Cluster-Buster中的motif矩阵格式!
image.png
cd ./pwms_all_motifs
#Step 1: 去掉文件夹中所有txt文件的第一行和第一列的信息
for file in *.txt; do
awk 'NR>1 { for (i=2; i<=NF; i++) printf $i"\t"; printf "\n" }' "$file" > "${file}_temp"
mv "${file}_temp" "$file"
done
#Step 2: 过滤掉文件夹中的空白文件
find ./ -type f -empty -delete
#Step 3: 提取文件夹中的文件名作为motif_id,并在相应的txt文件的第一行添加motif_id的信息
for file in *.txt; do
motif_id=$(basename "$file" .txt)
sed -i "1s/^/$motif_id\n/" "$file"
done
#Step 4: 在所有文档的开头加上“>”符号
sed -i '1s/^/>/' *.txt
#Step 5: 将所有文件的后缀名改为.cb文件
for file in *.txt; do
mv "$file" "${file%.txt}.cb"
done
得到了以下结果:
image.png
3、motif list:其实就是把PWM文件夹中所有文件的文件名提取出来形成一个txt文件就行
for file in pwms_all_motifs/*.cb; do
echo "$(basename "$file" .cb)" >> motif_list.txt
done
运行create_cisTarget_motif_databases.py
cd /home/lwc/scRNA/SCENIC/create_cisTarget_databases
ln -s ~/scRNA/SCENIC/Rattus_cistarget_database/upstream2000.fa
ln -s ~/scRNA/SCENIC/Rattus_cistarget_database/pwms_all_motifs/
ln -s ~/scRNA/SCENIC/Rattus_cistarget_database/motif_list.txt
python create_cistarget_motif_databases.py \
-f upstream2000.fa \
-M pwms_all_motifs/ \
-m motif_list.txt \
-o ~/scRNA/SCENIC/Rattus_cistarget_database/ \
-t 22
运行界面如下 image.png
总结
- 第一步安装软件按照create_cistarget_database的官方文档来就好了
- 第二步比较坑的一点是官方文档中只说了需要Cluster-Buster格式的motif文件,但是并没有详细说明,另外就是还缺少说明motif list需要的是什么信息。
- 想要创建cistarget database,最关键的是要拿到对应种属的motif PWM文件,然后将这个motif的矩阵文件进行修饰改为Cluster-Buster的格式。
- 本文选取的是收录motif信息最多的cisbp数据库,当然还有其他数据库可以下载这个motif PWM文件,但是至于怎么把它们整合起来那是另一回事了。