0
# VCF File Writing
1
2
Functionality for writing VCF records to files while preserving metadata integrity and VCF format compliance.
3
4
## Capabilities
5
6
### VCF Writer
7
8
Write VCF records to files with proper formatting and metadata preservation.
9
10
```python { .api }
11
class Writer:
12
def __init__(self, stream, template, lineterminator="\n"):
13
"""
14
Initialize VCF writer.
15
16
Parameters:
17
- stream: file-like object, output stream
18
- template: Reader object, provides header metadata and format
19
- lineterminator: str, line ending character(s)
20
"""
21
22
def write_record(self, record):
23
"""
24
Write a variant record to the output file.
25
26
Parameters:
27
- record: _Record object to write
28
"""
29
30
def flush(self):
31
"""Flush the output stream."""
32
33
def close(self):
34
"""Close the output stream."""
35
```
36
37
### Backwards Compatibility
38
39
```python { .api }
40
class VCFWriter:
41
"""Alias for Writer class for backwards compatibility."""
42
pass
43
```
44
45
### Usage Examples
46
47
```python
48
import vcf
49
50
# Basic VCF writing
51
reader = vcf.Reader(filename='input.vcf')
52
writer = vcf.Writer(open('output.vcf', 'w'), reader)
53
54
for record in reader:
55
# Optional: modify record
56
if record.QUAL and record.QUAL > 30:
57
writer.write_record(record)
58
59
writer.close()
60
61
# Writing filtered records
62
reader = vcf.Reader(filename='input.vcf')
63
with open('filtered.vcf', 'w') as output_file:
64
writer = vcf.Writer(output_file, reader)
65
66
for record in reader:
67
# Filter by variant type
68
if record.is_snp:
69
writer.write_record(record)
70
71
writer.flush()
72
73
# Copy with modifications
74
reader = vcf.Reader(filename='input.vcf')
75
writer = vcf.Writer(open('modified.vcf', 'w'), reader)
76
77
for record in reader:
78
# Add INFO field
79
record.INFO['PROCESSED'] = True
80
writer.write_record(record)
81
82
writer.close()
83
```