Skip to content

Snakemake implementation of protein structure alignment software DaliLite v5

Notifications You must be signed in to change notification settings

Doudna-lab/snakedali

Repository files navigation

screenshot

GitHub Tag GitHub top language GitHub commit activity GitHub repo size GitHub Downloads (all assets, all releases)

OVERVIEW

1 What is Snakedali?

Snakedali is the Snakemake implementation of the multithreaded version of DaliLite v5 to align PDB queries to a pre-built Alphafold database. It introduces automated input handling and a unified report that aggregates all queries and hits in a single .xlsx.

2 Citation

    'Structure Guided Discovery of Ancestral CRISPR-Cas13 Ribonucleases '

GETTING STARTED

3 Dependencies
    3.1 Anaconda
    3.2 Snakemake
      • Snakemake can be installed directly via Anaconda:

        conda install -n base -c conda-forge mamba
        
    3.3 DaliLite v5
      • Snakedali requires a valid installation of DaliLite v5
      • Snakedali defaults to the parallelized implementation of DaliLite
      wget http:https://ekhidna2.biocenter.helsinki.fi/dali/DaliLite.v5.tar.gz
      tar -zxvf DaliLite.v5.tar.gz
      cd /home/you/DaliLite.v5/bin
      make clean
      make parallel
      
4 Installation
    4.1 Database Download
      • Download the pre-built database:
      aws s3 cp s3:https://snakedali.db/pdb_files_DAT.tar.gz <your_local_path>
      tar zxf <your_local_path>/pdb_files_DAT.tar.gz
      
    4.2 Standard Git
      • Clone repository files
      git clone https://github.com/Doudna-lab/nidali.git
      
    4.3 Git LFS
      • Two singularity/apptainer containers are provided in this repository

      • Although these are support files which are not integrated to the pipeline, they could be useful for users who may be facing issues when trying to get DaliLite installed in unsupported machines.

      • These large files will be indexed upon cloning and will take a small amount of storage.

      • The user can then download them with Git LFS in case they need the containerized version.

      • 1.1 Install Git LFS to pull apptainer containers

      -1.1.1 Linux Install

      apt install git-lfs
      git lfs install
      

      -1.1.2 macOS Install

      brew install git-lfs
      git lfs install
      

      -1.1.3 Pull apptainer containers

      git lfs pull
      
5 Snakedali Pipeline Setup
    5.1 Run Configuration
      • Each Snakedali run can be customized based on the configuration file: config/dali_template.yaml
      • This file can be replicated, and each subsequent modified yaml file is associated with one Snakedali run.
      • From the configuration file users are expected to set up:
        • In-/Output paths for the run
        • pre-built database path
        • query name(s)
        • default DaliLite v5 binary folder path
    5.2 Snakemake Profile
      • Snakedali was designed to work with (Sun Grid Engine) SGE job scheduler

      • The Snakemake profile can be modified to accommodate other schedulers: /profile/config.yaml

      • The default profile includes:

        • cluster job submission: qsub -l h_rt={cluster.time} -j y -pe smp 4 -cwd
        • cluster config path: config/cluster.yaml
        • rerun triggers: mtime
        • n jobs limit: 600
        • latency-wait: 120
        • reason: True
        • rerun-incomplete: True
        • show-failed-logs: True
        • keep-going: True
        • printshellcmds: True
        • jobname: {rule}.{jobid}
        • jobs: 600
      • Make sure to adjust the parameters above according to the house rules of your HPC.

6 Run Snakedali
    • Once the necessary inputs have been set up in the configuration file, Snakedali shall be called as in:
    snakemake --snakefile snakedali.smk --configfile config/dali_template.yaml --profile profile/
    
7 DALI + TCOFFEE Integration
    - The DALI + TCOFFEE workflow is broken down into two parts. - 1. The first script, dali_out_to_fasta.py is a python script that takes in a DALI.txt output (that is, the search results for a DALI query against a database in DALI alignment format) and converts them into individual pariwise alignment files in FASTA format. - 2. The second script is a wrapper that calls on the first script to take in an entire directory of DALI.txt output files to convert them into directories with FASTA format alignments. This script then calls TCOFFEE to merge the FASTA format alignments into multiple sequence alignments. One alignment is generated per DALI.txt output (that is, one DALI query searched against a database) such that there is an alignment generated for every single query. The script invokes TCOFFEE one more time to merge all such alignments into one final multiple-sequence alignment.