fix example ssh command
[arvados.git] / doc / user / tutorial-gatk-variantfiltration.textile
1 ---
2 layout: default
3 navsection: userguide
4 title: "Tutorial: GATK VariantFiltration"
5 navorder: 22
6 ---
7
8 h1. Tutorial: GATK VariantFiltration
9
10 Here you will use the GATK VariantFiltration program to assign pass/fail scores to variants in a VCF file.
11
12 h3. Prerequisites
13
14 * Log in to a VM "using SSH":ssh-access.html
15 * Put an "API token":api-tokens.html in your @ARVADOS_API_TOKEN@ environment variable
16 * Put the API host name in your @ARVADOS_API_HOST@ environment variable
17
18 If everything is set up correctly, the command @arv -h user current@ will display your account information.
19
20 h3. Get the GATK binary distribution.
21
22 Download the GATK binary tarball[1] -- e.g., @GenomeAnalysisTK-2.6-4.tar.bz2@ -- and copy it to your Arvados VM.
23
24 Store it in Keep.
25
26 <pre>
27 arv keep put --in-manifest GenomeAnalysisTK-2.6-4.tar.bz2
28 </pre>
29
30 &darr;
31
32 <pre>
33 c905c8d8443a9c44274d98b7c6cfaa32+94+K@qr1hi
34 </pre>
35
36 h3. Get the GATK resource bundle.
37
38 This can take a while to download, and should already be available in Arvados. For now let's just list the files and sizes, to make sure we have the correct collection ID.
39
40 <pre>
41 arv keep ls -s d237a90bae3870b3b033aea1e99de4a9+10820+K@qr1hi
42 </pre>
43
44 &darr;
45
46 <pre>
47   50342 1000G_omni2.5.b37.vcf.gz
48       1 1000G_omni2.5.b37.vcf.gz.md5
49     464 1000G_omni2.5.b37.vcf.idx.gz
50       1 1000G_omni2.5.b37.vcf.idx.gz.md5
51   43981 1000G_phase1.indels.b37.vcf.gz
52 ...
53 </pre>
54
55 h3. Submit a job.
56
57 The Arvados distribution includes an example crunch script ("crunch_scripts/GATK2-VariantFiltration":https://arvados.org/projects/arvados/repository/revisions/master/entry/crunch_scripts/GATK2-VariantFiltration) that runs the GATK VariantFiltration tool with some default settings.
58
59 We will pass it the following parameters:
60
61 * input -- a collection containing the source VCF data. Here we will use an exome report from PGP participant hu34D5B9.
62 * gatk_binary_tarball -- a collection containing the GATK 2 tarball.
63 * gatk_bundle -- a collection containing the GATK resource bundle[2].
64
65 <pre>
66 src_version=76588bfc57f33ea1b36b82ca7187f465b73b4ca4
67 vcf_input=5ee633fe2569d2a42dd81b07490d5d13+82+K@qr1hi
68 gatk_binary=c905c8d8443a9c44274d98b7c6cfaa32+94+K@qr1hi
69 gatk_bundle=d237a90bae3870b3b033aea1e99de4a9+10820+K@qr1hi
70
71 read -rd $'\000' the_job <<EOF
72 {
73  "script":"GATK2-VariantFiltration",
74  "script_version":"$src_version",
75  "script_parameters":
76  {
77   "input":"$vcf_input",
78   "gatk_binary_tarball":"$gatk_binary",
79   "gatk_bundle":"$gatk_bundle"
80  }
81 }
82 EOF
83
84 arv -h job create --job "$the_job"
85 </pre>
86
87 Note the job UUID in the API response.
88
89 h3. Monitor job progress
90
91 There are three ways to monitor job progress:
92
93 # Go to Workbench, drop down the Compute menu, and click Jobs. The job you submitted should appear at the top of the list. Hit "Refresh" until it finishes.
94 # Run @arv -h job get --uuid JOB_UUID_HERE@ to see the job particulars, notably the "tasks_summary" attribute which indicates how many tasks are done/running/todo.
95 # Watch the crunch log messages and stderr from the job tasks:
96
97 <pre>
98 curl -s -H "Authorization: OAuth2 $ARVADOS_API_TOKEN" \
99   https://{{ site.arvados_api_host }}/arvados/v1/jobs/JOB_UUID_HERE/log_tail_follow
100 </pre>
101
102 h3. Notes
103
104 fn1. Download the GATK tools &rarr; http://www.broadinstitute.org/gatk/download
105
106 fn2. Information about the GATK resource bundle &rarr; http://gatkforums.broadinstitute.org/discussion/1213/whats-in-the-resource-bundle-and-how-can-i-get-it