Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add rank metric #15 #42

Merged
merged 14 commits into from
Dec 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/python-test-conda-external.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
echo "PATH=$PATH"
- name: Set up Python ${{ matrix.python-version }}
run: |
$CONDA/bin/conda create -p /tmp/condaenv python==${{ matrix.python-version }}'.*'
$CONDA/bin/conda create -p /tmp/condaenv python==${{ matrix.python-version }}'.*' setuptools"==52.0"
jonasscheid marked this conversation as resolved.
Show resolved Hide resolved
- name: Activate conda environment
run: |
echo "/tmp/condaenv/bin" >> $GITHUB_PATH
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/python-test-conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
echo "CONDA_PKGS_DIRS=/tmp/condapkgs" >> $GITHUB_ENV
- name: Set up Python ${{ matrix.python-version }}
run: |
$CONDA/bin/conda create -p /tmp/condaenv python==${{ matrix.python-version }}'.*'
$CONDA/bin/conda create -p /tmp/condaenv python==${{ matrix.python-version }}'.*' setuptools"==52.0"
jonasscheid marked this conversation as resolved.
Show resolved Hide resolved
- name: Activate conda environment
run: |
echo "/tmp/condaenv/bin" >> $GITHUB_PATH
Expand All @@ -31,6 +31,6 @@ jobs:
run: |
pip install .
- name: Install Test dependencies
run: conda install -p /tmp/condaenv -c conda-forge -c bioconda nose nose-exclude coincbc
run: conda install -p /tmp/condaenv -c conda-forge -c bioconda nose nose-exclude glpk
- name: Run Tests
run: nosetests --exclude-dir=epytope/test/external epytope
113 changes: 70 additions & 43 deletions epytope/Core/Result.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,13 @@

import abc
import numpy
from numpy.lib.arraysetops import isin
import pandas
from epytope.Core.Allele import Allele
from epytope.Core.Peptide import Peptide
from copy import deepcopy
from sys import exit
import logging


class AResult(pandas.DataFrame, metaclass=abc.ABCMeta):
Expand All @@ -27,8 +33,7 @@ def filter_result(self, expressions):
"""
Filter result based on a list of expressions
:param list((str,comparator,float)) expressions: A list of triples consisting of (method_name, comparator,
threshold)
:param list((str,comparator,float)) expressions: A list of triples consisting of (method_name, comparator,threshold)
:return: A new filtered AResult object
:rtype: :class:`~epytope.Core.Result.AResult`
"""
Expand Down Expand Up @@ -56,46 +61,55 @@ class EpitopePredictionResult(AResult):
EpitopePredictionResult
+--------------+-------------+-------------+-------------+-------------+
| Peptide Obj | Method Name | Allele1 Obj | Allele2 Obj | Allele3 Obj |
+==============+=============+=============+=============+=============+
| Peptide1 | Method 1 | 0.324 | 0.56 | 0.013 |
+ +-------------+-------------+-------------+-------------+
| | Method 2 | 20 | 15 | 23 |
+--------------+-------------+-------------+-------------+-------------+
| Peptide2 | Method 1 | 0.50 | 0.36 | 0.98 |
+ +-------------+-------------+-------------+-------------+
| | Method 2 | 26 | 10 | 50 |
+--------------+-------------+-------------+-------------+-------------+
+----------------+-------------------------------+-------------------------------+
| Allele | Allele Obj 1 | Allele Obj 2 |
+- - - - - - - - +- - - - - - - -+- - - - - - - -+- - - - - - - -+- - - - - - - -+
| Method | Method 1 | Method 2 | Method 1 | Method 2 |
+- - - - - - - - +- - - -+- - - -+- - - -+- - - -+- - - -+- - - -+- - - -+- - - -+
| ScoreType | Score | Rank | Score | Rank | Score | Rank | Score | Rank |
+- - - - - - - - +- - - -+- - - -+- - - -+- - - -+- - - -+- - - -+- - - -+- - - -+
| Peptides | | | | | | | | |
+================+=======+=======+=======+=======+=======+=======+=======+=======+
| Peptide Obj 1 | 0.03 | 57.4 | 0.05 | 51.1 | 0.08 | 49.4 | 0.73 | 3.12 |
+----------------+-------+-------+-------+-------+-------+-------+-------+-------+
| Peptide Obj 2 | 0.32 | 13.2 | 0.31 | 14.1 | 0.25 | 22.1 | 0.11 | 69.1 |
+----------------+-------+-------+-------+-------+-------+-------+-------+-------+
"""

def filter_result(self, expressions):
def filter_result(self, expressions, scoretype='Score'):
"""
Filters a result data frame based on a specified expression consisting of a list of triple with
(method_name, comparator, threshold). The expression is applied to each row. If any of the columns fulfill
the criteria the row remains.
(method_name, comparator, threshold) and a str of the methods scoretype to be filtered.
The expression is applied to each row. If any of the columns fulfill the criteria the row remains.
:param list((str,comparator,float)) expression: A list of triples consisting of (method_name, comparator, threshold)
:param str scoretype: Indicates which scoretype of the specified method should be filtered
:param list((str,comparator,float)) expressions: A list of triples consisting of (method_name, comparator,
threshold)
:return: Filtered result object
:rtype: :class:`~epytope.Core.Result.EpitopePredictionResult`
"""
if isinstance(expressions, tuple):
expressions = [expressions]

df = deepcopy(self)
methods = list(set(df.columns.get_level_values(1)))
scoretypes = list(set(df.columns.get_level_values(2)))
if scoretype not in scoretypes:
raise ValueError("Specified ScoreType {} does not match ScoreTypes of data frame {}.".format(scoretype, scoretypes))

for expr in expressions:
method, comp, thr = expr
if method not in methods:
raise ValueError("Specified method {} does not match methods of data frame {}.".format(method, methods))
else:
filt = comp(df.xs(method, axis = 1, level = 1).xs(scoretype, axis = 1, level = 1), thr).values
# Only keep rows which contain values fulfilling the comparators logic in the specified method
keep_row = [bool.any() for bool in filt]
df = df.loc[keep_row]

#builde logical expression
masks = list(map(list, [comp(self.loc[(slice(None), method), :], thr).any(axis=1)
for method, comp, thr in expressions]))
if len(masks) > 1:
masks = numpy.logical_and(*masks)
else:
masks = masks[0]

#apply to all rows
idx = [f for f in masks
for _ in range(len(self.index.levels[1]))]
return EpitopePredictionResult(self.loc[idx, :])
return EpitopePredictionResult(df)


def merge_results(self, others):
"""
Expand All @@ -110,20 +124,33 @@ def merge_results(self, others):

