0
나는과 같이 표준 SLURM 제출을 사용하여 스크립트를 제출 마스터 스크립트가 : 실행시올바른 이스케이프는
cat > $jobfile <<EOF
#!/bin/bash
# auto-generated job file
# generated from $PWD/$0
# on ${DATE}
#SBATCH --job-name=PAINTOR_${UIDN}_${ETH}_JOB
#SBATCH --ntasks=1 ##Number of PROCESSES
#SBATCH --cpus-per-task=1 ##Number of PROCESSES
#SBATCH --mem-per-cpu=5000 ##Memory specified for each core used (in MB) (no cores, use --mem=)
#SBATCH -t 2-02:00:00 ##Runtime in D-HH:MM:SS
#SBATCH --share
#SBATCH --partition=medium ## express(2h), short(12h), medium(2d2h), long(6d6h), interactive(2h)
#
#SBATCH --mail-user=${USER}@uab.edu
#SBATCH --mail-type=ALL ## BEGIN, END, ERROR, ALL
#
#SBATCH --error=${LOG_DIR}/%j.%N.err.txt ##File to which STDERR will be written
#SBATCH --output=${LOG_DIR}/%j.%N.out.txt ## File to which STDOUT will be written
, 마스터 스크립트의이 부분을
LNGTH=`awk '{print NF}' ${TARG}/${UIDN}.annotations | tail -1`
for NUM in \$(eval "echo {1..\$LNGTH}"); do
ANNOT_COL=`head -1 ${TARG}/${UIDN}.annotations | awk -v NUM=\$NUM '{print \$NUM}'`
if [ ! -f ${TEMP_DIR}/${UIDN}/Gname.Enrich.\$ANNOT_COL ]; then
$PAINTOR -input ${TARG}/input.files \
-Zhead ZSCORE.AFR,ZSCORE.EAS,ZSCORE.AFR \
-LDname AFR.LD,EAS.LD,EUR.LD \
-in ${TARG}/ \
-out $TEMP_DIR/${UIDN}/ \
-enumerate 2 \
-annotations \$ANNOT_COL \
-Gname Gname.Enrich.\$ANNOT_COL \
-Lname Lname.BF.\$ANNOT_COL
fi
done
지문으로 슬레이브 스크립트 :이의
LNGTH=8134
for NUM in $(eval "echo {1..$LNGTH}"); do
ANNOT_COL=E001_15_coreMarks_mnemonics.bed.10_TssBiv.ES-I3_Cell_Line E001_15_coreMarks_mnemonics.bed.11_BivFlnk.ES-I3_Cell_Line E001_15_coreMarks_mnemonics.bed.12_EnhBiv.ES-I3_$
if [ ! -f /data/scratch/vlaufer/PAINTOR3/temp/CLEAR_Okada_21_43755067_43955067/Gname.Enrich.$ANNOT_COL ]; then
/data/scratch/vlaufer/PAINTOR3/PAINTOR_V3.0/PAINTOR -input /data/scratch/vlaufer/PAINTOR3/Prepped_Input_Files/CLEAR_Okada_21_43755067_43955067/input.files -Zhead ZSCOR$
fi
done
대부분이 나타납니다
작동하려면, 나는 리를 믿는다 실패한 행은ANNOT_COL=
을 포함하는 행입니다. 이 행은
$NUM
과 같은 값을 갖는 열에 해당하는 주석 만 인쇄해야합니다 (즉,
$NUM
이 10이면 모든 열이 아닌
${TARG}/${UIDN}.annotations
파일의 첫 번째 줄의 열 10 번째가 인쇄되어야 함) 특히 혼란스러운 부분 나에게 내가 문제가 문자를 탈출 함께 생각한다.
LNGTH=
라인이 작동하는 것 같다, 매우 유사한 구문을 가지고
,하지만 난 모르겠습니다.
전체 스크립트의 간단한 대안으로'GNU 병렬 '도구가 있습니다. https://www.gnu.org/software/parallel/ – damienfrancois
제안 해 주셔서 감사합니다. 그러나 분석을 수행하는 컴퓨터 클러스터는 그러한 해결책을 제공하지 않습니다. –