LLPSense / examples.py
Minjun Kang
changed examples file
a9bb355
Raw
History Blame Contribute Delete
10 kB
"""Built-in example sequences for the LLPSense demo.
Shared by app.py (UI + on-the-fly extraction fallback) and
preprocess/extract_example_feat.py (offline pre-computation), so both stay
in sync on which sequences have a cached ProtT5 feature under assets/.
To add another example, just append a dict with a unique "id" here, then
run `python preprocess/extract_example_feat.py` to populate its cached
feature in assets/ before deploying.
"""
from pathlib import Path
ASSETS_DIR = Path(__file__).parent / "assets"
EXAMPLES = [
{
"id": "synuclein",
"name": "α-Synuclein",
"seq": (
"MDVFMKGLSKAKEGVVAAAEKTKQGVAEAAGKTKEGVLYVGSKTKEGVVHGVATVAEKTK"
"EQVTNVGGAVVTGVTAVAQKTVEGAGSIAAATGFVKKDQLGKNEEGAPQEGILEDMPVDP"
"DNEAYEMPSEEGYQDYEPEA"
),
},
{
"id": "ubqln4",
"name": "UBQLN4",
"seq": (
"MAEPSGAETRPPIRVTVKTPKDKEEIVICDRASVKEFKEEISRRFKAQQDQLVLIFAGKI"
"LKDGDTLNQHGIKDGLTVHLVIKTPQKAQDPAAATASSPSTPDPASAPSTTPASPATPAQ"
"PSTSGSASSDAGSGSRRSSGGGPSPGAGEGSPSATASILSGFGGILGLGSLGLGSANFME"
"LQQQMQRQLMSNPEMLSQIMENPLVQDMMSNPDLMRHMIMANPQMQQLMERNPEISHMLN"
"NPELMRQTMELARNPAMMQEMMRNQDRALSNLESIPGGYNALRRMYTDIQEPMFSAAREQ"
"FGNNPFSSLAGNSDSSSSQPLRTENREPLPNPWSPSPPTSQAPGSGGEGTGGSGTSQVHP"
"TVSNPFGINAASLGSGMFNSPEMQALLQQISENPQLMQNVISAPYMRSMMQTLAQNPDFA"
"AQMMVNVPLFAGNPQLQEQLRLQLPVFLQQMQNPESLSILTNPRAMQALLQIQQGLQTLQ"
"TEAPGLVPSLGSFGISRTPAPSAGSNAGSTPEAPTSSPATPATSSPTGASSAQQQLMQQM"
"IQLLAGSGNSQVQTPEVRFQQQLEQLNSMGFINREANLQALIATGGDINAAIERLLGSQL"
"S"
),
},
{
"id": 'ascl1',
"name": 'ASCL1',
"seq": (
"MESSAKMESGGAGQQPQPQPQQPFLPPAACFFATAAAAAAAAAAAAAQSAQQQQQQQQQQ"
"QQAPQLRPAADGQPSGGGHKSAPKQVKRQRSSSPELMRCKRRLNFSGFGYSLPQQQPAAV"
"ARRNERERNRVKLVNLGFATLREHVPNGAANKKMSKVETLRSAVEYIRALQQLLDEHDAV"
"SAAFQAGVLSPTISPNYSNDLNSMAGSPVSSYSSDEGSYDPLSPEEQELLDFTNWF"
),
},
{
"id": 'atn1',
"name": 'ATN1',
"seq": (
"MKTRQNKDSMSMRSGRKKEAPGPREELRSRGRASPGGVSTSSSDGKAEKSRQTAKKARVE"
"EASTPKVNKQGRSEEISESESEETNAPKKTKTEQELPRPQSPSDLDSLDGRSLNDDGSSD"
"PRDIDQDNRSTSPSIYSPGSVENDSDSSSGLSQGPARPYHPPPLFPPSPQPPDSTPRQPE"
"ASFEPHPSVTPTGYHAPMEPPTSRMFQAPPGAPPPHPQLYPGGTGGVLSGPPMGPKGGGA"
"ASSVGGPNGGKQHPPPTTPISVSSSGASGAPPTKPPTTPVGGGNLPSAPPPANFPHVTPN"
"LPPPPALRPLNNASASPPGLGAQPLPGHLPSPHAMGQGMGGLPPGPEKGPTLAPSPHSLP"
"PASSSAPAPPMRFPYSSSSSSSAAASSSSSSSSSSASPFPASQALPSYPHSFPPPTSLSV"
"SNQPPKYTQPSLPSQAVWSQGPPPPPPYGRLLANSNAHPGPFPPSTGAQSTAHPPVSTHH"
"HHHQQQQQQQQQQQQQQQQQQQHHGNSGPPPPGAFPHPLEGGSSHHAHPYAMSPSLGSLR"
"PYPPGPAHLPPPHSQVSYSQAGPNGPPVSSSSNSSSSTSQGSYPCSHPSPSQGPQGAPYP"
"FPPVPTVTTSSATLSTVIATVASSPAGYKTASPPGPPPYGKRAPSPGAYKTATPPGYKPG"
"SPPSFRTGTPPGYRGTSPPAGPGTFKPGSPTVGPGPLPPAGPSGLPSLPPPPAAPASGPP"
"LSATQIKQEPAEEYETPESPVPPARSPSPPPKVVDVPSHASQSARFNKHLDRGFNSCARS"
"DLYFVPLEGSKLAKKRADLVEKVRREAEQRAREEKEREREREREKEREREKERELERSVK"
"LAQEGRAPVECPSLGPVPHRPPFEPGSAVATVPPYLGPDTPALRTLSEYARPHVMSPGNR"
"NHPFYVPLGAVDPGLLGYNVPALYSSDPAAREREREARERDLRDRLKPGFEVKPSELEPL"
"HGVPGPGLDPFPRHGGLALQPGPPGLHPFPFHPSLGPLERERLALAAGPALRPDMSYAER"
"LAAERQHAERVAALGNDPLARLQMLNVTPHHHQHSHIHSHLHLHQQDAIHAASASVHPLI"
"DPLASGSHLTRIPYPAGTLPNPLLPHPLHENEVLRHQLFAAPYRDLPASLSAPMSAAHQL"
"QAMHAQSAELQRLALEQQQWLHAHHPLHSVPLPAQEDYYSHLKKESDKPL"
),
},
{
"id": 'fbll1',
"name": 'FBLL1',
"seq": (
"MKSAASSRGGGGGGRGGGGWGSWGGGRGGGGGAGKGGGGDGGGQGGKGGFGARARGFGGG"
"GRGRGRGGGDGKDRGGGGQRRGGVAKSKSRRRKGAMVVSVEPHRHEGVFIYRGAEDALVT"
"LNMVPGQSVYGERRVTVTEGGVKQEYRTWNPFRSKLAAAILGGVDQIHIKPKSKVLYLGA"
"ASGTTVSHVSDIIGPDGLVYAVEFSHRAGRDLVNVAKKRTNIIPVLEDARHPLKYRMLIG"
"MVDVIFADVAQPDQSRIVALNAHTFLRNGGHFLISIKANCIDSTASAEAVFASEVRKLQQ"
"ENLKPQEQLTLEPYERDHAVVVGVYRPLPKSSSK"
),
},
{
"id": 'foxp2',
"name": 'FOXP2',
"seq": (
"MMQESATETISNSSMNQNGMSTLSSQLDAGSRDGRSSGDTSSEVSTVELLHLQQQQALQA"
"ARQLLLQQQTSGLKSPKSSDKQRPLQVPVSVAMMTPQVITPQQMQQILQQQVLSPQQLQA"
"LLQQQQAVMLQQQQLQEFYKKQQEQLHLQLLQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"
"QQQQQQQQQQQHPGKQAKEQQQQQQQQQQLAAQQLVFQQQLLQMQQLQQQQHLLSLQRQG"
"LISIPPGQAALPVQSLPQAGLSPAEIQQLWKEVTGVHSMEDNGIKHGGLDLTTNNSSSTT"
"SSNTSKASPPITHHSIVNGQSSVLSARRDSSSHEETGASHTLYGHGVCKWPGCESICEDF"
"GQFLKHLNNEHALDDRSTAQCRVQMQVVQQLEIQLSKERERLQAMMTHLHMRPSEPKPSP"
"KPLNLVSSVTMSKNMLETSPQSLPQTPTTPTAPVTPITQGPSVITPASVPNVGAIRRRHS"
"DKYNIPMSSEIAPNYEFYKNADVRPPFTYATLIRQAIMESSDRQLTLNEIYSWFTRTFAY"
"FRRNAATWKNAVRHNLSLHKCFVRVENVKGAVWTVDEVEYQKRRSQKITGSPTLVKNIPT"
"SLGYGAALNASLQAALAESSLPLLSNPGLINNASSGLLQAVHEDLNGSLDHIDSNGNSSP"
"GCSPQPHIHSIHVKEEPVIAEDEDCPMSLVTTANHSPELEDDREIEEEPLSEDLE"
),
},
{
"id": 'semg2',
"name": 'SEMG2',
"seq": (
"MKSIILFVLSLLLILEKQAAVMGQKGGSKGQLPSGSSQFPHGQKGQHYFGQKDQQHTKSK"
"GSFSIQHTYHVDINDHDWTRKSQQYDLNALHKATKSKQHLGGSQQLLNYKQEGRDHDKSK"
"GHFHMIVIHHKGGQAHHGTQNPSQDQGNSPSGKGLSSQCSNTEKRLWVHGLSKEQASASG"
"AQKGRTQGGSQSSYVLQTEELVVNKQQRETKNSHQNKGHYQNVVDVREEHSSKLQTSLHP"
"AHQDRLQHGPKDIFTTQDELLVYNKNQHQTKNLSQDQEHGRKAHKISYPSSRTEERQLHH"
"GEKSVQKDVSKGSISIQTEEKIHGKSQNQVTIHSQDQEHGHKENKISYQSSSTEERHLNC"
"GEKGIQKGVSKGSISIQTEEQIHGKSQNQVRIPSQAQEYGHKENKISYQSSSTEERRLNS"
"GEKDVQKGVSKGSISIQTEEKIHGKSQNQVTIPSQDQEHGHKENKMSYQSSSTEERRLNY"
"GGKSTQKDVSQSSISFQIEKLVEGKSQIQTPNPNQDQWSGQNAKGKSGQSADSKQDLLSH"
"EQKGRYKQESSESHNIVITEHEVAQDDHLTQQYNEDRNPIST"
),
},
{
"id": 'sgta',
"name": 'SGTA',
"seq": (
"MDNKKRLAYAIIQFLHDQLRHGGLSSDAQESLEVAIQCLETAFGVTVEDSDLALPQTLPE"
"IFEAAATGKEMPQDLRSPARTPPSEEDSAEAERLKTEGNEQMKVENFEAAVHFYGKAIEL"
"NPANAVYFCNRAAAYSKLGNYAGAVQDCERAICIDPAYSKAYGRMGLALSSLNKHVEAVA"
"YYKKALELDPDNETYKSNLKIAELKLREAPSPTGGVGSFDIAGLLNNPGFMSMASNLMNN"
"PQIQQLMSGMISGGNNPLGTPGTSPSQNDLASLIQAGQQFAQQMQQQNPELIEQLRSQIR"
"SRTPSASNDDQQE"
),
},
{
"id": 'ss18',
"name": 'SS18',
"seq": (
"MSVAFAAPRQRGKGEITPAAIQKMLDDNNHLIQCIMDSQNKGKTSECSQYQQMLHTNLVY"
"LATIADSNQNMQSLLPAPPTQNMPMGPGGMNQSGPPPPPRSHNMPSDGMVGGGPPAPHMQ"
"NQMNGQMPGPNHMPMQGPGPNQLNMTNSSMNMPSSSHGSMGGYNHSVPSSQSMPVQNQMT"
"MSQGQPMGNYGPRPNMSMQPNQGPMMHQQPPSQQYNMPQGGGQHYQGQQPPMGMMGQVNQ"
"GNHMMGQRQIPPYRPPQQGPPQQYSGQEDYYGDQYSHGGQGPPEGMNQQYYPDGHNDYGY"
"QQPSYPEQGYDRPYEDSSQHYYEGGNSQYGQQQDAYQGPPPQQGYPPQQQQYPGQQGYPG"
"QQQGYGPSQGGPGPQYPNYPQGQGQQYGGYRPTQPGPPQPPQQRPYGYDQGQYGNYQQ"
),
},
{
"id": 'ubqln4_mut10',
"name": 'UBQLN4-mut10',
"seq": (
"MAEPSGAETRPPIRVTVKTPKDKEEIVICDRASVKEFKEEISRRFKAQQDQLVLIFAGKI"
"LKDGDTLNQHGIKDGLTVHLVIKTPQKAQDPAAATASSPSTPDPASAPSTTPASPATPAQ"
"PSTSGSASSDAGSGSRRSSGGGPSPGAGEGSPSATASILSGFGGILGLGSLGLGSANFME"
"LQQQMQRQLMSNPEMLSQICENPLVQDMMSNPDLMRHCCMANPQYQQLCERNPEISHMLN"
"NPELMRQTMELARNPAMMQEMMRNQDRALSNCESIPGGYNALRRMYTDIQEPMFSAAREQ"
"FGNNPFSSLAGNSDSSSSQPLRTENREPLPNPWSPSPPTSQAPGSGGEGTGGSGTSQVHP"
"TVSNPFGINAASLGSGMCNSPEMQALLQQISENCQLMQNVISAPYMRSMMQTLAQNPDFA"
"AQMMVNVPLFAGNPQLQEQLRLQLPVFLQQCQNPESLSILTNPRAMQALLQIQQGLQTLQ"
"TEAPGLVPSLGSFGISRTPAPSAGSNAGSTPEAPTSSPATPATSSPTGASSAQQQLMQQM"
"IQLLAGSGNSQVQTPEVRFQQQLEQLNSCGFINREANLQALIATGGDINAAIERLLGSQL"
"S"
),
},
{
"id": 'ubqln4_mut20',
"name": 'UBQLN4-mut20',
"seq": (
"MAEPSGAETNPNIRVTVKTPKDKEEIVICDIASVKEFKEEISRRFKAQQDQLVLIFAGKD"
"LKDGDTLNQHGIKDGETYHLVIKTPQKAQDPAAATASSPSTPDPASAPSTTPASPATPAQ"
"PSTSGSASSDAGSGSRRSSGGGPSPGAGEGSPSATASILSGFGGILGLGSLGLGSANFME"
"LQQQMQRQLMSNPEMLSQICENPLVQDMMSNPDLMRHCCMANPQYQQLCERNPEISHMLN"
"NPELMRQTMELARNPAMMQEMMRNQDRALSNCESIPGGYNALRRMYTDIQEPMFSAAREQ"
"FGNNPDSSLAGNSDSSSSQPLRTENREPLPNPWSPSPPTSQAPGSGGEGTGGSGTSQVHP"
"TVSNPFGINAASLGSGMCNSPEMQALLQQISENCQLMQNVISAPKMRSMMQTLAQNPDFA"
"AQMMVNVPLFAGNPQLQEQLRLQLPVFLQQCQNPESLSIDTNPRAMQALLQIQQGLQTLQ"
"TEAPGLVPSLGSFGISRTPAPSAGSNAGSTPEAPTSSPATPATSSPTGASSAQQQLKQQM"
"IQLLAGSGNSQVQTPEVRFQQQLEQLNSCGFINREANLQALIATGGDINAAIERLLGSQL"
"S"
),
},
{
"id": 'ubqln4_mut30',
"name": 'UBQLN4-mut30',
"seq": (
"MAEPSGAETNPNIRVTVKTPKDKEEIVICDIASVKEFKEEISRRFKAQQDQLVLIFAGKD"
"DKDGDTDNQHGIKDGETYHLVIKTPQKAQDPAAATASSPSTPDPASAPSTTPASPATPAQ"
"PSTSGSASSDAGSGSRRSSGGGPSPGAGEGSPSATASILSGFGGILGLGSLGLGSANFME"
"LQQQMQRQLMSNPEMLSQPCENLLVQDMMSNPDLMRHCCMANPQYQQLCERNPEISHMLN"
"NPELMRQPMELARNPAMMQEMMRNQDRALSNCESIPGGYNADRRDYTDIQEPMFSAAREQ"
"FGNNPDSSLAGNSDSSSSQPLRTENREPLPNPWSPSPPTSQAPGSGGEGTGGSGTSQVHP"
"TVSNPFGINAASLGSGMCNSPEMQALLQQISENCQLMQNVISAPKMRSMMQTLAQNPDFA"
"AQMMVNVPLFAGNPQLQEQLRLQLPVFLQQCQNPESLSIDTNPRAMQALLQIQQGLQTLQ"
"TEAPGLVPSLGSFGISRTPAPSAGSNAGSTPEAPTSSPATPATSSPTGASSAQQQLKQQM"
"IQLLAGSGNSQVQTPEVRFQQQLEQLNSCGPINREANLQALPATGGDINADIERLLGSQL"
"S"
),
},
]
def feature_path(example_id: str) -> Path:
return ASSETS_DIR / f"{example_id}.h5"
def find_example_by_seq(seq: str):
"""Return the EXAMPLES entry whose sequence matches `seq`, or None."""
norm = seq.strip().upper()
for example in EXAMPLES:
if example["seq"].strip().upper() == norm:
return example
return None