if type(others) == type(self):
others = [others]

# Concatenates self and to be merged dataframe(s)
for other in others:
df = pandas.concat([df, other], axis=1)

for i in range(len(others)):
df1a, df2a = df.align(others[i])
zero1 = df1a == 0
zero2 = df2a == 0
df1a = df1a.fillna(0)
df2a = df2a.fillna(0)
df = df1a+df2a
true_zero = zero1 | zero2
false_zero = df == 0
zero = true_zero & false_zero
nans = ~true_zero & false_zero
df[zero] = 0
df[nans] = numpy.NaN
# Merge result of multiple predictors in others per allele
df_merged = pandas.concat([group[1] for group in df.groupby(level=[0,1], axis=1)], axis=1)

return EpitopePredictionResult(df_merged)

def from_dict(d, peps, method):
jonasscheid marked this conversation as resolved.
Show resolved Hide resolved
"""
Create EpitopePredictionResult object from dictionary holding scores for alleles, peptides and a specified method
"""
scoreType = numpy.asarray([list(m.keys()) for m in [metrics for a, metrics in d.items()]]).flatten()
alleles = numpy.asarray([numpy.repeat(a, len(set(scoreType))) for a in d]).flatten()

meth = numpy.repeat(method, len(scoreType))
multi_cols = pandas.MultiIndex.from_arrays([alleles, meth, scoreType], names=["Allele", "Method", "ScoreType"])
df = pandas.DataFrame(float(0),index=pandas.Index(peps), columns=multi_cols)
df.index.name = 'Peptides'
# Fill DataFrame
for allele, metrics in d.items():
for metric, pep_scores in metrics.items():
for pep, score in pep_scores.items():
df[allele][method][metric][pep] = score

return EpitopePredictionResult(df)


