# HG changeset patch # User galaxyp # Date 1752065790 0 # Node ID 88e44dab298887176dce9a26617036725e702eab planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/iedb_netmhcpan commit 0ac7534c8d9f5bfea21b998286f822784e62da08 diff -r 000000000000 -r 88e44dab2988 netmhciipan.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netmhciipan.xml Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,104 @@ + + MHCii Binding prediction + + netmhciipan_alleles_macros.xml + shared_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 88e44dab2988 netmhciipan_alleles_macros.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netmhciipan_alleles_macros.xml Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,773 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 88e44dab2988 netmhcpan.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netmhcpan.xml Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,88 @@ + + MHC Binding prediction + + netmhcpan_alleles_macros.xml + shared_macros.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 88e44dab2988 netmhcpan_alleles_macros.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netmhcpan_alleles_macros.xml Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,11490 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 88e44dab2988 nextgen_iedb_api.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nextgen_iedb_api.py Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,372 @@ +#!/usr/bin/env python + +""" +This file was adapted from the iedb_apy.py file of the iedb_api tool. +It uses the newer "Next-Generation" IEDB API, and is constrained to +the mhci and mhcii tool groups. +""" + +import argparse +import json +import os.path +import re +import sys +import time +import urllib.request +from urllib.error import HTTPError + +# IEDB tool groups and predictor methods +mhci_methods = ['netmhcpan_el', 'netmhcpan_ba'] +mhcii_methods = ['netmhciipan_el', 'netmhciipan_ba'] +tool_group_methods = {'mhci': mhci_methods, + 'mhcii': mhcii_methods} +all_methods = set(mhci_methods + mhcii_methods) + +# Values for polling backoff +max_backoff_count = 25 +init_poll_sleep = 10 +poll_retries = 50 +requests_before_backoff = 5 + + +def parse_alleles(allelefile): + """Returns a dictionary with alleles from input file.""" + alleles = [] + with open(allelefile, 'r') as fh: + for line in fh: + allele = line.strip() + alleles.append(allele) + return alleles + + +def parse_sequence_column(sequence_file_lines, col): + """Sequences may come from a specific column in a TSV file. + + Parse these sequences out while checking each against a regex for validity. + """ + aapat = '^[ABCDEFGHIKLMNPQRSTVWY]+$' + sequences = [] + for i, line in enumerate(sequence_file_lines): + fields = line.split('\t') + if len(fields) > col: + seq = re.sub('[_*]', '', fields[col].strip()) + if not re.match(aapat, seq): + warn_err(f'Line {i}, Not a peptide: {seq}') + else: + sequences.append(seq) + else: + warn_err('Invalid value for -c/--column') + break + return sequences + + +def iedb_request(req, timeout, retries, error_retry_sleep, response_fn=None, req_data=None): + """Handles HTTP request and exceptions. Allows for a callback to parse IEDB response.""" + for retry in range(1, retries + 1): + response = None + try: + response = urllib.request.urlopen(req, req_data, timeout=timeout) + except HTTPError as e: + warn_err(f'{retry} of {retries} Error connecting to IEDB server. \ + HTTP status code: {e.code}') + time.sleep(error_retry_sleep) + except Exception as e: + warn_err(f'Error getting results from IEDB server: {e}') + return None + + if response and response.getcode() == 200: + # If no callback, return results + if not response_fn: + response_string = response.read().decode('utf-8') + response_json = json.loads(response_string) + return response_json + + # Retry if response_fn callback deems necessary, i.e. results from job are not ready. + response_json = response_fn(response, retry) + if response_json: + return response_json + else: + code = response.getcode() if response else 1 + warn_err(f'Error connecting to IEDB server. HTTP status code: {code}') + + warn_err(f'No successful response from IEDB in {retries} retries') + return None + + +def pipeline_request(url, tool_group, sequence_text, alleles, length_range, + methods, peptide_shift, timeout=300, retries=3, error_retry_sleep=300): + """Submits job to IEDB pipeline and polls API until results are ready. + + Returns response JSON from IEDB. + """ + + # Set up input parameters for IEDB NetMHCPan or NetMHCIIPan job + input_parameters = { + 'alleles': alleles, + 'peptide_length_range': length_range, + 'predictors': [{'type': 'binding', 'method': m} for m in methods], + 'peptide_shift': peptide_shift + } + + if peptide_shift: + input_parameters['peptide_shift'] = peptide_shift + + stage = { + 'stage_number': 1, + 'tool_group': tool_group, + 'input_sequence_text': sequence_text, + 'input_parameters': input_parameters + } + + params = { + 'pipeline_id': "", + 'run_stage_range': [1, 1], + 'stages': [stage] + } + + req = urllib.request.Request(url, method='POST') + req_data = json.dumps(params).encode('utf-8') + req.add_header('Content-Type', 'application/json; charset=utf-8') + req.add_header('Content-Length', len(req_data)) + + # Make an initial request to submit job + response_json = iedb_request(req, timeout, retries, error_retry_sleep, req_data=req_data) + if not response_json: + warn_err('Initial request failed.') + return None + + # Check response from job submission + warnings = response_json.get('warnings') + if warnings and len(warnings) > 0: + invalid_alleles = False + for warning in warnings: + if 'cannot predict binding for allele' in warning: + warn_err(f"Error: Bad allelle input. {warning}") + invalid_alleles = True + if invalid_alleles: + return None + + warn_err(f'Warnings from IEDB: {warnings}') + + errors = response_json.get('errors') + if errors: + warn_err(f'Errors from IEDB: {errors}') + return None + + results_uri = response_json.get('results_uri') + if not results_uri: + warn_err('No results URI provided from IEDB.') + return None + + # Callback function to rate-limit poll requests + def poll_response_fn(response, retry): + response_string = response.read().decode('utf-8') + response_json = json.loads(response_string) + if response_json['status'] != 'done': + if retry == poll_retries: + warn_err('Job not finished in maximum allowed time.') + backoff_count = min(retry, max_backoff_count) + + # Double sleep every requests_before_backoff requests + sleep_duration = init_poll_sleep * 2 ** (backoff_count // requests_before_backoff) + time.sleep(sleep_duration) + return None + return response_json + + # Submit polling for results + response_json = iedb_request(results_uri, timeout, poll_retries, + error_retry_sleep, response_fn=poll_response_fn) + if not response_json: + warn_err('Retrieving results failed.') + return response_json + + +def warn_err(msg, exit_code=None): + sys.stderr.write(f"{msg}\n") + sys.stderr.flush() + if exit_code: + sys.exit(exit_code) + + +def add_reversed_sequences(file_lines, file_format): + """Adds a reversed sequence after each input sequence. + + Takes a plain list of sequences, or FASTA file. Each reversed FASTA sequence has + the same header prefixed with 'reversed_'. + """ + sequences_with_reversed = [] + if file_format == 'fasta': + i = 0 + while i < len(file_lines): + + # Validate header from next sequence + seq_header = file_lines[i] + if seq_header[0] != '>': + print('Invalid FASTA. Exiting.', file=sys.stderr) + sys.exit(1) + + # Aggregate sequence into a single line + j = i + 1 + seq = '' + while j < len(file_lines): + next_line = file_lines[j] + if next_line[0] == '>': + break + seq = seq + file_lines[j] + j += 1 + + # Add non-reversed sequence + sequences_with_reversed.append(seq_header) + sequences_with_reversed.append(seq) + + # Add reversed header and sequence + rev_header = seq_header.replace('>', '>reversed_') + sequences_with_reversed.append(rev_header) + + rev_seq = seq[::-1] + sequences_with_reversed.append(rev_seq) + + # Advance index to what should be the next sequence header + i = j + + # If not FASTA, should be a simple list of peptides to reverse sequentially + else: + for seq in file_lines: + + # Reverse seq + rev_seq = f'{seq[::-1]}' + + # Add original and reversed sequences + sequences_with_reversed.append(seq) + sequences_with_reversed.append(rev_seq) + + return sequences_with_reversed + + +def __main__(): + # Parse Command Line + parser = argparse.ArgumentParser() + parser.add_argument('-T', '--tool-group', + dest='tool_group', + default='mhci', + choices=tool_group_methods.keys(), + help='IEDB API Tool Group') + parser.add_argument('-m', '--method', + action="append", + required=True, + choices=all_methods, + help='prediction method') + parser.add_argument('-A', '--allelefile', + required=True, + help='File of HLA alleles') + parser.add_argument('-l', '--lengthrange', + help='length range for which to make predictions for alleles') + parser.add_argument('-P', '--peptide_shift', + type=int, + default=None, + help='Peptide Shift') + parser.add_argument('-i', '--input', + required=True, + help='Input file for peptide sequences ' + + '(fasta or tabular)') + parser.add_argument('-c', '--column', + default=None, + help='Zero-indexed peptide column in a tabular input file') + parser.add_argument('-o', '--output', + required=True, + help='Output file for query results') + parser.add_argument('-t', '--timeout', + type=int, + default=600, + help='Seconds to wait for server response') + parser.add_argument('-r', '--retries', + type=int, + default=5, + help='Number of times to retry failed server query') + parser.add_argument('-S', '--sleep', + type=int, + default=300, + help='Seconds to wait between failed server query retries') + parser.add_argument('-R', '--add-reversed', + dest='add_reversed', + action='store_true', + help='Input has every other sequence reversed. Identify in output.') + args = parser.parse_args() + + allele_string = ','.join(parse_alleles(args.allelefile)) + + length_range = [int(i) for i in args.lengthrange.split(',')] + + pipeline_url = 'https://api-nextgen-tools.iedb.org/api/v1/pipeline' + + # If sequences submitted as a file, parse out sequences. + try: + with open(args.input) as inf: + sequence_file_contents = inf.read() + except Exception as e: + warn_err(f'Unable to open input file: {e}', exit_code=1) + + sequence_file_lines = sequence_file_contents.splitlines() + + # Pick out sequences if input file has multiple columns, + # otherwise submit list of sequences as-is. + if not args.column: + # IEDB may take FASTA files directly, so input contents as-is + if args.add_reversed: + sequence_text = '\n'.join(add_reversed_sequences(sequence_file_lines, 'fasta')) + else: + sequence_text = sequence_file_contents + else: + sequences = parse_sequence_column(sequence_file_lines, int(args.column)) + if args.add_reversed: + sequence_text = '\n'.join(add_reversed_sequences(sequences, 'tsv')) + else: + sequence_text = '\n'.join(sequences) + + if len(sequence_text) == 0: + warn_err('Error parsing sequences', exit_code=1) + + # Submit job and return results + results = pipeline_request(pipeline_url, args.tool_group, sequence_text, + allele_string, length_range, args.method, + peptide_shift=args.peptide_shift, timeout=args.timeout, + retries=args.retries, error_retry_sleep=args.sleep) + if not results: + warn_err('Job failed. Exiting.', exit_code=1) + + try: + peptide_table = [t for t in results['data']['results'] if t['type'] == 'peptide_table'][0] + peptide_table_data = peptide_table['table_data'] + peptide_table_columns = peptide_table['table_columns'] + + # If we reversed peptides prior to IEDB input, + # find column index of sequence number so we can identify which come from reversed input. + if args.add_reversed: + for i, column in enumerate(peptide_table_columns): + if column['display_name'] == 'seq #': + seq_num_index = i + break + except (KeyError, IndexError) as e: + warn_err(f'Error parsing IEDB results: {e}', exit_code=1) + + output_path = os.path.abspath(args.output) + with open(output_path, 'w') as output_file: + # Write column names + display_names = '\t'.join([c['display_name'] for c in peptide_table_columns] + ['reversed']) + print(display_names, file=output_file) + + # Write data + for values in peptide_table_data: + if args.add_reversed: + seq_number = values[seq_num_index] + # Every original input sequence is followed by its reversed sequence, + # so we know even sequence numbers are reversed. + reversed_val = str(seq_number % 2 == 0).lower() + else: + reversed_val = 'false' + values = '\t'.join([str(v) for v in values] + [reversed_val]) + print(values, file=output_file) + + +if __name__ == "__main__": + __main__() diff -r 000000000000 -r 88e44dab2988 shared_macros.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/shared_macros.xml Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,70 @@ + + + python + + + + + + + + + + + + + + The dataset should have one allele per line. The allele may be followed by an optional comma-separated list of peptide lengths, e.g.: @HLALEN_EXAMPLES@ + + + + + Enter alleles separated by white space: @HLA_EXAMPLES@ (The peptide lengths may follow each allele: @HLALEN_EXAMPLES@) + + + + + + + + + + + + + + + + + + + + + + + + + + 10.1093/nar/gku938 + 10.1093/nar/gkaa379 + + diff -r 000000000000 -r 88e44dab2988 test-data/netmhciipan_alleles.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/netmhciipan_alleles.txt Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,2 @@ +HLA-DQA1*03:01/DQB1*06:02 +HLA-DQA1*03:01/DQB1*06:04 diff -r 000000000000 -r 88e44dab2988 test-data/netmhcpan_alleles.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/netmhcpan_alleles.txt Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,2 @@ +HLA-A*01:01 +HLA-A*03:01 diff -r 000000000000 -r 88e44dab2988 test-data/outputs/netmhciipan_output_1.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/outputs/netmhciipan_output_1.tsv Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,25 @@ +seq # peptide start end peptide length allele peptide index median binding percentile netmhciipan_ba core netmhciipan_ba IC50 netmhciipan_ba percentile netmhciipan_el core netmhciipan_el score netmhciipan_el percentile reversed +1 SLYNTVATLYCVH 1 13 13 HLA-DQA1*03:01/DQB1*06:02 1 18.5 YNTVATLYC 8082.94 13.0 YNTVATLYC 0.001374 24.0 false +1 SLYNTVATLYCVH 1 13 13 HLA-DQA1*03:01/DQB1*06:04 1 32.0 YNTVATLYC 7720.59 26.0 YNTVATLYC 0.004061 38.0 false +1 SLYNTVATLYCVHQ 1 14 14 HLA-DQA1*03:01/DQB1*06:02 3 21.0 YNTVATLYC 6032.08 16.0 YNTVATLYC 0.001854 26.0 false +1 SLYNTVATLYCVHQ 1 14 14 HLA-DQA1*03:01/DQB1*06:04 3 34.0 YNTVATLYC 6352.6 32.0 YNTVATLYC 0.005576 36.0 false +1 SLYNTVATLYCVHQR 1 15 15 HLA-DQA1*03:01/DQB1*06:02 4 19.5 YNTVATLYC 3830.59 14.0 YNTVATLYC 0.002354 25.0 false +1 SLYNTVATLYCVHQR 1 15 15 HLA-DQA1*03:01/DQB1*06:04 4 31.5 VATLYCVHQ 4927.74 32.0 VATLYCVHQ 0.007091 31.0 false +1 SLYNTVATLYCVHQRI 1 16 16 HLA-DQA1*03:01/DQB1*06:02 5 25.5 YNTVATLYC 3666.24 17.0 YNTVATLYC 0.00171 34.0 false +1 SLYNTVATLYCVHQRI 1 16 16 HLA-DQA1*03:01/DQB1*06:04 5 44.5 VATLYCVHQ 4943.12 45.0 VATLYCVHQ 0.004566 44.0 false +1 SLYNTVATLYCVHQRID 1 17 17 HLA-DQA1*03:01/DQB1*06:02 6 22.5 VATLYCVHQ 4336.07 20.0 VATLYCVHQ 0.001963 25.0 false +1 SLYNTVATLYCVHQRID 1 17 17 HLA-DQA1*03:01/DQB1*06:04 6 39.0 VATLYCVHQ 5360.51 44.0 VATLYCVHQ 0.005333 34.0 false +1 VATLYCVHQRIDV 6 18 13 HLA-DQA1*03:01/DQB1*06:02 2 72.0 LYCVHQRID 14712.63 60.0 LYCVHQRID 0.000202 84.0 false +1 VATLYCVHQRIDV 6 18 13 HLA-DQA1*03:01/DQB1*06:04 2 65.5 LYCVHQRID 11515.73 59.0 LYCVHQRID 0.001467 72.0 false +2 HVCYLTAVTNYLS 6 18 13 HLA-DQA1*03:01/DQB1*06:02 8 15.0 YLTAVTNYL 7853.97 12.0 YLTAVTNYL 0.001703 18.0 true +2 HVCYLTAVTNYLS 6 18 13 HLA-DQA1*03:01/DQB1*06:04 8 11.15 YLTAVTNYL 5688.82 9.3 YLTAVTNYL 0.010944 13.0 true +2 VDIRQHVCYLTAV 1 13 13 HLA-DQA1*03:01/DQB1*06:02 7 44.0 IRQHVCYLT 10896.32 32.0 IRQHVCYLT 0.000492 56.0 true +2 VDIRQHVCYLTAV 1 13 13 HLA-DQA1*03:01/DQB1*06:04 7 56.0 IRQHVCYLT 10651.18 52.0 IRQHVCYLT 0.002092 60.0 true +2 VDIRQHVCYLTAVT 1 14 14 HLA-DQA1*03:01/DQB1*06:02 9 45.5 IRQHVCYLT 8659.78 40.0 IRQHVCYLT 0.000878 51.0 true +2 VDIRQHVCYLTAVT 1 14 14 HLA-DQA1*03:01/DQB1*06:04 9 59.0 QHVCYLTAV 9572.05 64.0 QHVCYLTAV 0.003219 54.0 true +2 VDIRQHVCYLTAVTN 1 15 15 HLA-DQA1*03:01/DQB1*06:02 10 48.5 IRQHVCYLT 5717.95 35.0 IRQHVCYLT 0.000782 62.0 true +2 VDIRQHVCYLTAVTN 1 15 15 HLA-DQA1*03:01/DQB1*06:04 10 59.0 QHVCYLTAV 6906.02 57.0 QHVCYLTAV 0.00294 61.0 true +2 VDIRQHVCYLTAVTNY 1 16 16 HLA-DQA1*03:01/DQB1*06:02 11 53.5 IRQHVCYLT 5105.82 35.0 IRQHVCYLT 0.000575 72.0 true +2 VDIRQHVCYLTAVTNY 1 16 16 HLA-DQA1*03:01/DQB1*06:04 11 59.5 QHVCYLTAV 5676.77 54.0 QHVCYLTAV 0.002639 65.0 true +2 VDIRQHVCYLTAVTNYL 1 17 17 HLA-DQA1*03:01/DQB1*06:02 12 49.5 IRQHVCYLT 5050.71 29.0 IRQHVCYLT 0.000575 70.0 true +2 VDIRQHVCYLTAVTNYL 1 17 17 HLA-DQA1*03:01/DQB1*06:04 12 43.5 YLTAVTNYL 4691.63 34.0 YLTAVTNYL 0.003269 53.0 true diff -r 000000000000 -r 88e44dab2988 test-data/outputs/netmhciipan_output_2.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/outputs/netmhciipan_output_2.tsv Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,45 @@ +seq # peptide start end peptide length allele peptide index median binding percentile netmhciipan_el core netmhciipan_el score netmhciipan_el percentile reversed +1 GHAHKVPRRLLKA 1 13 13 HLA-DQA1*03:01/DQB1*06:02 1 90.0 HAHKVPRRL 0.000154 90.0 false +1 GHAHKVPRRLLKA 1 13 13 HLA-DQA1*03:01/DQB1*06:04 1 92.0 AHKVPRRLL 0.000616 92.0 false +1 GHAHKVPRRLLKAA 1 14 14 HLA-DQA1*03:01/DQB1*06:02 2 91.0 KVPRRLLKA 0.000214 91.0 false +1 GHAHKVPRRLLKAA 1 14 14 HLA-DQA1*03:01/DQB1*06:04 2 97.0 KVPRRLLKA 0.000538 97.0 false +1 GHAHKVPRRLLKAAR 1 15 15 HLA-DQA1*03:01/DQB1*06:02 3 90.0 KVPRRLLKA 0.000294 90.0 false +1 GHAHKVPRRLLKAAR 1 15 15 HLA-DQA1*03:01/DQB1*06:04 3 98.0 KVPRRLLKA 0.000465 98.0 false +2 RAAKLLRRPVKHA 1 13 13 HLA-DQA1*03:01/DQB1*06:02 4 96.0 LLRRPVKHA 0.0001 96.0 true +2 RAAKLLRRPVKHA 1 13 13 HLA-DQA1*03:01/DQB1*06:04 4 96.0 AAKLLRRPV 0.00044 96.0 true +2 RAAKLLRRPVKHAH 1 14 14 HLA-DQA1*03:01/DQB1*06:02 5 93.0 LLRRPVKHA 0.000194 93.0 true +2 RAAKLLRRPVKHAH 1 14 14 HLA-DQA1*03:01/DQB1*06:04 5 97.0 LLRRPVKHA 0.000513 97.0 true +2 RAAKLLRRPVKHAHG 1 15 15 HLA-DQA1*03:01/DQB1*06:02 6 88.0 KLLRRPVKH 0.000321 88.0 true +2 RAAKLLRRPVKHAHG 1 15 15 HLA-DQA1*03:01/DQB1*06:04 6 98.0 LLRRPVKHA 0.000466 98.0 true +3 ASADADGSGSGSG 6 18 13 HLA-DQA1*03:01/DQB1*06:02 8 66.0 ADGSGSGSG 0.000379 66.0 false +3 ASADADGSGSGSG 6 18 13 HLA-DQA1*03:01/DQB1*06:04 8 87.0 ADADGSGSG 0.000808 87.0 false +3 ASADADGSGSGSGS 6 19 14 HLA-DQA1*03:01/DQB1*06:02 10 69.0 ADGSGSGSG 0.000512 69.0 false +3 ASADADGSGSGSGS 6 19 14 HLA-DQA1*03:01/DQB1*06:04 10 93.0 ADADGSGSG 0.000781 93.0 false +3 ASADADGSGSGSGSG 6 20 15 HLA-DQA1*03:01/DQB1*06:02 12 76.0 ADGSGSGSG 0.00052 76.0 false +3 ASADADGSGSGSGSG 6 20 15 HLA-DQA1*03:01/DQB1*06:04 12 94.0 ADGSGSGSG 0.000759 94.0 false +3 LKAADASADADGS 1 13 13 HLA-DQA1*03:01/DQB1*06:02 7 18.0 AADASADAD 0.001712 18.0 false +3 LKAADASADADGS 1 13 13 HLA-DQA1*03:01/DQB1*06:04 7 15.0 AADASADAD 0.009489 15.0 false +3 LKAADASADADGSG 1 14 14 HLA-DQA1*03:01/DQB1*06:02 9 6.0 DASADADGS 0.005256 6.0 false +3 LKAADASADADGSG 1 14 14 HLA-DQA1*03:01/DQB1*06:04 9 13.0 AADASADAD 0.012678 13.0 false +3 LKAADASADADGSGS 1 15 15 HLA-DQA1*03:01/DQB1*06:02 11 6.7 DASADADGS 0.006061 6.7 false +3 LKAADASADADGSGS 1 15 15 HLA-DQA1*03:01/DQB1*06:04 11 23.0 DASADADGS 0.009114 23.0 false +3 LKAADASADADGSGSG 1 16 16 HLA-DQA1*03:01/DQB1*06:02 13 6.2 DASADADGS 0.005907 6.2 false +3 LKAADASADADGSGSG 1 16 16 HLA-DQA1*03:01/DQB1*06:04 13 21.0 DASADADGS 0.009327 21.0 false +3 LKAADASADADGSGSGS 1 17 17 HLA-DQA1*03:01/DQB1*06:02 14 14.0 DASADADGS 0.003124 14.0 false +3 LKAADASADADGSGSGS 1 17 17 HLA-DQA1*03:01/DQB1*06:04 14 30.0 DASADADGS 0.006008 30.0 false +4 GSGSGSGSGDADA 1 13 13 HLA-DQA1*03:01/DQB1*06:02 15 67.0 GSGSGSGDA 0.000363 67.0 true +4 GSGSGSGSGDADA 1 13 13 HLA-DQA1*03:01/DQB1*06:04 15 57.0 GSGSGDADA 0.00229 57.0 true +4 GSGSGSGSGDADAS 1 14 14 HLA-DQA1*03:01/DQB1*06:02 17 63.0 GSGSGDADA 0.000608 63.0 true +4 GSGSGSGSGDADAS 1 14 14 HLA-DQA1*03:01/DQB1*06:04 17 57.0 GSGSGDADA 0.00298 57.0 true +4 GSGSGSGSGDADASA 1 15 15 HLA-DQA1*03:01/DQB1*06:02 19 38.0 SGSGDADAS 0.001559 38.0 true +4 GSGSGSGSGDADASA 1 15 15 HLA-DQA1*03:01/DQB1*06:04 19 49.0 SGSGDADAS 0.004142 49.0 true +4 GSGSGSGSGDADASAD 1 16 16 HLA-DQA1*03:01/DQB1*06:02 21 24.0 SGSGDADAS 0.00233 24.0 true +4 GSGSGSGSGDADASAD 1 16 16 HLA-DQA1*03:01/DQB1*06:04 21 39.0 SGSGDADAS 0.005232 39.0 true +4 GSGSGSGSGDADASADA 1 17 17 HLA-DQA1*03:01/DQB1*06:02 22 23.0 SGSGDADAS 0.00208 23.0 true +4 GSGSGSGSGDADASADA 1 17 17 HLA-DQA1*03:01/DQB1*06:04 22 39.0 SGSGDADAS 0.004697 39.0 true +4 SGSGDADASADAA 6 18 13 HLA-DQA1*03:01/DQB1*06:02 16 36.0 DADASADAA 0.000905 36.0 true +4 SGSGDADASADAA 6 18 13 HLA-DQA1*03:01/DQB1*06:04 16 31.0 GDADASADA 0.005035 31.0 true +4 SGSGDADASADAAK 6 19 14 HLA-DQA1*03:01/DQB1*06:02 18 13.0 DADASADAA 0.003314 13.0 true +4 SGSGDADASADAAK 6 19 14 HLA-DQA1*03:01/DQB1*06:04 18 22.0 DADASADAA 0.008585 22.0 true +4 SGSGDADASADAAKL 6 20 15 HLA-DQA1*03:01/DQB1*06:02 20 17.0 DADASADAA 0.003271 17.0 true +4 SGSGDADASADAAKL 6 20 15 HLA-DQA1*03:01/DQB1*06:04 20 24.0 DASADAAKL 0.008697 24.0 true diff -r 000000000000 -r 88e44dab2988 test-data/outputs/netmhciipan_output_3.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/outputs/netmhciipan_output_3.tsv Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,41 @@ +seq # peptide start end peptide length allele peptide index median binding percentile netmhciipan_el core netmhciipan_el score netmhciipan_el percentile reversed +1 GHAHKVPRRLLKA 1 13 13 HLA-DQA1*03:01/DQB1*06:02 1 90.0 HAHKVPRRL 0.000154 90.0 false +1 GHAHKVPRRLLKA 1 13 13 HLA-DQA1*03:01/DQB1*06:04 1 92.0 AHKVPRRLL 0.000616 92.0 false +1 GHAHKVPRRLLKAA 1 14 14 HLA-DQA1*03:01/DQB1*06:02 2 91.0 KVPRRLLKA 0.000214 91.0 false +1 GHAHKVPRRLLKAA 1 14 14 HLA-DQA1*03:01/DQB1*06:04 2 97.0 KVPRRLLKA 0.000538 97.0 false +1 GHAHKVPRRLLKAAR 1 15 15 HLA-DQA1*03:01/DQB1*06:02 3 90.0 KVPRRLLKA 0.000294 90.0 false +1 GHAHKVPRRLLKAAR 1 15 15 HLA-DQA1*03:01/DQB1*06:04 3 98.0 KVPRRLLKA 0.000465 98.0 false +2 RAAKLLRRPVKHA 1 13 13 HLA-DQA1*03:01/DQB1*06:02 4 96.0 LLRRPVKHA 0.0001 96.0 true +2 RAAKLLRRPVKHA 1 13 13 HLA-DQA1*03:01/DQB1*06:04 4 96.0 AAKLLRRPV 0.00044 96.0 true +2 RAAKLLRRPVKHAH 1 14 14 HLA-DQA1*03:01/DQB1*06:02 5 93.0 LLRRPVKHA 0.000194 93.0 true +2 RAAKLLRRPVKHAH 1 14 14 HLA-DQA1*03:01/DQB1*06:04 5 97.0 LLRRPVKHA 0.000513 97.0 true +2 RAAKLLRRPVKHAHG 1 15 15 HLA-DQA1*03:01/DQB1*06:02 6 88.0 KLLRRPVKH 0.000321 88.0 true +2 RAAKLLRRPVKHAHG 1 15 15 HLA-DQA1*03:01/DQB1*06:04 6 98.0 LLRRPVKHA 0.000466 98.0 true +3 LKAADASADADGS 1 13 13 HLA-DQA1*03:01/DQB1*06:02 7 18.0 AADASADAD 0.001712 18.0 false +3 LKAADASADADGS 1 13 13 HLA-DQA1*03:01/DQB1*06:04 7 15.0 AADASADAD 0.009489 15.0 false +3 LKAADASADADGSG 1 14 14 HLA-DQA1*03:01/DQB1*06:02 9 6.0 DASADADGS 0.005256 6.0 false +3 LKAADASADADGSG 1 14 14 HLA-DQA1*03:01/DQB1*06:04 9 13.0 AADASADAD 0.012678 13.0 false +3 LKAADASADADGSGS 1 15 15 HLA-DQA1*03:01/DQB1*06:02 11 6.7 DASADADGS 0.006061 6.7 false +3 LKAADASADADGSGS 1 15 15 HLA-DQA1*03:01/DQB1*06:04 11 23.0 DASADADGS 0.009114 23.0 false +3 LKAADASADADGSGSG 1 16 16 HLA-DQA1*03:01/DQB1*06:02 12 6.2 DASADADGS 0.005907 6.2 false +3 LKAADASADADGSGSG 1 16 16 HLA-DQA1*03:01/DQB1*06:04 12 21.0 DASADADGS 0.009327 21.0 false +3 LKAADASADADGSGSGS 1 17 17 HLA-DQA1*03:01/DQB1*06:02 13 14.0 DASADADGS 0.003124 14.0 false +3 LKAADASADADGSGSGS 1 17 17 HLA-DQA1*03:01/DQB1*06:04 13 30.0 DASADADGS 0.006008 30.0 false +3 SADADGSGSGSGS 7 19 13 HLA-DQA1*03:01/DQB1*06:02 8 64.0 ADGSGSGSG 0.000403 64.0 false +3 SADADGSGSGSGS 7 19 13 HLA-DQA1*03:01/DQB1*06:04 8 93.0 ADGSGSGSG 0.000582 93.0 false +3 SADADGSGSGSGSG 7 20 14 HLA-DQA1*03:01/DQB1*06:02 10 67.0 ADGSGSGSG 0.000549 67.0 false +3 SADADGSGSGSGSG 7 20 14 HLA-DQA1*03:01/DQB1*06:04 10 93.0 ADGSGSGSG 0.000778 93.0 false +4 GSGDADASADAAK 7 19 13 HLA-DQA1*03:01/DQB1*06:02 15 8.0 DADASADAA 0.002983 8.0 true +4 GSGDADASADAAK 7 19 13 HLA-DQA1*03:01/DQB1*06:04 15 25.0 DADASADAA 0.006234 25.0 true +4 GSGDADASADAAKL 7 20 14 HLA-DQA1*03:01/DQB1*06:02 17 8.0 DADASADAA 0.004474 8.0 true +4 GSGDADASADAAKL 7 20 14 HLA-DQA1*03:01/DQB1*06:04 17 14.0 DASADAAKL 0.012547 14.0 true +4 GSGSGSGSGDADA 1 13 13 HLA-DQA1*03:01/DQB1*06:02 14 67.0 GSGSGSGDA 0.000363 67.0 true +4 GSGSGSGSGDADA 1 13 13 HLA-DQA1*03:01/DQB1*06:04 14 57.0 GSGSGDADA 0.00229 57.0 true +4 GSGSGSGSGDADAS 1 14 14 HLA-DQA1*03:01/DQB1*06:02 16 63.0 GSGSGDADA 0.000608 63.0 true +4 GSGSGSGSGDADAS 1 14 14 HLA-DQA1*03:01/DQB1*06:04 16 57.0 GSGSGDADA 0.00298 57.0 true +4 GSGSGSGSGDADASA 1 15 15 HLA-DQA1*03:01/DQB1*06:02 18 38.0 SGSGDADAS 0.001559 38.0 true +4 GSGSGSGSGDADASA 1 15 15 HLA-DQA1*03:01/DQB1*06:04 18 49.0 SGSGDADAS 0.004142 49.0 true +4 GSGSGSGSGDADASAD 1 16 16 HLA-DQA1*03:01/DQB1*06:02 19 24.0 SGSGDADAS 0.00233 24.0 true +4 GSGSGSGSGDADASAD 1 16 16 HLA-DQA1*03:01/DQB1*06:04 19 39.0 SGSGDADAS 0.005232 39.0 true +4 GSGSGSGSGDADASADA 1 17 17 HLA-DQA1*03:01/DQB1*06:02 20 23.0 SGSGDADAS 0.00208 23.0 true +4 GSGSGSGSGDADASADA 1 17 17 HLA-DQA1*03:01/DQB1*06:04 20 39.0 SGSGDADAS 0.004697 39.0 true diff -r 000000000000 -r 88e44dab2988 test-data/outputs/netmhcpan_output_1.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/outputs/netmhcpan_output_1.tsv Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,23 @@ +seq # peptide start end peptide length allele peptide index median binding percentile netmhcpan_ba core netmhcpan_ba icore netmhcpan_ba IC50 netmhcpan_ba percentile netmhcpan_el core netmhcpan_el icore netmhcpan_el score netmhcpan_el percentile reversed +1 ATLYCVHQ 7 14 8 HLA-A*01:01 7 54.0 ATLYCVHQ- ATLYCVHQ 38595.18 64.0 ATLYCVHQ- ATLYCVHQ 0.00013 44.0 false +1 ATLYCVHQ 7 14 8 HLA-A*03:01 7 33.5 ATL-YCVHQ ATLYCVHQ 31351.02 37.0 ATL-YCVHQ ATLYCVHQ 8.7e-05 30.0 false +1 CVHQRIDV 11 18 8 HLA-A*01:01 11 43.0 CVHQRID-V CVHQRIDV 35795.47 48.0 CVHQRID-V CVHQRIDV 0.000181 38.0 false +1 CVHQRIDV 11 18 8 HLA-A*03:01 11 63.5 CVHQRIDV- CVHQRIDV 37646.15 63.0 CVHQRIDV- CVHQRIDV 9e-06 64.0 false +1 LYCVHQRI 9 16 8 HLA-A*01:01 9 57.0 LYC-VHQRI LYCVHQRI 37217.26 56.0 LYC-VHQRI LYCVHQRI 6.3e-05 58.0 false +1 LYCVHQRI 9 16 8 HLA-A*03:01 9 59.0 -LYCVHQRI LYCVHQRI 36274.66 56.0 -LYCVHQRI LYCVHQRI 1e-05 62.0 false +1 LYNTVATL 2 9 8 HLA-A*01:01 2 41.5 LYN-TVATL LYNTVATL 36724.46 53.0 LYN-TVATL LYNTVATL 0.000283 30.0 false +1 LYNTVATL 2 9 8 HLA-A*03:01 2 37.0 -LYNTVATL LYNTVATL 32799.34 42.0 -LYNTVATL LYNTVATL 7.3e-05 32.0 false +1 NTVATLYC 4 11 8 HLA-A*01:01 4 32.5 NTVATLYC- NTVATLYC 31263.96 29.0 NTVATLYC- NTVATLYC 0.000198 36.0 false +1 NTVATLYC 4 11 8 HLA-A*03:01 4 56.5 NTV-ATLYC NTVATLYC 36752.28 58.0 NTV-ATLYC NTVATLYC 1.5e-05 55.0 false +1 SLYNTVAT 1 8 8 HLA-A*01:01 1 46.0 SLYNTVAT- SLYNTVAT 37726.09 59.0 SLYNTVAT- SLYNTVAT 0.000231 33.0 false +1 SLYNTVAT 1 8 8 HLA-A*03:01 1 16.5 SLYNTVAT- SLYNTVAT 22359.43 18.0 SLYNTVAT- SLYNTVAT 0.000601 15.0 false +1 TLYCVHQR 8 15 8 HLA-A*01:01 8 37.0 TLY-CVHQR TLYCVHQR 34958.03 44.0 TLY-CVHQR TLYCVHQR 0.000295 30.0 false +1 TLYCVHQR 8 15 8 HLA-A*03:01 8 3.7 TLY-CVHQR TLYCVHQR 5298.0 4.3 TLY-CVHQR TLYCVHQR 0.025039 3.1 false +1 TVATLYCV 5 12 8 HLA-A*01:01 5 22.0 TVA-TLYCV TVATLYCV 26730.83 18.0 TVA-TLYCV TVATLYCV 0.000376 26.0 false +1 TVATLYCV 5 12 8 HLA-A*03:01 5 41.5 TVATL-YCV TVATLYCV 30907.44 36.0 TVATL-YCV TVATLYCV 2.5e-05 47.0 false +1 VATLYCVH 6 13 8 HLA-A*01:01 6 56.5 VAT-LYCVH VATLYCVH 37247.88 56.0 VAT-LYCVH VATLYCVH 6.6e-05 57.0 false +1 VATLYCVH 6 13 8 HLA-A*03:01 6 43.5 VA-TLYCVH VATLYCVH 33868.64 46.0 VA-TLYCVH VATLYCVH 3.7e-05 41.0 false +1 YCVHQRID 10 17 8 HLA-A*01:01 10 94.5 YCVHQRID- YCVHQRID 45507.15 99.0 YCVHQRID- YCVHQRID 8e-06 90.0 false +1 YCVHQRID 10 17 8 HLA-A*03:01 10 98.0 YCVHQRID- YCVHQRID 46081.89 100.0 YCVHQRID- YCVHQRID 1e-06 96.0 false +1 YNTVATLY 3 10 8 HLA-A*01:01 3 1.9 Y-NTVATLY YNTVATLY 8274.43 2.1 Y-NTVATLY YNTVATLY 0.040463 1.7 false +1 YNTVATLY 3 10 8 HLA-A*03:01 3 29.0 Y-NTVATLY YNTVATLY 30714.42 35.0 Y-NTVATLY YNTVATLY 0.000178 23.0 false diff -r 000000000000 -r 88e44dab2988 test-data/outputs/netmhcpan_output_2.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/outputs/netmhcpan_output_2.tsv Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,45 @@ +seq # peptide start end peptide length allele peptide index median binding percentile netmhcpan_el core netmhcpan_el icore netmhcpan_el score netmhcpan_el percentile reversed +1 AHKVPRRL 3 10 8 HLA-A*01:01 3 32.0 -AHKVPRRL AHKVPRRL 0.000256 32.0 false +1 AHKVPRRL 3 10 8 HLA-A*03:01 3 31.0 AHKVP-RRL AHKVPRRL 8.1e-05 31.0 false +1 GHAHKVPR 1 8 8 HLA-A*01:01 1 60.0 GHAHKVPR- GHAHKVPR 5.7e-05 60.0 false +1 GHAHKVPR 1 8 8 HLA-A*03:01 1 24.0 GHAHKVP-R GHAHKVPR 0.00015 24.0 false +1 HAHKVPRR 2 9 8 HLA-A*01:01 2 31.0 HAH-KVPRR HAHKVPRR 0.000265 31.0 false +1 HAHKVPRR 2 9 8 HLA-A*03:01 2 11.0 HAH-KVPRR HAHKVPRR 0.001191 11.0 false +1 HKVPRRLL 4 11 8 HLA-A*01:01 4 34.0 HKVPRR-LL HKVPRRLL 0.000217 34.0 false +1 HKVPRRLL 4 11 8 HLA-A*03:01 4 43.0 HKV-PRRLL HKVPRRLL 3.3e-05 43.0 false +1 KVPRRLLK 5 12 8 HLA-A*01:01 5 28.0 KVP-RRLLK KVPRRLLK 0.000335 28.0 false +1 KVPRRLLK 5 12 8 HLA-A*03:01 5 0.71 KV-PRRLLK KVPRRLLK 0.273931 0.71 false +1 PRRLLKAA 7 14 8 HLA-A*01:01 7 85.0 PRR-LLKAA PRRLLKAA 1.3e-05 85.0 false +1 PRRLLKAA 7 14 8 HLA-A*03:01 7 71.0 PRR-LLKAA PRRLLKAA 6e-06 71.0 false +1 RRLLKAAR 8 15 8 HLA-A*01:01 8 72.0 RRLLK-AAR RRLLKAAR 2.9e-05 72.0 false +1 RRLLKAAR 8 15 8 HLA-A*03:01 8 17.0 R-RLLKAAR RRLLKAAR 0.00038 17.0 false +1 VPRRLLKA 6 13 8 HLA-A*01:01 6 46.0 VPR-RLLKA VPRRLLKA 0.000115 46.0 false +1 VPRRLLKA 6 13 8 HLA-A*03:01 6 38.0 VPR-RLLKA VPRRLLKA 4.7e-05 38.0 false +2 AADASADA 3 10 8 HLA-A*01:01 11 28.0 AADASADA- AADASADA 0.000318 28.0 false +2 AADASADA 3 10 8 HLA-A*03:01 11 74.0 AADASADA- AADASADA 5e-06 74.0 false +2 ADADGSGS 8 15 8 HLA-A*01:01 16 72.0 ADADGSGS- ADADGSGS 3e-05 72.0 false +2 ADADGSGS 8 15 8 HLA-A*03:01 16 88.0 ADADGSGS- ADADGSGS 2e-06 88.0 false +2 ADASADAD 4 11 8 HLA-A*01:01 12 95.0 ADASADAD- ADASADAD 5e-06 95.0 false +2 ADASADAD 4 11 8 HLA-A*03:01 12 100.0 ADASADAD- ADASADAD 0.0 100.0 false +2 ADGSGSGS 10 17 8 HLA-A*01:01 18 77.0 -ADGSGSGS ADGSGSGS 2.2e-05 77.0 false +2 ADGSGSGS 10 17 8 HLA-A*03:01 18 96.0 ADGSGSGS- ADGSGSGS 1e-06 96.0 false +2 ASADADGS 6 13 8 HLA-A*01:01 14 41.0 ASADADGS- ASADADGS 0.000149 41.0 false +2 ASADADGS 6 13 8 HLA-A*03:01 14 78.0 ASADADGS- ASADADGS 4e-06 78.0 false +2 DADGSGSG 9 16 8 HLA-A*01:01 17 42.0 DADGSGSG- DADGSGSG 0.00014 42.0 false +2 DADGSGSG 9 16 8 HLA-A*03:01 17 88.0 DADGSGSG- DADGSGSG 2e-06 88.0 false +2 DASADADG 5 12 8 HLA-A*01:01 13 92.0 DASADADG- DASADADG 7e-06 92.0 false +2 DASADADG 5 12 8 HLA-A*03:01 13 100.0 DASADADG- DASADADG 0.0 100.0 false +2 DGSGSGSG 11 18 8 HLA-A*01:01 19 92.0 DGSGSGSG- DGSGSGSG 7e-06 92.0 false +2 DGSGSGSG 11 18 8 HLA-A*03:01 19 96.0 DGSGSGSG- DGSGSGSG 1e-06 96.0 false +2 GSGSGSGS 12 19 8 HLA-A*01:01 20 59.0 GSGSGSGS- GSGSGSGS 6e-05 59.0 false +2 GSGSGSGS 12 19 8 HLA-A*03:01 20 82.0 GSGSGSGS- GSGSGSGS 3e-06 82.0 false +2 KAADASAD 2 9 8 HLA-A*01:01 10 66.0 KAADASAD- KAADASAD 4.1e-05 66.0 false +2 KAADASAD 2 9 8 HLA-A*03:01 10 78.0 KAADASAD- KAADASAD 4e-06 78.0 false +2 LKAADASA 1 8 8 HLA-A*01:01 9 81.0 -LKAADASA LKAADASA 1.7e-05 81.0 false +2 LKAADASA 1 8 8 HLA-A*03:01 9 82.0 -LKAADASA LKAADASA 3e-06 82.0 false +2 SADADGSG 7 14 8 HLA-A*01:01 15 29.0 SADADGSG- SADADGSG 0.000311 29.0 false +2 SADADGSG 7 14 8 HLA-A*03:01 15 82.0 SADADGSG- SADADGSG 3e-06 82.0 false +2 SGSGSGSG 13 20 8 HLA-A*01:01 21 72.0 SGSGSGSG- SGSGSGSG 2.9e-05 72.0 false +2 SGSGSGSG 13 20 8 HLA-A*03:01 21 71.0 SGSGSGSG- SGSGSGSG 6e-06 71.0 false +3 KDLGYDYS 1 8 8 HLA-A*01:01 22 83.0 KDLGYDYS- KDLGYDYS 1.5e-05 83.0 false +3 KDLGYDYS 1 8 8 HLA-A*03:01 22 88.0 KDLGYDYS- KDLGYDYS 2e-06 88.0 false diff -r 000000000000 -r 88e44dab2988 test-data/outputs/netmhcpan_output_3.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/outputs/netmhcpan_output_3.tsv Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,213 @@ +seq # peptide start end peptide length allele peptide index median binding percentile netmhcpan_el core netmhcpan_el icore netmhcpan_el score netmhcpan_el percentile reversed +1 AHKVPRRL 3 10 8 HLA-A*01:01 3 32.0 -AHKVPRRL AHKVPRRL 0.000256 32.0 false +1 AHKVPRRL 3 10 8 HLA-A*03:01 3 31.0 AHKVP-RRL AHKVPRRL 8.1e-05 31.0 false +1 AHKVPRRLL 3 11 9 HLA-A*01:01 11 19.0 AHKVPRRLL AHKVPRRLL 0.000661 19.0 false +1 AHKVPRRLL 3 11 9 HLA-A*03:01 11 17.0 AHKVPRRLL AHKVPRRLL 0.000388 17.0 false +1 AHKVPRRLLK 3 12 10 HLA-A*01:01 18 25.0 AHKVPRLLK AHKVPRRLLK 0.000412 25.0 false +1 AHKVPRRLLK 3 12 10 HLA-A*03:01 18 4.2 AHKVPRLLK AHKVPRRLLK 0.012934 4.2 false +1 AHKVPRRLLKA 3 13 11 HLA-A*01:01 24 43.0 AVPRRLLKA AHKVPRRLLKA 0.000133 43.0 false +1 AHKVPRRLLKA 3 13 11 HLA-A*03:01 24 21.0 AHKVPRLLK AHKVPRRLLK 0.000241 21.0 false +1 AHKVPRRLLKAA 3 14 12 HLA-A*01:01 29 68.0 AHKVPRRLA AHKVPRRLLKAA 3.8e-05 68.0 false +1 AHKVPRRLLKAA 3 14 12 HLA-A*03:01 29 46.0 AHKVPRLLK AHKVPRRLLK 2.6e-05 46.0 false +1 AHKVPRRLLKAAR 3 15 13 HLA-A*01:01 33 81.0 AHKVPRAAR AHKVPRRLLKAAR 1.7e-05 81.0 false +1 AHKVPRRLLKAAR 3 15 13 HLA-A*03:01 33 24.0 AHKVPRAAR AHKVPRRLLKAAR 0.00015 24.0 false +1 GHAHKVPR 1 8 8 HLA-A*01:01 1 60.0 GHAHKVPR- GHAHKVPR 5.7e-05 60.0 false +1 GHAHKVPR 1 8 8 HLA-A*03:01 1 24.0 GHAHKVP-R GHAHKVPR 0.00015 24.0 false +1 GHAHKVPRR 1 9 9 HLA-A*01:01 9 36.0 GHAHKVPRR GHAHKVPRR 0.000197 36.0 false +1 GHAHKVPRR 1 9 9 HLA-A*03:01 9 6.2 GHAHKVPRR GHAHKVPRR 0.004884 6.2 false +1 GHAHKVPRRL 1 10 10 HLA-A*01:01 16 26.0 GHAHVPRRL GHAHKVPRRL 0.000366 26.0 false +1 GHAHKVPRRL 1 10 10 HLA-A*03:01 16 29.0 GAHKVPRRL GHAHKVPRRL 0.0001 29.0 false +1 GHAHKVPRRLL 1 11 11 HLA-A*01:01 22 37.0 GHAHPRRLL GHAHKVPRRLL 0.000185 37.0 false +1 GHAHKVPRRLL 1 11 11 HLA-A*03:01 22 34.0 GHAHPRRLL GHAHKVPRRLL 6.3e-05 34.0 false +1 GHAHKVPRRLLK 1 12 12 HLA-A*01:01 27 49.0 GHAPRRLLK GHAHKVPRRLLK 9.9e-05 49.0 false +1 GHAHKVPRRLLK 1 12 12 HLA-A*03:01 27 11.0 GHAPRRLLK GHAHKVPRRLLK 0.001287 11.0 false +1 GHAHKVPRRLLKA 1 13 13 HLA-A*01:01 31 68.0 GHAHKVLKA GHAHKVPRRLLKA 3.7e-05 68.0 false +1 GHAHKVPRRLLKA 1 13 13 HLA-A*03:01 31 56.0 GHAPRRLLK GHAHKVPRRLLK 1.4e-05 56.0 false +1 GHAHKVPRRLLKAA 1 14 14 HLA-A*01:01 34 92.0 GHAHKVPRA GHAHKVPRRLLKAA 7e-06 92.0 false +1 GHAHKVPRRLLKAA 1 14 14 HLA-A*03:01 34 82.0 GHAHLLKAA GHAHKVPRRLLKAA 3e-06 82.0 false +1 HAHKVPRR 2 9 8 HLA-A*01:01 2 31.0 HAH-KVPRR HAHKVPRR 0.000265 31.0 false +1 HAHKVPRR 2 9 8 HLA-A*03:01 2 11.0 HAH-KVPRR HAHKVPRR 0.001191 11.0 false +1 HAHKVPRRL 2 10 9 HLA-A*01:01 10 7.2 HAHKVPRRL HAHKVPRRL 0.003229 7.2 false +1 HAHKVPRRL 2 10 9 HLA-A*03:01 10 11.0 HAHKVPRRL HAHKVPRRL 0.001421 11.0 false +1 HAHKVPRRLL 2 11 10 HLA-A*01:01 17 20.0 HAHKVPRLL HAHKVPRRLL 0.000613 20.0 false +1 HAHKVPRRLL 2 11 10 HLA-A*03:01 17 26.0 HAHKVPRLL HAHKVPRRLL 0.000126 26.0 false +1 HAHKVPRRLLK 2 12 11 HLA-A*01:01 23 14.0 HAHKVPLLK HAHKVPRRLLK 0.001179 14.0 false +1 HAHKVPRRLLK 2 12 11 HLA-A*03:01 23 1.3 HAHKVPLLK HAHKVPRRLLK 0.135325 1.3 false +1 HAHKVPRRLLKA 2 13 12 HLA-A*01:01 28 46.0 HAHKVPLKA HAHKVPRRLLKA 0.000117 46.0 false +1 HAHKVPRRLLKA 2 13 12 HLA-A*03:01 28 19.0 HAHKVPLLK HAHKVPRRLLK 0.000299 19.0 false +1 HAHKVPRRLLKAA 2 14 13 HLA-A*01:01 32 74.0 HAHKVPRAA HAHKVPRRLLKAA 2.6e-05 74.0 false +1 HAHKVPRRLLKAA 2 14 13 HLA-A*03:01 32 46.0 HAHKVPLLK HAHKVPRRLLK 2.7e-05 46.0 false +1 HAHKVPRRLLKAAR 2 15 14 HLA-A*01:01 35 74.0 HAHKVPAAR HAHKVPRRLLKAAR 2.7e-05 74.0 false +1 HAHKVPRRLLKAAR 2 15 14 HLA-A*03:01 35 30.0 HAHKVPAAR HAHKVPRRLLKAAR 8.9e-05 30.0 false +1 HKVPRRLL 4 11 8 HLA-A*01:01 4 34.0 HKVPRR-LL HKVPRRLL 0.000217 34.0 false +1 HKVPRRLL 4 11 8 HLA-A*03:01 4 43.0 HKV-PRRLL HKVPRRLL 3.3e-05 43.0 false +1 HKVPRRLLK 4 12 9 HLA-A*01:01 12 26.0 HKVPRRLLK HKVPRRLLK 0.000376 26.0 false +1 HKVPRRLLK 4 12 9 HLA-A*03:01 12 2.8 HKVPRRLLK HKVPRRLLK 0.030755 2.8 false +1 HKVPRRLLKA 4 13 10 HLA-A*01:01 19 34.0 HVPRRLLKA HKVPRRLLKA 0.000226 34.0 false +1 HKVPRRLLKA 4 13 10 HLA-A*03:01 19 25.0 HKVPRRLLK HKVPRRLLK 0.000141 25.0 false +1 HKVPRRLLKAA 4 14 11 HLA-A*01:01 25 55.0 HKVPRRLLA HKVPRRLLKAA 7.4e-05 55.0 false +1 HKVPRRLLKAA 4 14 11 HLA-A*03:01 25 50.0 HKVPRRLLK HKVPRRLLK 2e-05 50.0 false +1 HKVPRRLLKAAR 4 15 12 HLA-A*01:01 30 71.0 HKVPRRLLR HKVPRRLLKAAR 3.2e-05 71.0 false +1 HKVPRRLLKAAR 4 15 12 HLA-A*03:01 30 20.0 KVPRRLLKR KVPRRLLKAAR 0.000259 20.0 false +1 KVPRRLLK 5 12 8 HLA-A*01:01 5 28.0 KVP-RRLLK KVPRRLLK 0.000335 28.0 false +1 KVPRRLLK 5 12 8 HLA-A*03:01 5 0.71 KV-PRRLLK KVPRRLLK 0.273931 0.71 false +1 KVPRRLLKA 5 13 9 HLA-A*01:01 13 15.0 KVPRRLLKA KVPRRLLKA 0.000947 15.0 false +1 KVPRRLLKA 5 13 9 HLA-A*03:01 13 4.7 KVPRRLLKA KVPRRLLKA 0.009838 4.7 false +1 KVPRRLLKAA 5 14 10 HLA-A*01:01 20 45.0 KVPRRLLKA KVPRRLLKAA 0.00012 45.0 false +1 KVPRRLLKAA 5 14 10 HLA-A*03:01 20 16.0 KVPRRLLKA KVPRRLLKAA 0.000437 16.0 false +1 KVPRRLLKAAR 5 15 11 HLA-A*01:01 26 33.0 KVPRRLLKR KVPRRLLKAAR 0.000244 33.0 false +1 KVPRRLLKAAR 5 15 11 HLA-A*03:01 26 2.7 KVPRRLLAR KVPRRLLKAAR 0.032122 2.7 false +1 PRRLLKAA 7 14 8 HLA-A*01:01 7 85.0 PRR-LLKAA PRRLLKAA 1.3e-05 85.0 false +1 PRRLLKAA 7 14 8 HLA-A*03:01 7 71.0 PRR-LLKAA PRRLLKAA 6e-06 71.0 false +1 PRRLLKAAR 7 15 9 HLA-A*01:01 15 68.0 PRRLLKAAR PRRLLKAAR 3.7e-05 68.0 false +1 PRRLLKAAR 7 15 9 HLA-A*03:01 15 27.0 PRRLLKAAR PRRLLKAAR 0.000112 27.0 false +1 RRLLKAAR 8 15 8 HLA-A*01:01 8 72.0 RRLLK-AAR RRLLKAAR 2.9e-05 72.0 false +1 RRLLKAAR 8 15 8 HLA-A*03:01 8 17.0 R-RLLKAAR RRLLKAAR 0.00038 17.0 false +1 VPRRLLKA 6 13 8 HLA-A*01:01 6 46.0 VPR-RLLKA VPRRLLKA 0.000115 46.0 false +1 VPRRLLKA 6 13 8 HLA-A*03:01 6 38.0 VPR-RLLKA VPRRLLKA 4.7e-05 38.0 false +1 VPRRLLKAA 6 14 9 HLA-A*01:01 14 30.0 VPRRLLKAA VPRRLLKAA 0.000287 30.0 false +1 VPRRLLKAA 6 14 9 HLA-A*03:01 14 22.0 VPRRLLKAA VPRRLLKAA 0.000195 22.0 false +1 VPRRLLKAAR 6 15 10 HLA-A*01:01 21 62.0 VPRRLKAAR VPRRLLKAAR 5.2e-05 62.0 false +1 VPRRLLKAAR 6 15 10 HLA-A*03:01 21 18.0 VPRRLLAAR VPRRLLKAAR 0.000361 18.0 false +2 AADASADA 3 10 8 HLA-A*01:01 38 28.0 AADASADA- AADASADA 0.000318 28.0 false +2 AADASADA 3 10 8 HLA-A*03:01 38 74.0 AADASADA- AADASADA 5e-06 74.0 false +2 AADASADAD 3 11 9 HLA-A*01:01 51 30.0 AADASADAD AADASADAD 0.000295 30.0 false +2 AADASADAD 3 11 9 HLA-A*03:01 51 88.0 AADASADAD AADASADAD 2e-06 88.0 false +2 AADASADADG 3 12 10 HLA-A*01:01 63 50.0 AADASADAG AADASADADG 9.5e-05 50.0 false +2 AADASADADG 3 12 10 HLA-A*03:01 63 96.0 AADASADAG AADASADADG 1e-06 96.0 false +2 AADASADADGS 3 13 11 HLA-A*01:01 74 43.0 AADASADAS AADASADADGS 0.000135 43.0 false +2 AADASADADGS 3 13 11 HLA-A*03:01 74 96.0 AADASADAS AADASADADGS 1e-06 96.0 false +2 AADASADADGSG 3 14 12 HLA-A*01:01 84 65.0 AADASADSG AADASADADGSG 4.4e-05 65.0 false +2 AADASADADGSG 3 14 12 HLA-A*03:01 84 96.0 ASADADGSG AADASADADGSG 1e-06 96.0 false +2 AADASADADGSGS 3 15 13 HLA-A*01:01 93 45.0 AADASGSGS AADASADADGSGS 0.00012 45.0 false +2 AADASADADGSGS 3 15 13 HLA-A*03:01 93 96.0 AADASGSGS AADASADADGSGS 1e-06 96.0 false +2 AADASADADGSGSG 3 16 14 HLA-A*01:01 101 79.0 AADDGSGSG AADASADADGSGSG 1.9e-05 79.0 false +2 AADASADADGSGSG 3 16 14 HLA-A*03:01 101 100.0 AADDGSGSG AADASADADGSGSG 0.0 100.0 false +2 ADADGSGS 8 15 8 HLA-A*01:01 43 72.0 ADADGSGS- ADADGSGS 3e-05 72.0 false +2 ADADGSGS 8 15 8 HLA-A*03:01 43 88.0 ADADGSGS- ADADGSGS 2e-06 88.0 false +2 ADADGSGSG 8 16 9 HLA-A*01:01 56 48.0 ADADGSGSG ADADGSGSG 0.000105 48.0 false +2 ADADGSGSG 8 16 9 HLA-A*03:01 56 71.0 ADADGSGSG ADADGSGSG 6e-06 71.0 false +2 ADADGSGSGS 8 17 10 HLA-A*01:01 68 21.0 AADGSGSGS ADADGSGSGS 0.000564 21.0 false +2 ADADGSGSGS 8 17 10 HLA-A*03:01 68 62.0 AADGSGSGS ADADGSGSGS 1e-05 62.0 false +2 ADADGSGSGSG 8 18 11 HLA-A*01:01 79 80.0 ADADGSGSG ADADGSGSGSG 1.8e-05 80.0 false +2 ADADGSGSGSG 8 18 11 HLA-A*03:01 79 96.0 ADASGSGSG ADADGSGSGSG 1e-06 96.0 false +2 ADADGSGSGSGS 8 19 12 HLA-A*01:01 89 82.0 AGSGSGSGS ADADGSGSGSGS 1.6e-05 82.0 false +2 ADADGSGSGSGS 8 19 12 HLA-A*03:01 89 88.0 AGSGSGSGS ADADGSGSGSGS 2e-06 88.0 false +2 ADADGSGSGSGSG 8 20 13 HLA-A*01:01 98 95.0 ASGSGSGSG ADADGSGSGSGSG 5e-06 95.0 false +2 ADADGSGSGSGSG 8 20 13 HLA-A*03:01 98 100.0 ADADGSGSG ADADGSGSGSGSG 0.0 100.0 false +2 ADASADAD 4 11 8 HLA-A*01:01 39 95.0 ADASADAD- ADASADAD 5e-06 95.0 false +2 ADASADAD 4 11 8 HLA-A*03:01 39 100.0 ADASADAD- ADASADAD 0.0 100.0 false +2 ADASADADG 4 12 9 HLA-A*01:01 52 88.0 ADASADADG ADASADADG 1e-05 88.0 false +2 ADASADADG 4 12 9 HLA-A*03:01 52 96.0 ADASADADG ADASADADG 1e-06 96.0 false +2 ADASADADGS 4 13 10 HLA-A*01:01 64 78.0 AASADADGS ADASADADGS 2.1e-05 78.0 false +2 ADASADADGS 4 13 10 HLA-A*03:01 64 96.0 AASADADGS ADASADADGS 1e-06 96.0 false +2 ADASADADGSG 4 14 11 HLA-A*01:01 75 76.0 ASADADGSG ADASADADGSG 2.3e-05 76.0 false +2 ADASADADGSG 4 14 11 HLA-A*03:01 75 96.0 ASADADGSG ADASADADGSG 1e-06 96.0 false +2 ADASADADGSGS 4 15 12 HLA-A*01:01 85 51.0 AADADGSGS ADASADADGSGS 8.7e-05 51.0 false +2 ADASADADGSGS 4 15 12 HLA-A*03:01 85 96.0 AADADGSGS ADASADADGSGS 1e-06 96.0 false +2 ADASADADGSGSG 4 16 13 HLA-A*01:01 94 98.0 ADADGSGSG ADASADADGSGSG 3e-06 98.0 false +2 ADASADADGSGSG 4 16 13 HLA-A*03:01 94 100.0 ADADGSGSG ADASADADGSGSG 0.0 100.0 false +2 ADASADADGSGSGS 4 17 14 HLA-A*01:01 102 66.0 AADGSGSGS ADASADADGSGSGS 4.2e-05 66.0 false +2 ADASADADGSGSGS 4 17 14 HLA-A*03:01 102 96.0 AADGSGSGS ADASADADGSGSGS 1e-06 96.0 false +2 ADGSGSGS 10 17 8 HLA-A*01:01 45 77.0 -ADGSGSGS ADGSGSGS 2.2e-05 77.0 false +2 ADGSGSGS 10 17 8 HLA-A*03:01 45 96.0 ADGSGSGS- ADGSGSGS 1e-06 96.0 false +2 ADGSGSGSG 10 18 9 HLA-A*01:01 58 77.0 ADGSGSGSG ADGSGSGSG 2.2e-05 77.0 false +2 ADGSGSGSG 10 18 9 HLA-A*03:01 58 82.0 ADGSGSGSG ADGSGSGSG 3e-06 82.0 false +2 ADGSGSGSGS 10 19 10 HLA-A*01:01 70 66.0 AGSGSGSGS ADGSGSGSGS 4.2e-05 66.0 false +2 ADGSGSGSGS 10 19 10 HLA-A*03:01 70 66.0 AGSGSGSGS ADGSGSGSGS 8e-06 66.0 false +2 ADGSGSGSGSG 10 20 11 HLA-A*01:01 81 83.0 ASGSGSGSG ADGSGSGSGSG 1.5e-05 83.0 false +2 ADGSGSGSGSG 10 20 11 HLA-A*03:01 81 96.0 ASGSGSGSG ADGSGSGSGSG 1e-06 96.0 false +2 ASADADGS 6 13 8 HLA-A*01:01 41 41.0 ASADADGS- ASADADGS 0.000149 41.0 false +2 ASADADGS 6 13 8 HLA-A*03:01 41 78.0 ASADADGS- ASADADGS 4e-06 78.0 false +2 ASADADGSG 6 14 9 HLA-A*01:01 54 36.0 ASADADGSG ASADADGSG 0.000204 36.0 false +2 ASADADGSG 6 14 9 HLA-A*03:01 54 68.0 ASADADGSG ASADADGSG 7e-06 68.0 false +2 ASADADGSGS 6 15 10 HLA-A*01:01 66 13.0 ASDADGSGS ASADADGSGS 0.00129 13.0 false +2 ASADADGSGS 6 15 10 HLA-A*03:01 66 44.0 ASADAGSGS ASADADGSGS 3e-05 44.0 false +2 ASADADGSGSG 6 16 11 HLA-A*01:01 77 53.0 ASADGSGSG ASADADGSGSG 7.9e-05 53.0 false +2 ASADADGSGSG 6 16 11 HLA-A*03:01 77 78.0 ASADGSGSG ASADADGSGSG 4e-06 78.0 false +2 ASADADGSGSGS 6 17 12 HLA-A*01:01 87 17.0 ASDGSGSGS ASADADGSGSGS 0.000796 17.0 false +2 ASADADGSGSGS 6 17 12 HLA-A*03:01 87 56.0 ASAGSGSGS ASADADGSGSGS 1.4e-05 56.0 false +2 ASADADGSGSGSG 6 18 13 HLA-A*01:01 96 74.0 ASADGSGSG ASADADGSGSGSG 2.6e-05 74.0 false +2 ASADADGSGSGSG 6 18 13 HLA-A*03:01 96 96.0 ASADGSGSG ASADADGSGSGSG 1e-06 96.0 false +2 ASADADGSGSGSGS 6 19 14 HLA-A*01:01 104 68.0 ASADSGSGS ASADADGSGSGSGS 3.7e-05 68.0 false +2 ASADADGSGSGSGS 6 19 14 HLA-A*03:01 104 82.0 ASADSGSGS ASADADGSGSGSGS 3e-06 82.0 false +2 DADGSGSG 9 16 8 HLA-A*01:01 44 42.0 DADGSGSG- DADGSGSG 0.00014 42.0 false +2 DADGSGSG 9 16 8 HLA-A*03:01 44 88.0 DADGSGSG- DADGSGSG 2e-06 88.0 false +2 DADGSGSGS 9 17 9 HLA-A*01:01 57 16.0 DADGSGSGS DADGSGSGS 0.000893 16.0 false +2 DADGSGSGS 9 17 9 HLA-A*03:01 57 62.0 DADGSGSGS DADGSGSGS 1e-05 62.0 false +2 DADGSGSGSG 9 18 10 HLA-A*01:01 69 46.0 DADGSGSSG DADGSGSGSG 0.000113 46.0 false +2 DADGSGSGSG 9 18 10 HLA-A*03:01 69 88.0 DADGSGSSG DADGSGSGSG 2e-06 88.0 false +2 DADGSGSGSGS 9 19 11 HLA-A*01:01 80 50.0 DADGSGSGS DADGSGSGSGS 9.5e-05 50.0 false +2 DADGSGSGSGS 9 19 11 HLA-A*03:01 80 88.0 DADGSGSGS DADGSGSGSGS 2e-06 88.0 false +2 DADGSGSGSGSG 9 20 12 HLA-A*01:01 90 62.0 DADGSGSSG DADGSGSGSGSG 5e-05 62.0 false +2 DADGSGSGSGSG 9 20 12 HLA-A*03:01 90 96.0 DADSGSGSG DADGSGSGSGSG 1e-06 96.0 false +2 DASADADG 5 12 8 HLA-A*01:01 40 92.0 DASADADG- DASADADG 7e-06 92.0 false +2 DASADADG 5 12 8 HLA-A*03:01 40 100.0 DASADADG- DASADADG 0.0 100.0 false +2 DASADADGS 5 13 9 HLA-A*01:01 53 73.0 DASADADGS DASADADGS 2.8e-05 73.0 false +2 DASADADGS 5 13 9 HLA-A*03:01 53 88.0 DASADADGS DASADADGS 2e-06 88.0 false +2 DASADADGSG 5 14 10 HLA-A*01:01 65 78.0 DSADADGSG DASADADGSG 2e-05 78.0 false +2 DASADADGSG 5 14 10 HLA-A*03:01 65 100.0 DSADADGSG DASADADGSG 0.0 100.0 false +2 DASADADGSGS 5 15 11 HLA-A*01:01 76 60.0 DADADGSGS DASADADGSGS 5.7e-05 60.0 false +2 DASADADGSGS 5 15 11 HLA-A*03:01 76 88.0 ASADAGSGS ASADADGSGS 2e-06 88.0 false +2 DASADADGSGSG 5 16 12 HLA-A*01:01 86 90.0 DAADGSGSG DASADADGSGSG 8e-06 90.0 false +2 DASADADGSGSG 5 16 12 HLA-A*03:01 86 100.0 DAADGSGSG DASADADGSGSG 0.0 100.0 false +2 DASADADGSGSGS 5 17 13 HLA-A*01:01 95 71.0 DADGSGSGS DASADADGSGSGS 3.1e-05 71.0 false +2 DASADADGSGSGS 5 17 13 HLA-A*03:01 95 96.0 DADGSGSGS DASADADGSGSGS 1e-06 96.0 false +2 DASADADGSGSGSG 5 18 14 HLA-A*01:01 103 100.0 DASSGSGSG DASADADGSGSGSG 1e-06 100.0 false +2 DASADADGSGSGSG 5 18 14 HLA-A*03:01 103 100.0 DASSGSGSG DASADADGSGSGSG 0.0 100.0 false +2 DGSGSGSG 11 18 8 HLA-A*01:01 46 92.0 DGSGSGSG- DGSGSGSG 7e-06 92.0 false +2 DGSGSGSG 11 18 8 HLA-A*03:01 46 96.0 DGSGSGSG- DGSGSGSG 1e-06 96.0 false +2 DGSGSGSGS 11 19 9 HLA-A*01:01 59 56.0 DGSGSGSGS DGSGSGSGS 6.9e-05 56.0 false +2 DGSGSGSGS 11 19 9 HLA-A*03:01 59 74.0 DGSGSGSGS DGSGSGSGS 5e-06 74.0 false +2 DGSGSGSGSG 11 20 10 HLA-A*01:01 71 57.0 DGSGSGGSG DGSGSGSGSG 6.5e-05 57.0 false +2 DGSGSGSGSG 11 20 10 HLA-A*03:01 71 96.0 DGSGSGSSG DGSGSGSGSG 1e-06 96.0 false +2 GSGSGSGS 12 19 8 HLA-A*01:01 47 59.0 GSGSGSGS- GSGSGSGS 6e-05 59.0 false +2 GSGSGSGS 12 19 8 HLA-A*03:01 47 82.0 GSGSGSGS- GSGSGSGS 3e-06 82.0 false +2 GSGSGSGSG 12 20 9 HLA-A*01:01 60 53.0 GSGSGSGSG GSGSGSGSG 7.9e-05 53.0 false +2 GSGSGSGSG 12 20 9 HLA-A*03:01 60 71.0 GSGSGSGSG GSGSGSGSG 6e-06 71.0 false +2 KAADASAD 2 9 8 HLA-A*01:01 37 66.0 KAADASAD- KAADASAD 4.1e-05 66.0 false +2 KAADASAD 2 9 8 HLA-A*03:01 37 78.0 KAADASAD- KAADASAD 4e-06 78.0 false +2 KAADASADA 2 10 9 HLA-A*01:01 50 19.0 KAADASADA KAADASADA 0.000659 19.0 false +2 KAADASADA 2 10 9 HLA-A*03:01 50 30.0 KAADASADA KAADASADA 8.7e-05 30.0 false +2 KAADASADAD 2 11 10 HLA-A*01:01 62 68.0 KADASADAD KAADASADAD 3.8e-05 68.0 false +2 KAADASADAD 2 11 10 HLA-A*03:01 62 88.0 KAADASADA KAADASADA 2e-06 88.0 false +2 KAADASADADG 2 12 11 HLA-A*01:01 73 86.0 KAADASADG KAADASADADG 1.2e-05 86.0 false +2 KAADASADADG 2 12 11 HLA-A*03:01 73 96.0 KAADASADA KAADASADA 1e-06 96.0 false +2 KAADASADADGS 2 13 12 HLA-A*01:01 83 80.0 KAADASAGS KAADASADADGS 1.8e-05 80.0 false +2 KAADASADADGS 2 13 12 HLA-A*03:01 83 78.0 KAADASAGS KAADASADADGS 4e-06 78.0 false +2 KAADASADADGSG 2 14 13 HLA-A*01:01 92 88.0 KAADASASG KAADASADADGSG 1e-05 88.0 false +2 KAADASADADGSG 2 14 13 HLA-A*03:01 92 96.0 KAADASASG KAADASADADGSG 1e-06 96.0 false +2 KAADASADADGSGS 2 15 14 HLA-A*01:01 100 83.0 KADADGSGS KAADASADADGSGS 1.5e-05 83.0 false +2 KAADASADADGSGS 2 15 14 HLA-A*03:01 100 88.0 KAADAGSGS KAADASADADGSGS 2e-06 88.0 false +2 LKAADASA 1 8 8 HLA-A*01:01 36 81.0 -LKAADASA LKAADASA 1.7e-05 81.0 false +2 LKAADASA 1 8 8 HLA-A*03:01 36 82.0 -LKAADASA LKAADASA 3e-06 82.0 false +2 LKAADASAD 1 9 9 HLA-A*01:01 49 99.0 LKAADASAD LKAADASAD 2e-06 99.0 false +2 LKAADASAD 1 9 9 HLA-A*03:01 49 100.0 LKAADASAD LKAADASAD 0.0 100.0 false +2 LKAADASADA 1 10 10 HLA-A*01:01 61 49.0 LAADASADA LKAADASADA 9.6e-05 49.0 false +2 LKAADASADA 1 10 10 HLA-A*03:01 61 78.0 LAADASADA LKAADASADA 4e-06 78.0 false +2 LKAADASADAD 1 11 11 HLA-A*01:01 72 81.0 LADASADAD LKAADASADAD 1.7e-05 81.0 false +2 LKAADASADAD 1 11 11 HLA-A*03:01 72 100.0 LADASADAD LKAADASADAD 0.0 100.0 false +2 LKAADASADADG 1 12 12 HLA-A*01:01 82 100.0 LKAADASAG LKAADASADADG 1e-06 100.0 false +2 LKAADASADADG 1 12 12 HLA-A*03:01 82 100.0 LKAADASAG LKAADASADADG 0.0 100.0 false +2 LKAADASADADGS 1 13 13 HLA-A*01:01 91 99.0 LASADADGS LKAADASADADGS 2e-06 99.0 false +2 LKAADASADADGS 1 13 13 HLA-A*03:01 91 100.0 KAADASAGS KAADASADADGS 0.0 100.0 false +2 LKAADASADADGSG 1 14 14 HLA-A*01:01 99 99.0 LSADADGSG LKAADASADADGSG 2e-06 99.0 false +2 LKAADASADADGSG 1 14 14 HLA-A*03:01 99 100.0 LSADADGSG LKAADASADADGSG 0.0 100.0 false +2 SADADGSG 7 14 8 HLA-A*01:01 42 29.0 SADADGSG- SADADGSG 0.000311 29.0 false +2 SADADGSG 7 14 8 HLA-A*03:01 42 82.0 SADADGSG- SADADGSG 3e-06 82.0 false +2 SADADGSGS 7 15 9 HLA-A*01:01 55 8.0 SADADGSGS SADADGSGS 0.002732 8.0 false +2 SADADGSGS 7 15 9 HLA-A*03:01 55 57.0 SADADGSGS SADADGSGS 1.3e-05 57.0 false +2 SADADGSGSG 7 16 10 HLA-A*01:01 67 23.0 SADDGSGSG SADADGSGSG 0.000462 23.0 false +2 SADADGSGSG 7 16 10 HLA-A*03:01 67 78.0 SAADGSGSG SADADGSGSG 4e-06 78.0 false +2 SADADGSGSGS 7 17 11 HLA-A*01:01 78 19.0 SADASGSGS SADADGSGSGS 0.00069 19.0 false +2 SADADGSGSGS 7 17 11 HLA-A*03:01 78 78.0 SADGSGSGS SADADGSGSGS 4e-06 78.0 false +2 SADADGSGSGSG 7 18 12 HLA-A*01:01 88 48.0 SADSGSGSG SADADGSGSGSG 0.000101 48.0 false +2 SADADGSGSGSG 7 18 12 HLA-A*03:01 88 96.0 SADSGSGSG SADADGSGSGSG 1e-06 96.0 false +2 SADADGSGSGSGS 7 19 13 HLA-A*01:01 97 35.0 SADGSGSGS SADADGSGSGSGS 0.000213 35.0 false +2 SADADGSGSGSGS 7 19 13 HLA-A*03:01 97 88.0 SASGSGSGS SADADGSGSGSGS 2e-06 88.0 false +2 SADADGSGSGSGSG 7 20 14 HLA-A*01:01 105 78.0 SADSGSGSG SADADGSGSGSGSG 2e-05 78.0 false +2 SADADGSGSGSGSG 7 20 14 HLA-A*03:01 105 100.0 SADADGSSG SADADGSGSGSGSG 0.0 100.0 false +2 SGSGSGSG 13 20 8 HLA-A*01:01 48 72.0 SGSGSGSG- SGSGSGSG 2.9e-05 72.0 false +2 SGSGSGSG 13 20 8 HLA-A*03:01 48 71.0 SGSGSGSG- SGSGSGSG 6e-06 71.0 false +3 KDLGYDYS 1 8 8 HLA-A*01:01 106 83.0 KDLGYDYS- KDLGYDYS 1.5e-05 83.0 false +3 KDLGYDYS 1 8 8 HLA-A*03:01 106 88.0 KDLGYDYS- KDLGYDYS 2e-06 88.0 false diff -r 000000000000 -r 88e44dab2988 test-data/seqs.fa --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/seqs.fa Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,6 @@ +>peptide1 +GHAHKVPRRLLKAAR +>peptide2 +LKAADASADADGSGSGSGSG +>peptide3 +KDLGYDYS diff -r 000000000000 -r 88e44dab2988 test-data/seqs.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/seqs.tsv Wed Jul 09 12:56:30 2025 +0000 @@ -0,0 +1,3 @@ +peptide1 16 GHAHKVPRRLLKAAR +peptide2 21 LKAADASADADGSGSGSGSG +peptide3 8 KDLGYDYS