or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

constants.mdgenotype-analysis.mdindex.mdsample-filtering.mdutils.mdvariant-records.mdvcf-filtering.mdvcf-parsing.mdvcf-writing.md

vcf-writing.mddocs/

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

```