2022_11_01_mitosearchのblast用データベース更新スクリプト

#!/bin/bash

# SSUなどのデータベースを更新する際、このスクリプトにかける。[cat SSU~.fa pr2~.fa mitofish.fa > ../db/mergedDB.fasta]とした後、このスクリプトでアダプター除去等を行う。
# 使用法:bash create_db.sh [../db/mergedDB.fasta]

db=$1

# makeblastdb,アダプター配列の検索
/suikou/tool/ncbi-blast-2.12.0+/bin/makeblastdb -dbtype nucl -in $db
/suikou/tool/ncbi-blast-2.12.0+/bin/blastn -db $db -query /suikou/db/adapters/Sequencing_adaptors.fasta -outfmt 6| awk '{if($9<$10){print $2"\t"$9-1"\t"$10}else{print $2"\t"$10-1"\t"$9}}' > ${db}.adaptors.bed 

# アダプター配列がヒットした場合のみ、アダプター配列のマスク
if [ `cat ${db}.adaptors.bed|wc -l` -gt 0 ]; then
    bedtools maskfasta -fi $db -bed ${db}.adaptors.bed -fo ${db}.maskadaptors
else
    cat ${db} > ${db}.maskadaptors
fi

# データベースに載っているアクセッションIDのリストを作成
seqkit fx2tab ${db}.maskadaptors|awk -F"\t" '{split($1,array,".");print array[1];}'|awk -F"\t" '{if(substr($1,1,2)=="gb"){split($1,array,"|");print array[2];}else{print;}}' > ${db}.maskadaptors.accessionID

# 上のリストに対応するacc2taxidデータベースの抽出
awk -F"\t" '{if(FILENAME==ARGV[1]){list[$1]=1;}if(FILENAME==ARGV[2]&&$1 in list){print;}}' ${db}.maskadaptors.accessionID <(zcat ../db/nucl_gb.accession2taxid.gz) > ${db}.maskadaptors.nucl_gb.accession2taxid

# 2つ上で抽出したaccession2taxidリストに対応するnames.dumpを抽出
awk -F"\t" '{if(FILENAME==ARGV[1]){list[$3]=1;}if(FILENAME==ARGV[2]&&$1 in list){print;}}' ${db}.maskadaptors.nucl_gb.accession2taxid <(zcat ../db/names.dmp.sname.path.gz) > ${db}.maskadaptors.names.dmp

# NCBIから消去されたアクセッションIDリストを取得
awk -F"\t" '{if(FILENAME==ARGV[1]){list[$1]=1;}if(FILENAME==ARGV[2]){delete list[$1];}}END{for(i in list){print i;}}' ${db}.maskadaptors.accessionID ${db}.maskadaptors.nucl_gb.accession2taxid > ../db/removed_accessionID.txt

# データベースをタブ区切りにして保存
seqkit fx2tab ${db}.maskadaptors > ${db}.maskadaptors.tab

# 消去されたアクセッションIDに対応するデータを除去したデータベースの作成
awk -F"\t" '{if(FILENAME==ARGV[1]){list[$1]=1;}if(FILENAME==ARGV[2]){split($1,array,".");if(substr(array[1],1,2)=="gb"){split(array[1],array2,"|");acc=array2[2];}else{acc=array[1];}if(acc in list){}else{print;}}}' ../db/removed_accessionID.txt ${db}.maskadaptors.tab|seqkit tab2fx > ../db/database.fasta

# makeblastdb
/suikou/tool/ncbi-blast-2.12.0+/bin/makeblastdb -dbtype nucl -in ../db/database.fasta
  • 2022_11_01_mitosearchのblast用データベース更新スクリプト.1668756221.txt.gz
  • 最終更新: 2022/11/18 07:23
  • by 133.11.50.163