dali本地安装和使用

Dali(Distance-matrix ALIgnment)是一种广泛使用的蛋白质结构比对工具,主要用于比较蛋白质三维结构之间的相似性。它通过计算蛋白质结构之间的距离矩阵来评估结构之间的相似性,并生成比对结果。

1. 安装

wget http://ekhidna2.biocenter.helsinki.fi/dali/DaliLite.v5.tar.gz ./
tar -zxvf DaliLite.v5.tar.gz

cd /home/you/DaliLite.v5/bin
make clean
make # ignore Warnings

http://ekhidna2.biocenter.helsinki.fi/dali/README.v5.html

2. 准备文件夹,构建Dali数据库

# 存放dali数据库数据
mkdir -p dali/dali_query_db dali/dali_target_db
cd dali

# 存放原始的pdb文件(或ent文件)
mkdir query_struct target_struct

### 拷贝结构文件到相应的目录
cp ../rag2_structures/* query_struct/
cp ../hits_AF_structure/* target_struct/

3.  构建名称映射

Dali要求结构文件的命名满足pdb数据库中结构文件的命名规范,如果是AF预测的结构或自己命名的结构,需要转换。

转换脚本

vim prepare_ln_for_dali_db.sh

内容:

#!/bin/bash

# Usage: ./prepare_pdb_links.sh /path/to/src_dir [prefix]
# Example: ./prepare_pdb_links.sh /home/user/structures rag2

# Input: source directory containing .pdb files
SRC_DIR="$1"
PREFIX="$2"

if [[ -z "$SRC_DIR" || ! -d "$SRC_DIR" ]]; then
    echo "❌ Please provide a valid source directory containing .pdb files."
    echo "Usage: $0 /path/to/src_dir [prefix]"
    exit 1
fi

# Use directory name as default prefix if not provided
if [[ -z "$PREFIX" ]]; then
    PREFIX=$(basename "$SRC_DIR")
fi

# Output files located in the same directory as SRC_DIR
LINK_DIR="$SRC_DIR/${PREFIX}_renamed_pdbs"
LIST_FILE="$SRC_DIR/${PREFIX}_pdb_list.txt"
MAPPING_FILE="$SRC_DIR/${PREFIX}_pdb_id_mapping.tsv"

mkdir -p "$LINK_DIR"
> "$LIST_FILE"
> "$MAPPING_FILE"

generate_pdb_id() {
    local chars=( {0..9} {A..Z} )
    local id=""
    for ((i = 0; i < 4; i++)); do
        id="${id}${chars[$(( RANDOM % ${#chars[@]} ))]}"
    done
    echo "$id"
}

used_ids=()

for pdb_file in "$SRC_DIR"/*.pdb; do
    [[ -e "$pdb_file" ]] || continue  # Skip if no pdb files

    orig_name=$(basename "$pdb_file")

    while true; do
        new_id=$(generate_pdb_id)
        if [[ ! " ${used_ids[@]} " =~ " ${new_id} " ]]; then
            used_ids+=("$new_id")
            break
        fi
    done

    new_name="pdb${new_id}.ent"
    ln -sf "$(realpath "$pdb_file")" "$LINK_DIR/$new_name"

    echo "$LINK_DIR/$new_name" >> "$LIST_FILE"
    echo -e "$new_name\t$orig_name" >> "$MAPPING_FILE"
done

echo "Soft links created in: $LINK_DIR"
echo "PDB list: $LIST_FILE"
echo "ID mapping: $MAPPING_FILE"

改变模式

chmod +x prepare_ln_for_dali_db.sh

运行:

./prepare_ln_for_dali_db.sh  query_struct query

./prepare_ln_for_dali_db.sh target_struct target

4. 构建Dali数据库

import.pl --pdblist query_struct/query_pdb_list.txt --dat dali_query_db

import.pl --pdblist target_struct/target_pdb_list.txt --dat dali_target_db

5. 准备搜索列表

ls dali_query_db |awk -F '.' '{print $1}' > query.lst

ls dali_target_db |awk -F '.' '{print $1}' > target.lst

注:query.lst 、target.lst 每一行为结构名+链名, 如:0MDTA,0MDT:映射的结构名,符合pdb的命令规范(随机定的,不是pdb的id号),A:表示A链

6. 搜索同源结构

dali.pl --query query.lst --db target.lst  --dat1 dali_query_db --dat2 dali_target_db

#dali.pl --query query.lst --db target.lst  --dat1 dali_query_db --dat2 dali_target_db --np 64

注:不能并行计算,,如需要并行计算需要在安装时:

# if using openmpi (check OPENMPI_PATH in Makefile)
make parallel

结果在 query_name.txt 和 query_name.html文件中,如:1SDPA.txt, 1SDPA.html

参考:

https://ekhidna2.biocenter.helsinki.fi/dali/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值