def test_null_mono(self): # null qualities were written as blank, causing subsequent parse to fail print os.path.abspath( os.path.join(os.path.dirname(__file__), 'null_genotype_mono.vcf')) p = cyvcf.Reader(fh('null_genotype_mono.vcf')) assert p.samples out = StringIO() writer = cyvcf.Writer(out, p) map(writer.write_record, p) out.seek(0) print out.getvalue() p2 = cyvcf.Reader(out) rec = p2.next() assert rec.samples
def use_cyvcf(vcf_file): """ Not installing (py3 not supported, py2 installs but import doesn't work) """ import cyvcf # need to reinstall instead of pyvcf import gzip f = gzip.open(vcf_file) if vcf_file.endswith('.gz') else open(vcf_file) with f as f: vcf_reader = cyvcf.Reader(f) vcf_writer = cyvcf.Writer(sys.stdout, vcf_reader) for rec in vcf_reader: msi_fail = proc_fields(rec.REF, rec.ALT[0], rec.samples[0]['AF'], rec.INFO['MSI']) if msi_fail: rec.FILTER.append('MSI_FAIL') vcf_writer.write_record(rec)
def testWrite(self): reader = cyvcf.Reader(fh('gatk.vcf')) out = StringIO() writer = cyvcf.Writer(out, reader) records = list(reader) map(writer.write_record, records) out.seek(0) reader2 = cyvcf.Reader(out) self.assertEquals(reader.samples, reader2.samples) self.assertEquals(reader.formats, reader2.formats) self.assertEquals(reader.infos, reader2.infos) for l, r in zip(records, reader2): self.assertEquals(l.samples, r.samples)