Пример #1
0
    def test_from_reader(self):
        scheme = GdcV1_0_0_ProtectedScheme()

        lines = [
            TestMafHeader.__version_line,
            TestMafHeader.__annotation_line,
            TestMafHeader.__sort_order_line,
        ]
        reader = MafReader(
            lines=lines,
            validation_stringency=ValidationStringency.Silent,
            scheme=scheme,
        )
        reader.close()

        # No overrides
        header = MafHeader.from_reader(reader=reader)
        self.assertEqual(header.scheme().version(), scheme.version())
        self.assertEqual(header.scheme().annotation_spec(),
                         scheme.annotation_spec())
        self.assertEqual(header.sort_order().name(), Coordinate.name())

        # Override version and annotation
        scheme = GdcV1_0_0_PublicScheme()
        header = MafHeader.from_reader(
            reader=reader,
            version=scheme.version(),
            annotation=scheme.annotation_spec(),
            sort_order=sort_order.Unsorted().name(),
        )
        self.assertEqual(header.scheme().version(), scheme.version())
        self.assertEqual(header.scheme().annotation_spec(),
                         scheme.annotation_spec())
        self.assertEqual(header.sort_order().name(),
                         sort_order.Unsorted().name())
Пример #2
0
    def setup_maf_header(self):
        """
        Sets up the maf header.
        """
        # Reader header
        _hdr = MafHeader.from_reader(reader=self.maf_reader)

        if not self.options["reference_fasta_index"]:
            self.maf_header = MafHeader.from_defaults(
                version=self.options["version"],
                annotation=self.options["annotation"],
                sort_order=BarcodesAndCoordinate(),
                contigs=_hdr.contigs(),
            )
        else:
            self.maf_header = MafHeader.from_defaults(
                version=self.options["version"],
                annotation=self.options["annotation"],
                sort_order=BarcodesAndCoordinate(),
                fasta_index=self.options["reference_fasta_index"],
            )
        self.maf_header.validation_stringency = ValidationStringency.Strict

        header_date = BaseRunner.get_header_date()
        self.maf_header[header_date.key] = header_date

        try:
            nkey = _hdr["normal.aliquot"]
            self.maf_header["normal.aliquot"] = nkey
        except KeyError as e:
            if not self.options["tumor_only"]:
                raise e

        tkey = _hdr["tumor.aliquot"]
        self.maf_header["tumor.aliquot"] = tkey
Пример #3
0
def writer_from_reader(reader, options):
    """
    Builds a writer from the given reader and command line options.
    :param options: the command line options, which should have "output",
    "version", and "annotation" defined.
    :param reader: the reader from which to records will be obtained
    :return:
    """
    out_header = MafHeader.from_reader(
        reader=reader,
        version=options.version,
        annotation=options.annotation,
        sort_order=options.sort_order \
            if hasattr(options, 'sort_order') else None
    )

    if options.output:
        writer = MafWriter.from_path(
            path=options.output,
            header=out_header,
            validation_stringency=options.validation_stringency)
    else:
        writer = MafWriter.from_fd(
            desc=sys.stdout,
            header=out_header,
            validation_stringency=options.validation_stringency)
    return writer
    def setup_maf_header(self):
        """
        Sets up the maf header.
        """
        # Reader header
        _hdr = MafHeader.from_reader(reader=self.maf_readers[0])

        self.maf_header = MafHeader.from_defaults(
            version=self.options['version'],
            annotation=self.options['annotation'],
            sort_order=BarcodesAndCoordinate(),
            contigs=_hdr.contigs())
        self.maf_header.validation_stringency = ValidationStringency.Strict

        header_date = BaseRunner.get_header_date()
        self.maf_header[header_date.key] = header_date

        nkey = _hdr["normal.aliquot"]
        self.maf_header["normal.aliquot"] = nkey
        tkey = _hdr["tumor.aliquot"]
        self.maf_header["tumor.aliquot"] = tkey