Skip to content

Commit

Permalink
Add rank metric #15 (#42)
Browse files Browse the repository at this point in the history
* Push all changes made on fork

* Set Setuptools version also for external yml

* Fixed erroneous variable names in matrix files

* deleted A_2601_9 matrix for now. Caused troubles

* Add A2601_9 syf matrix for debugging

* Fixed bug in test caused by addition of A*26:01 matrix

* Change solver from cbc to glpk to investigate if macOS dependant env problems in github actions can be solved

* Corrected after review

* Adjust tutorials to new structure

* Change filter_result as discussed

* Adjusted filter method and tutorials according to #12

* Fixed a bug occuring for netMHCfamily tools when peptide input has multiple lengths

* remove logging

* Alter filter_result method as discussed
  • Loading branch information
jonasscheid authored Dec 13, 2021
1 parent 6bf305e commit 65fd57a
Show file tree
Hide file tree
Showing 167 changed files with 1,871 additions and 988 deletions.
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"
- 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"
- 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):
"""
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

0 comments on commit 65fd57a

Please sign in to comment.