***After generating all VCF files you want to include in the panel,*** | |||||
***you can use bcftools-merge to merge them into a single Panel of Normal VCF.*** | |||||
#### Usage | #### Usage | ||||
$ open-choppy-env | |||||
$ choppy install YaqingLiu/bcftools | |||||
```shell | |||||
# Enter the Choppy work environment | |||||
open-choppy-env | |||||
# APP `bcftools-merge` should be installed for the first time | |||||
choppy install YaqingLiu/bcftools-merge | |||||
# Create input file `samples.json` | |||||
touch samples.json | |||||
# Submit your job | |||||
choppy batch YaqingLiu/bcftools-merge-latest samples.json -p project_name | |||||
``` | |||||
#### Input File | #### Input File | ||||
Input file should be in the form of json. | |||||
Input file `samples.json` should be in the form of json. | |||||
For example: | For example: | ||||
``` | |||||
```json | |||||
{ | { | ||||
"vcf": [ | "vcf": [ | ||||
"oss://choppy-cromwell-result/test-choppy/..._pon.vcf", | "oss://choppy-cromwell-result/test-choppy/..._pon.vcf", | ||||
"oss://choppy-cromwell-result/test-choppy/..._pon.vcf", | "oss://choppy-cromwell-result/test-choppy/..._pon.vcf", | ||||
"oss://choppy-cromwell-result/test-choppy/..._pon.vcf" | "oss://choppy-cromwell-result/test-choppy/..._pon.vcf" | ||||
], | ], | ||||
"sample_id": "somatic_normal" | |||||
"panel_id": "PON_20200923", | |||||
"sample_id": "PON_20200923" | |||||
} | } | ||||
``` | |||||
``` | |||||
*PS: sample_id is necessary for Choppy system* |
{ | { | ||||
"{{ project_name }}.vcf": {{ vcf | tojson }}, | |||||
"{{ project_name }}.panel_id": {{ panel_id }} | |||||
"{{ project_name }}.bcftools_docker": "{{ bcftools_docker }}", | "{{ project_name }}.bcftools_docker": "{{ bcftools_docker }}", | ||||
"{{ project_name }}.vcf": {{ vcf | tojson }}, | |||||
"{{ project_name }}.disk_size": "{{ disk_size }}", | "{{ project_name }}.disk_size": "{{ disk_size }}", | ||||
"{{ project_name }}.cluster_config": "{{ cluster_config }}" | "{{ project_name }}.cluster_config": "{{ cluster_config }}" | ||||
} | } |
task bcftools { | task bcftools { | ||||
Array[File] vcf | Array[File] vcf | ||||
String panel_id | |||||
String docker | String docker | ||||
String cluster_config | String cluster_config | ||||
String disk_size | String disk_size | ||||
bcftools index /cromwell_root/tmp/bcftools/$(basename $i.gz) -f | bcftools index /cromwell_root/tmp/bcftools/$(basename $i.gz) -f | ||||
done | done | ||||
bcftools merge -m all -f PASS,. --force-samples /cromwell_root/tmp/bcftools/*.vcf.gz | bcftools plugin fill-AN-AC | bcftools filter -i 'SUM(AC)>1' > panel_of_normal.vcf | |||||
bcftools merge -m all -f PASS,. --force-samples /cromwell_root/tmp/bcftools/*.vcf.gz | bcftools plugin fill-AN-AC | bcftools filter -i 'SUM(AC)>1' > ${panel_id}_pon.vcf | |||||
>>> | >>> | ||||
runtime { | runtime { | ||||
} | } | ||||
output { | output { | ||||
File panel_of_normal_vcf = "panel_of_normal.vcf" | |||||
File panel_of_normal_vcf = "${panel_id}_pon.vcf" | |||||
} | } | ||||
} | } |
String disk_size | String disk_size | ||||
String cluster_config | String cluster_config | ||||
Array[File] vcf | Array[File] vcf | ||||
String panel_id | |||||
call bcftools.bcftools as bcftools { | call bcftools.bcftools as bcftools { | ||||
input: | input: | ||||
vcf=vcf, | vcf=vcf, | ||||
panel_id=panel_id, | |||||
docker=bcftools_docker, | docker=bcftools_docker, | ||||
disk_size=disk_size, | disk_size=disk_size, | ||||
cluster_config=cluster_config | cluster_config=cluster_config |