Expand Down
2 changes: 1 addition & 1 deletion epytope/Data/pssms/syfpeithi/mat/A_0101_10.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
A_0101_10 = {0: {'A': 1, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 0, 'N': 0, 'Q': 0, 'P': 0, 'S': 1, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 1, 'X': 0}, 1: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 1, 'N': 0, 'Q': 0, 'P': 0, 'S': 4, 'R': 0, 'T': 6, 'W': 0, 'V': 0, 'Y': 0, 'X': 0}, 2: {'A': 0, 'C': 0, 'E': 8, 'D': 10, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 0, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 0, 'X': 0}, 3: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 1, 'M': 0, 'L': 1, 'N': 0, 'Q': 0, 'P': 1, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 1, 'Y': 0, 'X': 0}, 4: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 0, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 0, 'X': 0}, 5: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 0, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 0, 'X': 0}, 6: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 1, 'M': 0, 'L': 2, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 1, 'T': 1, 'W': 0, 'V': 0, 'Y': 1, 'X': 0}, 7: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 3, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 0, 'X': 0}, 8: {'A': 0, 'C': 0, 'E': 1, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 1, 'M': 0, 'L': 1, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 1, 'T': 0, 'W': 0, 'V': 1, 'Y': 0, 'X': 0}, 9: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 0, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 15, 'X': 0}}
A_0101_10 = {0: {'A': 1, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 1, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 1}, 1: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 1, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 4, 'T': 6, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 2: {'A': 0, 'C': 0, 'D': 10, 'E': 8, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 3: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 1, 'L': 1, 'M': 0, 'N': 0, 'P': 1, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 1, 'W': 0, 'X': 0, 'Y': 0}, 4: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 5: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 6: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 1, 'L': 2, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 1, 'S': 0, 'T': 1, 'V': 0, 'W': 0, 'X': 0, 'Y': 1}, 7: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 3, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 8: {'A': 0, 'C': 0, 'D': 0, 'E': 1, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 1, 'L': 1, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 1, 'S': 0, 'T': 0, 'V': 1, 'W': 0, 'X': 0, 'Y': 0}, 9: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 15}}
2 changes: 1 addition & 1 deletion epytope/Data/pssms/syfpeithi/mat/A_0101_11.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
A_0101_11 = {0: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 0, 'N': 0, 'Q': 0, 'P': 0, 'S': 1, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 1, 'X': 0}, 1: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 1, 'N': 0, 'Q': 0, 'P': 0, 'S': 4, 'R': 0, 'T': 6, 'W': 0, 'V': 0, 'Y': 0, 'X': 0}, 2: {'A': 0, 'C': 0, 'E': 8, 'D': 10, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 0, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 0, 'X': 0}, 3: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 1, 'M': 0, 'L': 1, 'N': 0, 'Q': 0, 'P': 1, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 1, 'Y': 0, 'X': 0}, 4: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 0, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 0, 'X': 0}, 5: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 0, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 0, 'X': 0}, 6: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 0, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 0, 'X': 0}, 7: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 1, 'M': 0, 'L': 2, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 1, 'T': 1, 'W': 0, 'V': 0, 'Y': 1, 'X': 0}, 8: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 3, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 0, 'X': 0}, 9: {'A': 0, 'C': 0, 'E': 1, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 1, 'M': 0, 'L': 1, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 1, 'T': 0, 'W': 0, 'V': 1, 'Y': 0, 'X': 0}, 10: {'A': 0, 'C': 0, 'E': 0, 'D': 0, 'G': 0, 'F': 0, 'I': 0, 'H': 0, 'K': 0, 'M': 0, 'L': 0, 'N': 0, 'Q': 0, 'P': 0, 'S': 0, 'R': 0, 'T': 0, 'W': 0, 'V': 0, 'Y': 15, 'X': 0}}
A_0101_11 = {0: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 1, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 1}, 1: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 1, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 4, 'T': 6, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 2: {'A': 0, 'C': 0, 'D': 10, 'E': 8, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 3: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 1, 'L': 1, 'M': 0, 'N': 0, 'P': 1, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 1, 'W': 0, 'X': 0, 'Y': 0}, 4: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 5: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 6: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 7: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 1, 'L': 2, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 1, 'S': 0, 'T': 1, 'V': 0, 'W': 0, 'X': 0, 'Y': 1}, 8: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 3, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 9: {'A': 0, 'C': 0, 'D': 0, 'E': 1, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 1, 'L': 1, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 1, 'S': 0, 'T': 0, 'V': 1, 'W': 0, 'X': 0, 'Y': 0}, 10: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 15}}
1 change: 1 addition & 0 deletions epytope/Data/pssms/syfpeithi/mat/A_0101_12.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
A_0101_12 = {0: {'A': 1, 'C': 0, 'D': 0, 'E': 0, 'F': 1, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 2, 'T': 0, 'V': 1, 'W': 0, 'X': 0, 'Y': 2}, 1: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 1, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 4, 'T': 6, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 2: {'A': 0, 'C': 0, 'D': 10, 'E': 10, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 3: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 4: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 5: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 6: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 7: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 8: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 9: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 4, 'K': 0, 'L': 6, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0}, 10: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 2, 'L': 2, 'M': 1, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 1, 'W': 0, 'X': 0, 'Y': 0}, 11: {'A': 0, 'C': 0, 'D': 0, 'E': 0, 'F': 0, 'G': 0, 'H': 0, 'I': 0, 'K': 0, 'L': 0, 'M': 0, 'N': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 15}}
Loading