Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
-- coding: utf-8 --()					   -- coding: utf-8 --()

VCFLib API
     This  document describes the VCFLIB API as it is used by the vcflib modules
     and  the  python  ffi.   vcflib  follows  the  VCF  standard   (http://sam-
     tools.github.io/hts-specs/VCFv4.1.pdf).

     VCFLIB  contains  a  lot of functionality, but the basis of going through a
     VCF file and fetching record (by record) information is straightforward and
     visible in all modules.  A recent example can be found in vcfwave.

   Open the VCF file
	    VariantCallFile variantFile;

	    if (optind < argc) {
		string filename = argv[optind];
		variantFile.open(filename);
	    } else {
		variantFile.open(std::cin);
	    }

	    if (!variantFile.is_open()) {
		return 1;
	    }

   Read records
     The following will parse the records and you can print out  the  first  two
     fields with

	    Variant var(variantFile);
	    while (variantFile.getNextVariant(var)) {
	      cout << var.sequenceName << " " << var.position << endl;
	    }

   Other fields
     In    the	  file	 Variant.h   (https://github.com/vcflib/vcflib/blob/mas-
     ter/src/Variant.h) the Variant class is defined with fields/accessors, such
     as

		string sequenceName;
		long position;
		long zeroBasedPosition(void) const;
		string id;
		string ref;
		vector<string> alt;	 // a list of all the alternate alleles present at this locus
		vector<string> alleles;  // a list all alleles (ref + alt) at this locus

     See above read records example to parse a file.  Some things  to  know  are
     that info fields are split into fields with values in `info' and flags that
     are  true	in `infoFlags'.  The order of info fields is not kept in the C++
     map data structure so we have to keep track of order in an infoKeys vector.

   Output a VCF record
     The default string outputter of the Variant class outputs a VCF record  us-
     ing the field that are defined:

	    Variant var(variantFile);
	    while (variantFile.getNextVariant(var)) {
	      cout << var << endl;
	    }

     will output VCF.

   Mirroring in the Python FFI
     The  Python FFI follows this API though some accessors may be renamed.  See
     pythonffi.cpp and pyvcflib.md.

							   -- coding: utf-8 --()

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=vcflib-api&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help