0

同じ infile のフィールドを awks し、出力に追加する slurm クラスターにバッチ ファイルを送信しています。最初の数行は機能しますが、突然機能しなくなります。2回目の反響の前に死ぬ。誰かがデバッグしたり、より良いスクリプトを見せてくれたりするといいのですが、同じジョブを何度も実行しているときに bash ファイルがクラッシュする理由 (またはクラッシュする場合) を知りたいです。

#!/bin/bash
#SBATCH -A b2014091
#SBATCH -p core
#SBATCH -n 1
#SBATCH -t 23:00:00
#SBATCH -J sbatch

#input was MK...vcf

input=$1

output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="1/1") && (substr($15,1,3)=="1/1") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="0/0") && (substr($15,1,3)=="0/0") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="1/1") && (substr($15,1,3)=="./.") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="./.") && (substr($15,1,3)=="1/1") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="0/0") && (substr($15,1,3)=="./.") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="./.") && (substr($15,1,3)=="0/0") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt

エラーメッセージ:

slurmstepd: get_exit_code タスク 0 がシグナルによって停止しました

フィールド 12-15 の例:

1/1:0,38:38:99:1149,114,0       1/1:0,39:39:99:1161,117,0       1/1:0,46:46:99:1383,138,0       0/1:21,18:39:99:413,0,524 
4

1 に答える 1

0

多分あなたはこれをすべて変更することができます:

input=$1

output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="1/1") && (substr($15,1,3)=="1/1") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="0/0") && (substr($15,1,3)=="0/0") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="1/1") && (substr($15,1,3)=="./.") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="./.") && (substr($15,1,3)=="1/1") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="0/0") && (substr($15,1,3)=="./.") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt
output=$(grep -v '^#' ${input} | awk '(substr($12,1,3)=="./.") && (substr($15,1,3)=="0/0") {print $0}')
echo "$output\n" >> /proj/b2014091/nobackup/potHomoF1.txt

これに?

awk '!/^#/ && substr($12,1,3)~/[01.]\/[01.]/ && substr($15,1,3)~/[01.]\/[01.]/' <<< $1 > /proj/b2014091/nobackup/potHomoF1.txt

これの両方を試してください:

awk '{a=substr($12,1,3);b=substr($15,1,3)} !/^#/ && ((a=="1/1" && b=="1/1") || (a=="0/0" && b=="0/0") || (a=="1/1" && b=="./.") || (a=="./." && b=="1/1") || (a=="0/0" && b=="./.") || (a=="./." && b=="0/0"))' $1 > /proj/b2014091/nobackup/potHomoF1.txt

また

input=$1
awk '{a=substr($12,1,3);b=substr($15,1,3)} !/^#/ && ((a=="1/1" && b=="1/1") || (a=="0/0" && b=="0/0") || (a=="1/1" && b=="./.") || (a=="./." && b=="1/1") || (a=="0/0" && b=="./.") || (a=="./." && b=="0/0"))' ${input} > /proj/b2014091/nobackup/potHomoF1.txt
于 2014-09-08T10:36:42.497 に答える