Newer
Older
# Copyright (c) 2016. Mount Sinai School of Medicine
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from mhcflurry.peptide_encoding import (
all_kmers,
extend_peptide,
shorten_peptide,
fixed_length_from_many_peptides,
)
from nose.tools import eq_
def test_all_kmers():
kmers = all_kmers(2, alphabet=["A", "B"])
assert len(kmers) == 4, kmers
eq_(set(kmers), {"AA", "AB", "BA", "BB"})
def test_all_kmers_string_alphabet():
kmers = all_kmers(2, alphabet="AB")
assert len(kmers) == 4, kmers
eq_(set(kmers), {"AA", "AB", "BA", "BB"})
def test_extend_peptide_all_positions():
# insert 0 or 1 at every position
results = extend_peptide(
"111",
desired_length=4,
start_offset=0,
end_offset=0,
insert_amino_acid_letters="01")
expected = [
"0111",
"1111",
"1011",
"1111",
"1101",
"1111",
"1110",
"1111",
]
eq_(results, expected)
def test_shorten_peptide_all_positions():
# insert 0 or 1 at every position
results = shorten_peptide(
"012",
desired_length=2,
start_offset=0,
end_offset=0,
insert_amino_acid_letters="012")
expected = [
"12",
"02",
"01"
]
eq_(results, expected)
def test_shorten_peptide_all_positions_except_first():
# insert 0 or 1 at every position
results = shorten_peptide(
"012",
desired_length=2,
start_offset=1,
end_offset=0,
insert_amino_acid_letters="012")
expected = [
"02",
"01",
]
eq_(results, expected)
def test_shorten_peptide_all_positions_except_last():
# insert 0 or 1 at every position
results = shorten_peptide(
"012",
desired_length=2,
start_offset=0,
end_offset=1,
insert_amino_acid_letters="012")
expected = [
"12",
"02",
]
eq_(results, expected)
def test_fixed_length_from_many_peptides():
kmers, original_indices, counts = fixed_length_from_many_peptides(
peptides=["ABC", "A"],
desired_length=2,
start_offset_extend=0,
end_offset_extend=0,
start_offset_shorten=0,
end_offset_shorten=0,
insert_amino_acid_letters="ABC")
eq_(len(kmers), len(original_indices))
eq_(len(kmers), len(counts))
eq_(kmers, ["BC", "AC", "AB", "AA", "BA", "CA", "AA", "AB", "AC"])
eq_(original_indices, [0] * 3 + [1] * 6)
eq_(counts, [3, 3, 3, 6, 6, 6, 6, 6, 6])