File: goby-align.qsub

package info (click to toggle)
libgoby-java 3.3.1%2Bdfsg2-11
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 58,108 kB
  • sloc: java: 78,105; cpp: 5,011; xml: 3,170; python: 2,108; sh: 1,575; ansic: 277; makefile: 114
file content (86 lines) | stat: -rw-r--r-- 2,757 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/sh -x

# Determines the queue a job is submitted to
#PBS -q %PBS_QUEUE%

# Name of the job
#PBS -N %PBS_JOB_NAME%-aln

# Combine PBS error and output files.
#PBS -j oe

# Memory resource requirements
#PBS -l mem=%PBS_MEMORY%

# Mail job status at completion
#PBS -m ae
%PBS_MAILTO_DIRECTIVE%

%PBS_ARRAY_DIRECTIVE%

#
# Output some useful PBS job information
#
echo ------------------------------------------------------
echo Job is running on the following nodes:
cat ${PBS_NODEFILE}
echo ------------------------------------------------------
echo PBS: qsub is running on ${PBS_O_HOST}
echo PBS: originating queue is ${PBS_O_QUEUE}
echo PBS: executing queue is ${PBS_QUEUE}
echo PBS: working directory is ${PBS_O_WORKDIR}
echo PBS: execution mode is ${PBS_ENVIRONMENT}
echo PBS: job identifier is ${PBS_JOBID}
echo PBS: job name is ${PBS_JOBNAME}
echo PBS: task number is ${PBS_TASKNUM}
echo PBS: node number is ${PBS_NODENUM}
echo PBS: node file is ${PBS_NODEFILE}
echo PBS: array index is ${PBS_ARRAY_INDEX}
echo PBS: current home directory is ${PBS_O_HOME}
echo PBS: scratch directory is ${TMPDIR}
echo PBS: PATH = ${PBS_O_PATH}
echo ------------------------------------------------------

# The reference file to align with
REFERENCE=%REFERENCE%
REFERENCE_FILE=${REFERENCE##*/}
REFERENCE_INDEX_NAME=${REFERENCE_FILE%.*}.fasta
REFERENCE_INDEX_DIRECTORY=%REFERENCE_INDEX_DIRECTORY%

# The reads file to process
READS=%READS%
READS_FILE=${READS##*/}

# Copy the goby and support tools to the local node
# TODO: copy bwa and log4j, etc.
/bin/cp ${PBS_O_WORKDIR}/goby.jar ${TMPDIR}

# Extract the reads if a split is needed
if [ ! -z ${PBS_ARRAY_INDEX} ]; then
    CHUNK_SIZE=%CHUNK_SIZE%
    START_POSITION=$(($PBS_ARRAY_INDEX * $CHUNK_SIZE))
    END_POSITION=$(($START_POSITION + $CHUNK_SIZE - 1))
    cd ${TMPDIR}
    java %PBS_JVM_FLAGS% -Dlog4j.debug=true -Dlog4j.configuration=file:log4j.properties \
        -jar goby.jar --mode reformat-compact-reads --output ${READS_FILE} \
        --start-position ${START_POSITION} --end-position ${END_POSITION} ${READS}
else
    /bin/cp ${READS} ${TMPDIR}
fi

# Run the alignment
cd ${TMPDIR}
java %PBS_JVM_FLAGS% -Dlog4j.debug=true -Dlog4j.configuration=file:log4j.properties -jar goby.jar \
    --mode align %COLORSPACE% --reference ${REFERENCE} --aligner %ALIGNER% --search \
    --database-name ${REFERENCE_INDEX_NAME} --database-directory ${REFERENCE_INDEX_DIRECTORY} \
    --reads ${READS_FILE} --basename %BASENAME%

# Copy the results back
if [ -z ${PBS_ARRAY_INDEX} ]; then
    RESULT_DIR=${PBS_O_WORKDIR}/results/%BASENAME%
else
    RESULT_DIR=${PBS_O_WORKDIR}/split-results/%BASENAME%-${PBS_ARRAY_INDEX}
fi

/bin/mkdir -p ${RESULT_DIR}
/bin/cp *.entries *.header *.stats *.tmh ${RESULT_DIR}