Esempio n. 1
0
def test_serialization():
    original = VariantCollection([
            Variant(
                1, start=10, ref="AA", alt="AAT", ensembl=77),
            Variant(10, start=15, ref="A", alt="G"),
            Variant(20, start=150, ref="", alt="G"),
    ])
    original.metadata[original[0]] = {"a": "b"}
    original.metadata[original[2]] = {"bar": 2}

    # This causes the variants' ensembl objects to make a SQL connection,
    # which makes the ensembl object non-serializable. By calling this
    # method, we are checking that we don't attempt to directly serialize
    # the ensembl object.
    original.effects()

    # Test pickling.
    serialized = pickle.dumps(original)
    reconstituted = pickle.loads(serialized)
    eq_(original, reconstituted)
    eq_(reconstituted[0], original[0])
    eq_(reconstituted.metadata[original[0]], original.metadata[original[0]])

    # Test json.
    serialized = original.to_json()
    reconstituted = VariantCollection.from_json(serialized)
    eq_(original, reconstituted)
    eq_(reconstituted[0], original[0])
    eq_(reconstituted.metadata[original[0]], original.metadata[original[0]])
Esempio n. 2
0
def test_variant_collection_serialization():
    variant_list = [
        Variant(1, start=10, ref="AA", alt="AAT"),
        Variant(10, start=15, ref="A", alt="G"),
        Variant(20, start=150, ref="", alt="G"),
    ]
    original = VariantCollection(
        variant_list,
        source_to_metadata_dict={
            "test_data":
            {variant: {
                "a": "b",
                "bar": 2
            }
             for variant in variant_list}
        })

    # This causes the variants' ensembl objects to make a SQL connection,
    # which makes the ensembl object non-serializable. By calling this
    # method, we are checking that we don't attempt to directly serialize
    # the ensembl object.
    original.effects()

    original_first_variant = original[0]
    original_metadata = original.metadata

    # Test pickling
    reconstructed = pickle.loads(pickle.dumps(original))
    eq_(original, reconstructed)
    eq_(reconstructed[0], original_first_variant)
    eq_(reconstructed.metadata[original_first_variant],
        original_metadata[original_first_variant])

    merged = original.intersection(original)
    merged_reconstructed = pickle.loads(pickle.dumps(merged))
    eq_(merged, merged_reconstructed)

    # Test JSON serialization
    variants_from_json = VariantCollection.from_json(original.to_json())
    eq_(original, variants_from_json)

    eq_(variants_from_json[0], original_first_variant)

    # pylint: disable=no-member
    eq_(variants_from_json.metadata[original_first_variant],
        original_metadata[original_first_variant])
def test_variant_collection_serialization():
    variant_list = [
        Variant(
            1, start=10, ref="AA", alt="AAT"),
        Variant(10, start=15, ref="A", alt="G"),
        Variant(20, start=150, ref="", alt="G"),
    ]
    original = VariantCollection(
        variant_list,
        source_to_metadata_dict={
            "test_data":
                {variant: {"a": "b", "bar": 2} for variant in variant_list}})

    # This causes the variants' ensembl objects to make a SQL connection,
    # which makes the ensembl object non-serializable. By calling this
    # method, we are checking that we don't attempt to directly serialize
    # the ensembl object.
    original.effects()

    original_first_variant = original[0]
    original_metadata = original.metadata

    # Test pickling
    reconstructed = pickle.loads(pickle.dumps(original))
    eq_(original, reconstructed)
    eq_(reconstructed[0], original_first_variant)
    eq_(reconstructed.metadata[original_first_variant],
        original_metadata[original_first_variant])

    merged = original.intersection(original)
    merged_reconstructed = pickle.loads(pickle.dumps(merged))
    eq_(merged, merged_reconstructed)

    # Test JSON serialization
    variants_from_json = VariantCollection.from_json(original.to_json())
    eq_(original, variants_from_json)

    eq_(variants_from_json[0], original_first_variant)

    # pylint: disable=no-member
    eq_(variants_from_json.metadata[original_first_variant],
        original_metadata[original_first_variant])
Esempio n. 4
0
])

gene_fpkm_dict = {
    "ENSG00000165841": 10.0,
    "ENSG00000204007": 20.0,
    "ENSG00000276490": 30.0,
}

transcript_fpkm_dict = {
    "ENST00000371321": 10.0,
    "ENST00000464755": 20.0,
    "ENST00000371763": 30.0,
    "ENST00000613244": 40.0,
}

effects = variants.effects()

empty_variants = VariantCollection([])
empty_effects = empty_variants.effects()


def test_filter_variants():
    eq_(variants.filter(lambda _: True), variants)
    eq_(variants.filter(lambda _: False), empty_variants)


def test_filter_effects():
    eq_(effects.filter(lambda _: True), effects)
    eq_(effects.filter(lambda _: False), empty_effects)

])

gene_fpkm_dict = {
    "ENSG00000165841": 10.0,
    "ENSG00000204007": 20.0,
    "ENSG00000276490": 30.0,
}

transcript_fpkm_dict = {
    "ENST00000371321": 10.0,
    "ENST00000464755": 20.0,
    "ENST00000371763": 30.0,
    "ENST00000613244": 40.0,
}

effects = variants.effects()

empty_variants = VariantCollection([])
empty_effects = empty_variants.effects()

def test_filter_variants():
    eq_(variants.filter(lambda _: True), variants)
    eq_(variants.filter(lambda _: False), empty_variants)

def test_filter_effects():
    eq_(effects.filter(lambda _: True), effects)
    eq_(effects.filter(lambda _: False), empty_effects)

def test_filter_variants_by_gene_expression():
    eq_(variants.filter_by_gene_expression(
        gene_fpkm_dict, 0.0), variants)