
Convert VCF with multiple samples to a VCF with one SAMPLE, duplicating variant and adding the sample name in the INFO column.
This program is now part of the main jvarkit tool. See jvarkit for compiling.
Usage: java -jar dist/jvarkit.jar vcfmulti2one [options] Files
Usage: vcfmulti2one [options] Files
Options:
--anonymize, -x
anonymize samples
Default: false
--bcf-output
If this program writes a VCF to a file, The format is first guessed from
the file suffix. Otherwise, force BCF output. The current supported BCF
version is : 2.1 which is not compatible with bcftools/htslib (last
checked 2019-11-15)
Default: false
-r, --hr, -hr, --discard_hom_ref
discard if variant is hom-ref
Default: false
-c, --nc, -nc, --discard_no_call
discard if variant is no-call
Default: false
-a, --discard_non_available
discard if variant is not available (see htsjdk definition 'available if
the type of this genotype is set')
Default: false
--generate-vcf-md5
Generate MD5 checksum for VCF output.
Default: false
-h, --help
print help and exit
--helpFormat
What kind of help. One of [usage,markdown,xml].
-o, --out
Output file. Optional . Default: stdout
--version
print version and exit
20150312
The project is licensed under the MIT license.
Should you cite vcfmulti2one ? https://github.com/mr-c/shouldacite/blob/master/should-I-cite-this-software.md
The current reference is:
http://dx.doi.org/10.6084/m9.figshare.1425030
Lindenbaum, Pierre (2015): JVarkit: java-based utilities for Bioinformatics. figshare. http://dx.doi.org/10.6084/m9.figshare.1425030
if there is only one input with the ‘.list’ suffix, it is interpreted as a file containing the path to the vcf files
$ curl -s "http://ftp-trace.ncbi.nih.gov/1000genomes/ftp/release/20130502/ALL.chr1.phase3_shapeit2_mvncall_integrated_v5.20130502.genotypes.vcf.gz" |\
gunzip -c |\
java -jar dist/jvarkit.jar vcfmulti2one -c -r -a |\
grep -v '##' |\
grep -E '(CHROM|SAMPLENAME)' | head | verticalize
>>> 2
$1 #CHROM : 1
$2 POS : 10177
$3 ID : .
$4 REF : A
$5 ALT : AC
$6 QUAL : 100
$7 FILTER : PASS
$8 INFO : AA=|||unknown(NO_COVERAGE);AC=2130;AF=0.425319;AFR_AF=0.4909;AMR_AF=0.3602;AN=5008;DP=103152;EAS_AF=0.3363;EUR_AF=0.4056;NS=2504;SAMPLENAME=HG00096;SAS_AF=0
.4949
$9 FORMAT : GT
$10 SAMPLE : 1|0
<<< 2
>>> 3
$1 #CHROM : 1
$2 POS : 10177
$3 ID : .
$4 REF : A
$5 ALT : AC
$6 QUAL : 100
$7 FILTER : PASS
$8 INFO : AA=|||unknown(NO_COVERAGE);AC=2130;AF=0.425319;AFR_AF=0.4909;AMR_AF=0.3602;AN=5008;DP=103152;EAS_AF=0.3363;EUR_AF=0.4056;NS=2504;SAMPLENAME=HG00097;SAS_AF=0
.4949
$9 FORMAT : GT
$10 SAMPLE : 0|1
<<< 3
>>> 4
$1 #CHROM : 1
$2 POS : 10177
$3 ID : .
$4 REF : A
$5 ALT : AC
$6 QUAL : 100
$7 FILTER : PASS
$8 INFO : AA=|||unknown(NO_COVERAGE);AC=2130;AF=0.425319;AFR_AF=0.4909;AMR_AF=0.3602;AN=5008;DP=103152;EAS_AF=0.3363;EUR_AF=0.4056;NS=2504;SAMPLENAME=HG00099;SAS_AF=0
.4949
$9 FORMAT : GT
$10 SAMPLE : 0|1
<<< 4
>>> 5
$1 #CHROM : 1
$2 POS : 10177
$3 ID : .
$4 REF : A
$5 ALT : AC
$6 QUAL : 100
$7 FILTER : PASS
$8 INFO : AA=|||unknown(NO_COVERAGE);AC=2130;AF=0.425319;AFR_AF=0.4909;AMR_AF=0.3602;AN=5008;DP=103152;EAS_AF=0.3363;EUR_AF=0.4056;NS=2504;SAMPLENAME=HG00100;SAS_AF=0
.4949
$9 FORMAT : GT
$10 SAMPLE : 1|0
<<< 5
>>> 6
$1 #CHROM : 1
$2 POS : 10177
$3 ID : .
$4 REF : A
$5 ALT : AC
$6 QUAL : 100
$7 FILTER : PASS
$8 INFO : AA=|||unknown(NO_COVERAGE);AC=2130;AF=0.425319;AFR_AF=0.4909;AMR_AF=0.3602;AN=5008;DP=103152;EAS_AF=0.3363;EUR_AF=0.4056;NS=2504;SAMPLENAME=HG00102;SAS_AF=0
.4949
$9 FORMAT : GT
$10 SAMPLE : 1|0
<<< 6
>>> 7
$1 #CHROM : 1
$2 POS : 10177
$3 ID : .
$4 REF : A
$5 ALT : AC
$6 QUAL : 100
$7 FILTER : PASS
$8 INFO : AA=|||unknown(NO_COVERAGE);AC=2130;AF=0.425319;AFR_AF=0.4909;AMR_AF=0.3602;AN=5008;DP=103152;EAS_AF=0.3363;EUR_AF=0.4056;NS=2504;SAMPLENAME=HG00103;SAS_AF=0
.4949
$9 FORMAT : GT
$10 SAMPLE : 1|0
<<< 7
>>> 8
$1 #CHROM : 1
$2 POS : 10177
$3 ID : .
$4 REF : A
$5 ALT : AC
$6 QUAL : 100
$7 FILTER : PASS
$8 INFO : AA=|||unknown(NO_COVERAGE);AC=2130;AF=0.425319;AFR_AF=0.4909;AMR_AF=0.3602;AN=5008;DP=103152;EAS_AF=0.3363;EUR_AF=0.4056;NS=2504;SAMPLENAME=HG00105;SAS_AF=0
.4949
$9 FORMAT : GT
$10 SAMPLE : 1|0
<<< 8
>>> 9
$1 #CHROM : 1
$2 POS : 10177
$3 ID : .
$4 REF : A
$5 ALT : AC
$6 QUAL : 100
$7 FILTER : PASS
$8 INFO : AA=|||unknown(NO_COVERAGE);AC=2130;AF=0.425319;AFR_AF=0.4909;AMR_AF=0.3602;AN=5008;DP=103152;EAS_AF=0.3363;EUR_AF=0.4056;NS=2504;SAMPLENAME=HG00106;SAS_AF=0
.4949
$9 FORMAT : GT
$10 SAMPLE : 1|0
<<< 9
>>> 10
$1 #CHROM : 1
$2 POS : 10177
$3 ID : .
$4 REF : A
$5 ALT : AC
$6 QUAL : 100
$7 FILTER : PASS
$8 INFO : AA=|||unknown(NO_COVERAGE);AC=2130;AF=0.425319;AFR_AF=0.4909;AMR_AF=0.3602;AN=5008;DP=103152;EAS_AF=0.3363;EUR_AF=0.4056;NS=2504;SAMPLENAME=HG00114;SAS_AF=0
.4949
$9 FORMAT : GT
$10 SAMPLE : 0|1
<<< 10