美文网首页
创建大鼠cistarget参考数据库

创建大鼠cistarget参考数据库

作者: sglwc | 来源:发表于2023-10-12 11:07 被阅读0次

    运行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

    总结

    1. 第一步安装软件按照create_cistarget_database的官方文档来就好了
    2. 第二步比较坑的一点是官方文档中只说了需要Cluster-Buster格式的motif文件,但是并没有详细说明,另外就是还缺少说明motif list需要的是什么信息。
    3. 想要创建cistarget database,最关键的是要拿到对应种属的motif PWM文件,然后将这个motif的矩阵文件进行修饰改为Cluster-Buster的格式。
    4. 本文选取的是收录motif信息最多的cisbp数据库,当然还有其他数据库可以下载这个motif PWM文件,但是至于怎么把它们整合起来那是另一回事了。

    相关文章

      网友评论

          本文标题:创建大鼠cistarget参考数据库

          本文链接:https://www.haomeiwen.com/subject/zianbdtx.html