[−][src]Crate vcf
Rust implementation of vcf parser/writer without strict validation.
Example
use vcf::*; use flate2::read::MultiGzDecoder; use std::fs::File; let mut vcf_reader = VCFReader::new(MultiGzDecoder::new( File::open("testfiles/ALL.chr20.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.20-34001094-34168504-subset.vcf.gz") .map_err(|e| VCFParseError::IoError{error:e})? ))?; assert_eq!(vcf_reader.header().items.len(), 255); assert_eq!(vcf_reader.header().items[0], VCFHeaderLine{ line: "##fileformat=VCFv4.1".to_string(), contents: VCFHeaderContent::FileFormat("VCFv4.1".to_string()) }); assert_eq!( vcf_reader.header().samples, vec!["HG00096", "HG00097", "HG00099"] ); // load next record let record = vcf_reader.iter().next().unwrap()?; assert_eq!(record.chromosome, "20"); assert_eq!(record.position, 34001111); assert_eq!(record.id, vec!["rs565014200"]); assert_eq!(record.reference, "T"); assert_eq!(record.alternative, vec!["C"]); assert_eq!(record.quality, Some("100".to_string())); assert_eq!(record.info["AN"], vec!["6"]); // vcf-rs does not validate a number of entries and type assert_eq!(record.call["HG00096"]["GT"], vec!["0|0"]);
Structs
VCFHeader | VCF header struct. |
VCFHeaderLine | A header line. |
VCFReader | Read a VCF file from plain text. |
VCFRecord | A VCF record structure. |
VCFWriter | Write VCF file as plain text. If you want to write VCF file as compressed VCF, please use bgzip-rs to compress. |
Enums
Number | A number of entries of INFO or FORMAT. |
VCFHeaderContent | A content of header line. |
VCFParseError | Error returned when something wrong in a vcf format. |
ValueType | An entry value type of INFO or FORMAT. |