**文書の過去の版を表示しています。**
20210728
mitoFishデータベースのInputファイルを作成
・SRR5877065が未終了。Blastが動作しており、書き込みが続いていることを確認。
・リード数がペアエンド間で異なるシーケンスデータに関しては、片側のみを用いるように変更。
nt Blastに必要な時間の計測
・5readのシーケンスデータを用いて、ntデータベースにBlast検索を行う。1readあたりの時間を算出。
以下概算
blast 10:52~11:05 15min/5read
3min/read
シーケンスデータ数 1798 ≒ 1800
1sample辺り 1万リード (1.8 * 10^3) * (1 * 10^4)read * 3min/read = 5.4 * 10^7 min = 54000000 = 5400万 min = 90万 h = 3.75万 日 = (10CPU: 3750日) = (30台:100日)
1sample辺り nリード (1.8 * 10^3) * n read * 3min/read = 5400n min = 90n hour = 3.75n days
ntデータベースとmitofishデータベースの比較
mitoFishのデータベースの場合、人のDNAがコンタミしていた場合でも、サメの12Sの配列と認識してしまう可能性があり、一致率を検討してあげる必要がある。
以下の2点について調べる。
・ntデータベースとMitoFishデータベースによるinputファイルの違い。
・Blast結果ファイルに記述されているIndentityの値など。
以下のスクリプトを実行した。
run_gridcompute.sh
#sample data(Ex:/suikou/files/m208/ito.takumi/work/mitosearch/create_input/sample.txt) sample=$1 #run grid engine for prefix in `cat ${sample}` ;do runGE-8cpu-128gb-512gb-machine bash /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/script/create_input_ver3.sh ${prefix} ;done
createinputver3.sh
#!/bin/bash prefix=$1 #create tmp dir mkdir -p /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix} if [ -e /suikou/files/m512/backup/r311/eDNA/${prefix}_1.fastq.gz -a -e /suikou/files/m512/backup/r311/eDNA/${prefix}_2.fastq.gz ]; then #ファイルをコピー(Flashが上手く行かなかった時に使うシーケンスデータ) cp /suikou/files/m512/backup/r311/eDNA/${prefix}_1.fastq.gz /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix} #解凍(Flashが上手く行かなかった時に使うシーケンスデータ) gunzip /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/${prefix}_1.fastq.gz #ペアエンドのfastqのセットをシングルエンドのfastqに変換。もしエラー(リード数がペアエンド間で異なるなど)の場合は1側のリードを使う。 flash /suikou/files/m512/backup/r311/eDNA/${prefix}_1.fastq.gz /suikou/files/m512/backup/r311/eDNA/${prefix}_2.fastq.gz -d /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix} -M 300 || mv /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/${prefix}_1.fastq /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/out.extendedFrags.fastq #fastqファイルをfastaファイルに変換。 awk '(NR - 1) % 4 < 2' /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/out.extendedFrags.fastq | sed 's/@/>/' > /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/out.extendedFrags.fasta #mitoFishデータベースにBlast検索を行う。 blastn -num_threads 8 -db /suikou/files/m208/ito.takumi/work/mitosearch/mitofish_db/complete_partial_mitogenomes.fa -query /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/out.extendedFrags.fasta -outfmt "6 qseqid sseqid qlen slen pident length mismatch gapopen qstart qend sstart send evalue bitscore staxids stitle" -max_target_seqs 1 -out /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.mitodb.result #ntデータベースに対してBLAST検索を行う。 /suikou/files/m208/ito.takumi/work/tool/blast/ncbi-blast-2.9.0+/bin/blastn -num_threads 8 -db /suikou/db/ncbi/2021-05-24_nt_v5_formal/nt -query /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/out.extendedFrags.fasta -outfmt "6 qseqid sseqid qlen slen pident length mismatch gapopen qstart qend sstart send evalue bitscore staxids stitle" -max_target_seqs 1 -out /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.nt.result #Inputファイルのヘッダを書き込み(MitoFishデータベースとntデータベースで2つ作成。) echo -e "id\t${prefix}.fastq" > /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.mitodb.input echo -e "id\t${prefix}.fastq" > /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.nt.input #Inputファイル書き込み cut -f 16 /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.mitodb.result |sort |uniq -c |sort -r -n |awk 'BEGIN{OFS="\t"} {c="";for(i=2;i<=NF;i++) c=c $i" "; print c, $1}' >> /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.mitodb.input cut -f 16 /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.nt.result |sort |uniq -c |sort -r -n |awk 'BEGIN{OFS="\t"} {c="";for(i=2;i<=NF;i++) c=c $i" "; print c, $1}' >> /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.nt.input else if [ -e /suikou/files/m512/backup/r311/eDNA/${prefix}_1.fastq.gz ]; then #ファイルをコピー cp /suikou/files/m512/backup/r311/eDNA/${prefix}_1.fastq.gz /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix} #解凍 gunzip /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/${prefix}_1.fastq.gz #fastqファイルをfastaファイルに変換。 awk '(NR - 1) % 4 < 2' /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/${prefix}_1.fastq | sed 's/@/>/' > /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/out.extendedFrags.fasta #mitoFishデータベースにBlast検索を行う。 blastn -num_threads 8 -db /suikou/files/m208/ito.takumi/work/mitosearch/mitofish_db/complete_partial_mitogenomes.fa -query /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/out.extendedFrags.fasta -outfmt "6 qseqid sseqid qlen slen pident length mismatch gapopen qstart qend sstart send evalue bitscore staxids stitle" -max_target_seqs 1 -out /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.mitodb.result #ntデータベースに対してBLAST検索を行う。 /suikou/files/m208/ito.takumi/work/tool/blast/ncbi-blast-2.9.0+/bin/blastn -num_threads 8 -db /suikou/db/ncbi/2021-05-24_nt_v5_formal/nt -query /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/out.extendedFrags.fasta -outfmt "6 qseqid sseqid qlen slen pident length mismatch gapopen qstart qend sstart send evalue bitscore staxids stitle" -max_target_seqs 1 -out /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.nt.result #Inputファイルのヘッダを書き込み(MitoFishデータベースとntデータベースで2つ作成。) echo -e "id\t${prefix}.fastq" > /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.mitodb.input echo -e "id\t${prefix}.fastq" > /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.nt.input #Inputファイル書き込み cut -f 16 /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.mitodb.result |sort |uniq -c |sort -r -n |awk 'BEGIN{OFS="\t"} {c="";for(i=2;i<=NF;i++) c=c $i" "; print c, $1}' >> /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.mitodb.input cut -f 16 /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.nt.result |sort |uniq -c |sort -r -n |awk 'BEGIN{OFS="\t"} {c="";for(i=2;i<=NF;i++) c=c $i" "; print c, $1}' >> /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.nt.input fi if [ -e /suikou/files/m512/backup/r311/eDNA/${prefix}_2.fastq.gz ]; then #ファイルをコピー cp /suikou/files/m512/backup/r311/eDNA/${prefix}_2.fastq.gz /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix} #解凍 gunzip /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/${prefix}_2.fastq.gz #fastqファイルをfastaファイルに変換。 awk '(NR - 1) % 4 < 2' /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/${prefix}_2.fastq | sed 's/@/>/' > /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/out.extendedFrags.fasta #mitoFishデータベースにBlast検索を行う。 blastn -num_threads 8 -db /suikou/files/m208/ito.takumi/work/mitosearch/mitofish_db/complete_partial_mitogenomes.fa -query /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/out.extendedFrags.fasta -outfmt "6 qseqid sseqid qlen slen pident length mismatch gapopen qstart qend sstart send evalue bitscore staxids stitle" -max_target_seqs 1 -out /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.mitodb.result #ntデータベースに対してBLAST検索を行う。 /suikou/files/m208/ito.takumi/work/tool/blast/ncbi-blast-2.9.0+/bin/blastn -num_threads 8 -db /suikou/db/ncbi/2021-05-24_nt_v5_formal/nt -query /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/out.extendedFrags.fasta -outfmt "6 qseqid sseqid qlen slen pident length mismatch gapopen qstart qend sstart send evalue bitscore staxids stitle" -max_target_seqs 1 -out /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.nt.result #Inputファイルのヘッダを書き込み(MitoFishデータベースとntデータベースで2つ作成。) echo -e "id\t${prefix}.fastq" > /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.mitodb.input echo -e "id\t${prefix}.fastq" > /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.nt.input #Inputファイル書き込み cut -f 16 /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.mitodb.result |sort |uniq -c |sort -r -n |awk 'BEGIN{OFS="\t"} {c="";for(i=2;i<=NF;i++) c=c $i" "; print c, $1}' >> /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.mitodb.input cut -f 16 /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix}/blast.nt.result |sort |uniq -c |sort -r -n |awk 'BEGIN{OFS="\t"} {c="";for(i=2;i<=NF;i++) c=c $i" "; print c, $1}' >> /suikou/files/m208/ito.takumi/work/mitosearch/test_data/compare/output/${prefix}.nt.input fi # rm -r /suikou/files/m768b/ito.takumi/work/mitosearch/create_input/tmp/${prefix} fi
またGridエンジンでCPU8コア、メモリ16GB(1コアあたり)、512GB以上のメモリを持っているサーバでのみ分散処理を行うように変更。
qsub -q all.q@m512* -q all.q@m768* -q all.q@m1536* -pe def_slot 8 -l mem_req=16G -j Y -r yes -N $name /suikou/tool/yoshitake/qsubsh4 "$*"