diff --git a/scieval/dataset/Protein_GO/__init__.py b/scieval/dataset/Protein_GO/__init__.py new file mode 100644 index 0000000..de47a0c --- /dev/null +++ b/scieval/dataset/Protein_GO/__init__.py @@ -0,0 +1,10 @@ +""" +Protein GO (Gene Ontology) dataset for SciEvalKit. + +Supports go_bp, go_cc, go_mf - protein GO annotation prediction. +Data: LMUDataRoot()/go_bp.tsv, go_cc.tsv, go_mf.tsv +Mappings: Protein_GO/mappings/go_bp_mapping.txt, go_cc_mapping.txt, go_mf_mapping.txt +""" +from .protein_go import ProteinGODataset + +__all__ = ["ProteinGODataset"] diff --git a/scieval/dataset/Protein_GO/mappings/go_bp_mapping.txt b/scieval/dataset/Protein_GO/mappings/go_bp_mapping.txt new file mode 100644 index 0000000..0616b78 --- /dev/null +++ b/scieval/dataset/Protein_GO/mappings/go_bp_mapping.txt @@ -0,0 +1,1950 @@ +# GO Terms ID Mapping for BP +# Format: index -> GO_term_id +# Total terms: 1943 +# Branch: BP +# Note: 这是 GearNet 在该分支实际使用的 GO terms ID 映射 +# 包含该分支数据集中出现的所有 GO terms + +0 GO:0006228 +1 GO:0009135 +2 GO:0002699 +3 GO:0000463 +4 GO:0009179 +5 GO:0030183 +6 GO:0032496 +7 GO:0045935 +8 GO:0006304 +9 GO:0072528 +10 GO:2000116 +11 GO:0000413 +12 GO:0009966 +13 GO:0031099 +14 GO:2000027 +15 GO:0006575 +16 GO:0043491 +17 GO:0051726 +18 GO:1901615 +19 GO:0030593 +20 GO:0043242 +21 GO:0048513 +22 GO:0022898 +23 GO:0006979 +24 GO:0002833 +25 GO:0017148 +26 GO:1902105 +27 GO:0030336 +28 GO:0051236 +29 GO:0048017 +30 GO:0051674 +31 GO:0006816 +32 GO:0000162 +33 GO:0071702 +34 GO:0051173 +35 GO:0046907 +36 GO:0070585 +37 GO:0050778 +38 GO:0006163 +39 GO:0006450 +40 GO:0051321 +41 GO:0001819 +42 GO:0009235 +43 GO:0006650 +44 GO:0048522 +45 GO:0030001 +46 GO:0008033 +47 GO:0006355 +48 GO:0046940 +49 GO:0002694 +50 GO:0031326 +51 GO:0009142 +52 GO:0050829 +53 GO:0009211 +54 GO:0043112 +55 GO:0009893 +56 GO:0010951 +57 GO:0006508 +58 GO:0043299 +59 GO:0044282 +60 GO:0008360 +61 GO:0043933 +62 GO:0007229 +63 GO:0051271 +64 GO:0042119 +65 GO:0046718 +66 GO:0009162 +67 GO:0006520 +68 GO:0022411 +69 GO:0044703 +70 GO:0006956 +71 GO:0032386 +72 GO:0009435 +73 GO:0051704 +74 GO:0000045 +75 GO:0048514 +76 GO:0009914 +77 GO:0000469 +78 GO:0030042 +79 GO:0000075 +80 GO:0051054 +81 GO:0043462 +82 GO:0019318 +83 GO:0002685 +84 GO:0030435 +85 GO:2000147 +86 GO:0000305 +87 GO:0120035 +88 GO:0031497 +89 GO:0002683 +90 GO:0009200 +91 GO:0006406 +92 GO:0009653 +93 GO:0016241 +94 GO:0032412 +95 GO:0010608 +96 GO:0018298 +97 GO:0071709 +98 GO:0031669 +99 GO:0006206 +100 GO:0010639 +101 GO:0097435 +102 GO:0019748 +103 GO:0000165 +104 GO:0048589 +105 GO:0006401 +106 GO:0038094 +107 GO:0090501 +108 GO:0031323 +109 GO:0006970 +110 GO:0030198 +111 GO:0006260 +112 GO:0045834 +113 GO:0009719 +114 GO:0002793 +115 GO:0010647 +116 GO:0051252 +117 GO:0009617 +118 GO:0034250 +119 GO:0015947 +120 GO:0042981 +121 GO:0050731 +122 GO:0098813 +123 GO:0006801 +124 GO:0052200 +125 GO:0002703 +126 GO:0032465 +127 GO:0051603 +128 GO:0007601 +129 GO:0045892 +130 GO:0008213 +131 GO:0034471 +132 GO:0009267 +133 GO:0009314 +134 GO:0002521 +135 GO:1901571 +136 GO:0006399 +137 GO:1901654 +138 GO:0071396 +139 GO:0009116 +140 GO:0022008 +141 GO:1902806 +142 GO:0033993 +143 GO:0034284 +144 GO:0034340 +145 GO:0060070 +146 GO:0000904 +147 GO:0009185 +148 GO:0014074 +149 GO:0007584 +150 GO:0006099 +151 GO:0034329 +152 GO:0098754 +153 GO:0016925 +154 GO:0018393 +155 GO:0046394 +156 GO:0042493 +157 GO:0009100 +158 GO:0006522 +159 GO:0009968 +160 GO:0042455 +161 GO:0010817 +162 GO:0002573 +163 GO:0018904 +164 GO:0031163 +165 GO:0048869 +166 GO:0140053 +167 GO:0006553 +168 GO:0035335 +169 GO:0072594 +170 GO:0030155 +171 GO:0034220 +172 GO:0019363 +173 GO:1901879 +174 GO:0050804 +175 GO:0006165 +176 GO:0046395 +177 GO:0006091 +178 GO:0031175 +179 GO:0098609 +180 GO:0030100 +181 GO:0006081 +182 GO:0045493 +183 GO:0000462 +184 GO:0072527 +185 GO:0007249 +186 GO:0120036 +187 GO:0009157 +188 GO:0006935 +189 GO:0001816 +190 GO:1901700 +191 GO:0070661 +192 GO:0034660 +193 GO:0097659 +194 GO:0075136 +195 GO:0099003 +196 GO:0016064 +197 GO:0009231 +198 GO:0006576 +199 GO:0002831 +200 GO:0061640 +201 GO:1901214 +202 GO:0002764 +203 GO:0018209 +204 GO:0009141 +205 GO:1901070 +206 GO:0099537 +207 GO:0031109 +208 GO:0043408 +209 GO:0040013 +210 GO:0010035 +211 GO:0034401 +212 GO:1901698 +213 GO:0007569 +214 GO:0032984 +215 GO:0001932 +216 GO:0007423 +217 GO:0051304 +218 GO:0032270 +219 GO:0042727 +220 GO:0043467 +221 GO:0043605 +222 GO:0016192 +223 GO:0006612 +224 GO:1903530 +225 GO:0046451 +226 GO:0030900 +227 GO:0030243 +228 GO:0035999 +229 GO:0090502 +230 GO:0042724 +231 GO:0009063 +232 GO:0009725 +233 GO:0072001 +234 GO:1901137 +235 GO:0007015 +236 GO:0048878 +237 GO:0009072 +238 GO:0001510 +239 GO:0007051 +240 GO:0006753 +241 GO:0006464 +242 GO:0015698 +243 GO:0071705 +244 GO:1905330 +245 GO:0034605 +246 GO:0006415 +247 GO:0043085 +248 GO:0030833 +249 GO:0018193 +250 GO:1903046 +251 GO:0016071 +252 GO:0050657 +253 GO:0045927 +254 GO:0071806 +255 GO:0007266 +256 GO:0051291 +257 GO:0030203 +258 GO:0032259 +259 GO:0000270 +260 GO:0071322 +261 GO:0051640 +262 GO:0050953 +263 GO:0006749 +264 GO:0009173 +265 GO:0009891 +266 GO:0010498 +267 GO:0051249 +268 GO:0006812 +269 GO:0051208 +270 GO:0015979 +271 GO:0072331 +272 GO:0006974 +273 GO:0002097 +274 GO:0002449 +275 GO:0006547 +276 GO:0051928 +277 GO:0090529 +278 GO:0006164 +279 GO:1901019 +280 GO:0044042 +281 GO:0000398 +282 GO:0033002 +283 GO:0043549 +284 GO:0051100 +285 GO:0032886 +286 GO:0007219 +287 GO:0006094 +288 GO:0048518 +289 GO:0043312 +290 GO:0030168 +291 GO:0042435 +292 GO:0044728 +293 GO:0045786 +294 GO:0051262 +295 GO:0009062 +296 GO:0090132 +297 GO:0044264 +298 GO:0051092 +299 GO:0007586 +300 GO:0048870 +301 GO:0046434 +302 GO:0017144 +303 GO:0007611 +304 GO:0031330 +305 GO:0070887 +306 GO:0046165 +307 GO:1903409 +308 GO:1901068 +309 GO:0055086 +310 GO:0006354 +311 GO:0016137 +312 GO:0044068 +313 GO:0043648 +314 GO:0042537 +315 GO:0070372 +316 GO:0050769 +317 GO:0032271 +318 GO:0009888 +319 GO:0010558 +320 GO:0046034 +321 GO:0022604 +322 GO:0016070 +323 GO:0006473 +324 GO:0044242 +325 GO:0016042 +326 GO:0022406 +327 GO:1903578 +328 GO:0006730 +329 GO:0009130 +330 GO:0043101 +331 GO:0008610 +332 GO:0001934 +333 GO:0035194 +334 GO:0016998 +335 GO:1990845 +336 GO:0006760 +337 GO:0071310 +338 GO:0006754 +339 GO:0051648 +340 GO:0032261 +341 GO:0042026 +342 GO:0030072 +343 GO:0008154 +344 GO:0009582 +345 GO:0006793 +346 GO:0019222 +347 GO:0031400 +348 GO:0006183 +349 GO:0009225 +350 GO:0006635 +351 GO:0051223 +352 GO:0018022 +353 GO:0007420 +354 GO:0006779 +355 GO:1902533 +356 GO:0090150 +357 GO:1901652 +358 GO:0006470 +359 GO:0035821 +360 GO:0034440 +361 GO:0030041 +362 GO:0019835 +363 GO:0006412 +364 GO:0071347 +365 GO:1901653 +366 GO:0007596 +367 GO:0046677 +368 GO:0071621 +369 GO:0002366 +370 GO:0046417 +371 GO:0070588 +372 GO:0048812 +373 GO:0009607 +374 GO:0061008 +375 GO:2001057 +376 GO:0080134 +377 GO:0050790 +378 GO:0071692 +379 GO:0097190 +380 GO:0048584 +381 GO:0016072 +382 GO:0006826 +383 GO:0099177 +384 GO:0006790 +385 GO:0071267 +386 GO:0016052 +387 GO:0016477 +388 GO:0007610 +389 GO:0030036 +390 GO:0009117 +391 GO:0009199 +392 GO:0070374 +393 GO:0034968 +394 GO:0010921 +395 GO:0006310 +396 GO:0051047 +397 GO:0006084 +398 GO:0060047 +399 GO:0031929 +400 GO:0072657 +401 GO:0051282 +402 GO:0009765 +403 GO:0034614 +404 GO:0009408 +405 GO:0045936 +406 GO:0048666 +407 GO:0006383 +408 GO:0035239 +409 GO:0072521 +410 GO:0042180 +411 GO:0031638 +412 GO:0048729 +413 GO:0007283 +414 GO:0015986 +415 GO:0032101 +416 GO:0042451 +417 GO:0042445 +418 GO:0007155 +419 GO:0030162 +420 GO:1903320 +421 GO:0034976 +422 GO:0048638 +423 GO:0009228 +424 GO:0006767 +425 GO:1904892 +426 GO:0009201 +427 GO:0009061 +428 GO:0006614 +429 GO:0035384 +430 GO:2001234 +431 GO:0098869 +432 GO:0007010 +433 GO:0045944 +434 GO:0006323 +435 GO:0002237 +436 GO:0040029 +437 GO:0051156 +438 GO:0045666 +439 GO:0010564 +440 GO:0003015 +441 GO:0032414 +442 GO:0000086 +443 GO:0002790 +444 GO:0008277 +445 GO:0009166 +446 GO:0032309 +447 GO:0009156 +448 GO:0055065 +449 GO:0009605 +450 GO:0043279 +451 GO:0006665 +452 GO:0006909 +453 GO:0006166 +454 GO:0043254 +455 GO:0043102 +456 GO:0062012 +457 GO:0003018 +458 GO:0010563 +459 GO:0007165 +460 GO:0006885 +461 GO:0042357 +462 GO:0009311 +463 GO:0008299 +464 GO:0008037 +465 GO:0008217 +466 GO:0021700 +467 GO:1903532 +468 GO:0023014 +469 GO:1901663 +470 GO:0051046 +471 GO:0097529 +472 GO:0042254 +473 GO:0006873 +474 GO:0033559 +475 GO:0000288 +476 GO:0000281 +477 GO:0050801 +478 GO:2000145 +479 GO:1905114 +480 GO:0009792 +481 GO:0071331 +482 GO:0008202 +483 GO:0001889 +484 GO:0033865 +485 GO:0007626 +486 GO:0034308 +487 GO:0007507 +488 GO:1901293 +489 GO:0060548 +490 GO:0051129 +491 GO:1903037 +492 GO:0071450 +493 GO:0044273 +494 GO:0050777 +495 GO:0002700 +496 GO:0071495 +497 GO:0016571 +498 GO:0017038 +499 GO:0046683 +500 GO:0010721 +501 GO:0016126 +502 GO:0065009 +503 GO:0010466 +504 GO:0014070 +505 GO:0042127 +506 GO:2000113 +507 GO:0019362 +508 GO:0006090 +509 GO:0072359 +510 GO:0046486 +511 GO:0043650 +512 GO:0001523 +513 GO:0000466 +514 GO:0051961 +515 GO:0042440 +516 GO:0009086 +517 GO:0071482 +518 GO:0045087 +519 GO:0002682 +520 GO:0043434 +521 GO:0050768 +522 GO:0031668 +523 GO:0036293 +524 GO:0009890 +525 GO:0042221 +526 GO:0009790 +527 GO:0045931 +528 GO:1901701 +529 GO:0030595 +530 GO:0030154 +531 GO:0006413 +532 GO:0051222 +533 GO:0009581 +534 GO:0051179 +535 GO:0015671 +536 GO:0019395 +537 GO:1901264 +538 GO:0042255 +539 GO:0071407 +540 GO:0006869 +541 GO:0030073 +542 GO:0065008 +543 GO:0060255 +544 GO:0051283 +545 GO:0046051 +546 GO:0019438 +547 GO:0097549 +548 GO:0035304 +549 GO:0046939 +550 GO:0070126 +551 GO:0034248 +552 GO:0032502 +553 GO:0007160 +554 GO:0097306 +555 GO:0002478 +556 GO:0006772 +557 GO:0010876 +558 GO:0031401 +559 GO:0061025 +560 GO:0006283 +561 GO:0006397 +562 GO:0072329 +563 GO:0006486 +564 GO:0035023 +565 GO:0034219 +566 GO:0000375 +567 GO:0006261 +568 GO:0051301 +569 GO:0046700 +570 GO:0046349 +571 GO:0015031 +572 GO:0042402 +573 GO:0043069 +574 GO:0000209 +575 GO:0006558 +576 GO:0048858 +577 GO:0051099 +578 GO:0120161 +579 GO:0010629 +580 GO:0009064 +581 GO:0034285 +582 GO:0019684 +583 GO:0006595 +584 GO:0071840 +585 GO:0032147 +586 GO:0071248 +587 GO:0006605 +588 GO:0008544 +589 GO:0009749 +590 GO:0010212 +591 GO:0035383 +592 GO:0009253 +593 GO:0046031 +594 GO:0008654 +595 GO:0060322 +596 GO:0071805 +597 GO:0071428 +598 GO:0061061 +599 GO:0071466 +600 GO:0051480 +601 GO:0006914 +602 GO:0051272 +603 GO:0036260 +604 GO:0023052 +605 GO:0019884 +606 GO:0009396 +607 GO:0007005 +608 GO:0051347 +609 GO:0006370 +610 GO:0046578 +611 GO:0043086 +612 GO:0006720 +613 GO:0071356 +614 GO:0034767 +615 GO:0006071 +616 GO:0051146 +617 GO:0032102 +618 GO:0009263 +619 GO:0009167 +620 GO:0044036 +621 GO:0017157 +622 GO:0006633 +623 GO:0043412 +624 GO:0006886 +625 GO:0045010 +626 GO:1901606 +627 GO:0044839 +628 GO:0031331 +629 GO:0016358 +630 GO:0090066 +631 GO:0045637 +632 GO:0010638 +633 GO:0019877 +634 GO:0019682 +635 GO:0051384 +636 GO:0042274 +637 GO:0006396 +638 GO:0042129 +639 GO:0032409 +640 GO:0006144 +641 GO:0071333 +642 GO:0042063 +643 GO:0043010 +644 GO:0019216 +645 GO:0046390 +646 GO:0140352 +647 GO:0032269 +648 GO:0050727 +649 GO:0050658 +650 GO:1902275 +651 GO:0009251 +652 GO:0097305 +653 GO:0051270 +654 GO:0006783 +655 GO:0032989 +656 GO:1901678 +657 GO:0032940 +658 GO:0009611 +659 GO:0009791 +660 GO:0006568 +661 GO:2000112 +662 GO:0051101 +663 GO:0030307 +664 GO:0001655 +665 GO:0016050 +666 GO:2000146 +667 GO:0007267 +668 GO:0000003 +669 GO:0030004 +670 GO:0070589 +671 GO:2001020 +672 GO:0016114 +673 GO:0014706 +674 GO:0006259 +675 GO:0044766 +676 GO:0031348 +677 GO:0099504 +678 GO:0001525 +679 GO:0048667 +680 GO:0070482 +681 GO:0002262 +682 GO:0016197 +683 GO:0040017 +684 GO:0035303 +685 GO:0044659 +686 GO:0042726 +687 GO:0016579 +688 GO:0006405 +689 GO:0006875 +690 GO:0071363 +691 GO:0009103 +692 GO:0050792 +693 GO:0012501 +694 GO:0009124 +695 GO:0097588 +696 GO:0009247 +697 GO:0051275 +698 GO:0072525 +699 GO:0030097 +700 GO:0009892 +701 GO:0050729 +702 GO:0008283 +703 GO:0006418 +704 GO:0007186 +705 GO:0022618 +706 GO:0070727 +707 GO:0001944 +708 GO:0009310 +709 GO:0039694 +710 GO:0055080 +711 GO:0009221 +712 GO:0035195 +713 GO:1902680 +714 GO:0001959 +715 GO:0006353 +716 GO:0032200 +717 GO:0006611 +718 GO:0046500 +719 GO:0052548 +720 GO:1903522 +721 GO:0042822 +722 GO:0006662 +723 GO:0019400 +724 GO:0009097 +725 GO:0044038 +726 GO:0046653 +727 GO:0051239 +728 GO:0030490 +729 GO:1903047 +730 GO:0023061 +731 GO:0044106 +732 GO:0051091 +733 GO:0015772 +734 GO:0006119 +735 GO:0045597 +736 GO:0051048 +737 GO:2000241 +738 GO:1902905 +739 GO:0010410 +740 GO:0060828 +741 GO:0006367 +742 GO:0015937 +743 GO:0002697 +744 GO:0032787 +745 GO:0044403 +746 GO:0043066 +747 GO:0032355 +748 GO:0043270 +749 GO:0042326 +750 GO:0044272 +751 GO:0016441 +752 GO:0042775 +753 GO:0050690 +754 GO:0006596 +755 GO:0051189 +756 GO:0044764 +757 GO:0001907 +758 GO:0051336 +759 GO:0033037 +760 GO:0009612 +761 GO:0031346 +762 GO:0043094 +763 GO:0009423 +764 GO:0035296 +765 GO:0071554 +766 GO:0046385 +767 GO:0034654 +768 GO:0031399 +769 GO:1901880 +770 GO:0040011 +771 GO:0046039 +772 GO:0071426 +773 GO:0006563 +774 GO:0006811 +775 GO:0010243 +776 GO:0030522 +777 GO:0006887 +778 GO:0050730 +779 GO:0009628 +780 GO:0043207 +781 GO:0034470 +782 GO:0016101 +783 GO:0045937 +784 GO:0032508 +785 GO:0042327 +786 GO:0044248 +787 GO:0030163 +788 GO:0009401 +789 GO:0031329 +790 GO:0031345 +791 GO:0006534 +792 GO:1901617 +793 GO:0034504 +794 GO:1901987 +795 GO:0001906 +796 GO:0030334 +797 GO:0009119 +798 GO:0071166 +799 GO:0042325 +800 GO:1902749 +801 GO:0043523 +802 GO:0016458 +803 GO:0051651 +804 GO:0042401 +805 GO:0006664 +806 GO:0032501 +807 GO:0048699 +808 GO:0044085 +809 GO:1903506 +810 GO:2001257 +811 GO:0042430 +812 GO:1901269 +813 GO:0032388 +814 GO:0002791 +815 GO:0009177 +816 GO:0009132 +817 GO:2001141 +818 GO:0060401 +819 GO:0009144 +820 GO:0006188 +821 GO:0034622 +822 GO:0006771 +823 GO:2001233 +824 GO:0032272 +825 GO:0046112 +826 GO:0050870 +827 GO:0046184 +828 GO:0098655 +829 GO:0106106 +830 GO:0038095 +831 GO:0070125 +832 GO:0046490 +833 GO:0016075 +834 GO:0051254 +835 GO:0022414 +836 GO:0002696 +837 GO:0015980 +838 GO:0019941 +839 GO:0006813 +840 GO:0015672 +841 GO:0051224 +842 GO:1903311 +843 GO:0007623 +844 GO:0000184 +845 GO:0016125 +846 GO:1902221 +847 GO:0007033 +848 GO:1901661 +849 GO:0009127 +850 GO:0032543 +851 GO:0033365 +852 GO:0009967 +853 GO:0017001 +854 GO:0070302 +855 GO:0071214 +856 GO:0030653 +857 GO:0031334 +858 GO:1903008 +859 GO:0007049 +860 GO:0046777 +861 GO:0061013 +862 GO:0032504 +863 GO:0050852 +864 GO:0051234 +865 GO:0001817 +866 GO:0002768 +867 GO:0019076 +868 GO:0002283 +869 GO:0061024 +870 GO:1901342 +871 GO:0045321 +872 GO:0007276 +873 GO:0043393 +874 GO:0019320 +875 GO:0035150 +876 GO:0007600 +877 GO:0048468 +878 GO:0010975 +879 GO:0090276 +880 GO:0007162 +881 GO:0007268 +882 GO:0006915 +883 GO:0006952 +884 GO:0048002 +885 GO:0045471 +886 GO:0007548 +887 GO:0007034 +888 GO:0006040 +889 GO:0052547 +890 GO:0046794 +891 GO:0050920 +892 GO:0048646 +893 GO:0002684 +894 GO:0009236 +895 GO:0015850 +896 GO:0042178 +897 GO:0006950 +898 GO:0031098 +899 GO:0048232 +900 GO:0050673 +901 GO:0002443 +902 GO:0033157 +903 GO:0006541 +904 GO:0050867 +905 GO:0006265 +906 GO:0044770 +907 GO:0140014 +908 GO:0010557 +909 GO:1903829 +910 GO:0007346 +911 GO:0009615 +912 GO:0019722 +913 GO:0033674 +914 GO:0046854 +915 GO:0050866 +916 GO:0031589 +917 GO:0046474 +918 GO:0006566 +919 GO:0006555 +920 GO:0019430 +921 GO:0072529 +922 GO:0045926 +923 GO:1901215 +924 GO:0045184 +925 GO:0009070 +926 GO:0006096 +927 GO:0044003 +928 GO:0052803 +929 GO:0010605 +930 GO:0031145 +931 GO:0071715 +932 GO:0051094 +933 GO:0009073 +934 GO:0044283 +935 GO:0006820 +936 GO:0010038 +937 GO:0009085 +938 GO:0034341 +939 GO:0009308 +940 GO:0070206 +941 GO:0006366 +942 GO:0046365 +943 GO:0045055 +944 GO:0002444 +945 GO:0060627 +946 GO:0043122 +947 GO:0072659 +948 GO:0006207 +949 GO:0035890 +950 GO:0032784 +951 GO:0008380 +952 GO:0007178 +953 GO:1903508 +954 GO:0042593 +955 GO:0006221 +956 GO:0006796 +957 GO:0000122 +958 GO:0016567 +959 GO:0003012 +960 GO:0044262 +961 GO:0070507 +962 GO:0046942 +963 GO:0140013 +964 GO:0002822 +965 GO:0034599 +966 GO:0000097 +967 GO:0009306 +968 GO:0007059 +969 GO:0015774 +970 GO:0051924 +971 GO:0043624 +972 GO:0051983 +973 GO:0097485 +974 GO:0050878 +975 GO:0050877 +976 GO:0050848 +977 GO:0042278 +978 GO:0032392 +979 GO:0048534 +980 GO:0006637 +981 GO:0061136 +982 GO:0016485 +983 GO:0002009 +984 GO:0050793 +985 GO:0031960 +986 GO:0022407 +987 GO:0006805 +988 GO:0051128 +989 GO:0043666 +990 GO:0006911 +991 GO:0010941 +992 GO:0050796 +993 GO:0006606 +994 GO:0009712 +995 GO:0030335 +996 GO:0044344 +997 GO:0006814 +998 GO:0007156 +999 GO:0006954 +1000 GO:0098742 +1001 GO:1903050 +1002 GO:0015849 +1003 GO:0009730 +1004 GO:0090068 +1005 GO:0001539 +1006 GO:1902600 +1007 GO:0007018 +1008 GO:0009081 +1009 GO:0046835 +1010 GO:0006739 +1011 GO:0006066 +1012 GO:0048880 +1013 GO:0051962 +1014 GO:0043410 +1015 GO:0009309 +1016 GO:0043067 +1017 GO:0019062 +1018 GO:0005977 +1019 GO:0034765 +1020 GO:0007163 +1021 GO:0001667 +1022 GO:0006281 +1023 GO:0006360 +1024 GO:0034404 +1025 GO:0046903 +1026 GO:0032970 +1027 GO:0044257 +1028 GO:0060537 +1029 GO:0002455 +1030 GO:0009074 +1031 GO:0060284 +1032 GO:0150063 +1033 GO:1902679 +1034 GO:0045861 +1035 GO:0065003 +1036 GO:0098656 +1037 GO:0006757 +1038 GO:0050714 +1039 GO:0019751 +1040 GO:0044265 +1041 GO:0019054 +1042 GO:0010631 +1043 GO:0007399 +1044 GO:0016032 +1045 GO:0019220 +1046 GO:0005996 +1047 GO:0071453 +1048 GO:0090305 +1049 GO:0072503 +1050 GO:0034763 +1051 GO:0002920 +1052 GO:0006525 +1053 GO:0071346 +1054 GO:0001822 +1055 GO:0009129 +1056 GO:0065002 +1057 GO:0042398 +1058 GO:0043174 +1059 GO:0001894 +1060 GO:0003006 +1061 GO:0071326 +1062 GO:0019856 +1063 GO:0048511 +1064 GO:0060402 +1065 GO:0001678 +1066 GO:0071345 +1067 GO:0002440 +1068 GO:0071897 +1069 GO:0046822 +1070 GO:0010033 +1071 GO:0071478 +1072 GO:0042744 +1073 GO:0002376 +1074 GO:0006839 +1075 GO:1901605 +1076 GO:0009084 +1077 GO:0052126 +1078 GO:0032535 +1079 GO:2001235 +1080 GO:0006469 +1081 GO:0045814 +1082 GO:0044406 +1083 GO:0045893 +1084 GO:0045732 +1085 GO:0018394 +1086 GO:0031570 +1087 GO:0009410 +1088 GO:0007166 +1089 GO:0042823 +1090 GO:0060968 +1091 GO:1990748 +1092 GO:0019083 +1093 GO:0000819 +1094 GO:0071973 +1095 GO:0043604 +1096 GO:0016570 +1097 GO:0016236 +1098 GO:0006690 +1099 GO:1901607 +1100 GO:0072524 +1101 GO:0046164 +1102 GO:0097530 +1103 GO:0019080 +1104 GO:0060341 +1105 GO:0006959 +1106 GO:0010976 +1107 GO:0050865 +1108 GO:0045664 +1109 GO:1901292 +1110 GO:0006518 +1111 GO:0019724 +1112 GO:0006222 +1113 GO:0046348 +1114 GO:0007088 +1115 GO:0000096 +1116 GO:0055082 +1117 GO:0015768 +1118 GO:0006468 +1119 GO:0009583 +1120 GO:0033692 +1121 GO:0045491 +1122 GO:0000956 +1123 GO:0006936 +1124 GO:0010821 +1125 GO:0070997 +1126 GO:0009452 +1127 GO:0006549 +1128 GO:0071456 +1129 GO:0050832 +1130 GO:0051276 +1131 GO:0051588 +1132 GO:1902653 +1133 GO:0006357 +1134 GO:0034656 +1135 GO:0002431 +1136 GO:0039633 +1137 GO:0044347 +1138 GO:0006024 +1139 GO:0006898 +1140 GO:0007259 +1141 GO:0006220 +1142 GO:0097746 +1143 GO:0043903 +1144 GO:0009416 +1145 GO:0043632 +1146 GO:0051302 +1147 GO:0001654 +1148 GO:0090503 +1149 GO:0048608 +1150 GO:0009394 +1151 GO:0006778 +1152 GO:0032411 +1153 GO:0050767 +1154 GO:0006026 +1155 GO:0060759 +1156 GO:0031667 +1157 GO:0006140 +1158 GO:0009896 +1159 GO:0055067 +1160 GO:0001505 +1161 GO:0071496 +1162 GO:0009065 +1163 GO:0046686 +1164 GO:0043200 +1165 GO:0007265 +1166 GO:0032273 +1167 GO:0043244 +1168 GO:0001558 +1169 GO:0031640 +1170 GO:0051402 +1171 GO:0022412 +1172 GO:0048015 +1173 GO:0071451 +1174 GO:0042592 +1175 GO:0080135 +1176 GO:0042559 +1177 GO:0006457 +1178 GO:0006536 +1179 GO:0099536 +1180 GO:0006325 +1181 GO:0010257 +1182 GO:0010389 +1183 GO:0045859 +1184 GO:0070555 +1185 GO:0007017 +1186 GO:0002274 +1187 GO:0048193 +1188 GO:0030488 +1189 GO:0051259 +1190 GO:0043542 +1191 GO:0032870 +1192 GO:0007517 +1193 GO:0042542 +1194 GO:0051253 +1195 GO:0072358 +1196 GO:0042743 +1197 GO:0098771 +1198 GO:0022607 +1199 GO:0044057 +1200 GO:1901575 +1201 GO:0045595 +1202 GO:0044270 +1203 GO:0018958 +1204 GO:0009057 +1205 GO:0034754 +1206 GO:0030099 +1207 GO:0071774 +1208 GO:0080090 +1209 GO:0036230 +1210 GO:0044803 +1211 GO:0046364 +1212 GO:0098916 +1213 GO:0046916 +1214 GO:0051273 +1215 GO:0002429 +1216 GO:0017000 +1217 GO:2000142 +1218 GO:0040007 +1219 GO:0018108 +1220 GO:0009168 +1221 GO:0006400 +1222 GO:0043065 +1223 GO:0031503 +1224 GO:0006644 +1225 GO:0030098 +1226 GO:0009174 +1227 GO:0019344 +1228 GO:0044091 +1229 GO:0045930 +1230 GO:0019730 +1231 GO:0051260 +1232 GO:1900542 +1233 GO:0031047 +1234 GO:0006996 +1235 GO:0019064 +1236 GO:0006189 +1237 GO:0051641 +1238 GO:0038096 +1239 GO:0015074 +1240 GO:0008652 +1241 GO:0032981 +1242 GO:0043271 +1243 GO:0198738 +1244 GO:0009889 +1245 GO:1901071 +1246 GO:0070663 +1247 GO:0090407 +1248 GO:0042168 +1249 GO:0045229 +1250 GO:0044419 +1251 GO:0050871 +1252 GO:0000105 +1253 GO:0043487 +1254 GO:0015985 +1255 GO:0051346 +1256 GO:0043628 +1257 GO:0000070 +1258 GO:0051701 +1259 GO:0000245 +1260 GO:0033500 +1261 GO:0050921 +1262 GO:0045727 +1263 GO:0006910 +1264 GO:0048771 +1265 GO:0016049 +1266 GO:0019953 +1267 GO:0009991 +1268 GO:0071427 +1269 GO:0060048 +1270 GO:0008219 +1271 GO:0033044 +1272 GO:0097237 +1273 GO:0043009 +1274 GO:0007409 +1275 GO:0000902 +1276 GO:0050864 +1277 GO:0033209 +1278 GO:0006836 +1279 GO:0006586 +1280 GO:0030682 +1281 GO:0051348 +1282 GO:0010675 +1283 GO:0043039 +1284 GO:0009260 +1285 GO:0009205 +1286 GO:0000027 +1287 GO:0002446 +1288 GO:1903708 +1289 GO:0042391 +1290 GO:0048524 +1291 GO:0050863 +1292 GO:1901616 +1293 GO:0006338 +1294 GO:0006810 +1295 GO:1901570 +1296 GO:0055076 +1297 GO:0036211 +1298 GO:0051241 +1299 GO:0051251 +1300 GO:0051050 +1301 GO:0009265 +1302 GO:0015669 +1303 GO:1901657 +1304 GO:0009894 +1305 GO:0000041 +1306 GO:0030030 +1307 GO:1990778 +1308 GO:0009208 +1309 GO:0044179 +1310 GO:0010648 +1311 GO:0046425 +1312 GO:0008643 +1313 GO:0006368 +1314 GO:0061572 +1315 GO:0006270 +1316 GO:1902652 +1317 GO:0006937 +1318 GO:0006544 +1319 GO:0019752 +1320 GO:0046174 +1321 GO:0001666 +1322 GO:0051495 +1323 GO:1901361 +1324 GO:0002218 +1325 GO:1904064 +1326 GO:0043043 +1327 GO:0006694 +1328 GO:0048585 +1329 GO:0019058 +1330 GO:0000272 +1331 GO:0043570 +1332 GO:0030111 +1333 GO:0071222 +1334 GO:0046219 +1335 GO:0099024 +1336 GO:0051209 +1337 GO:0051172 +1338 GO:0046128 +1339 GO:0050670 +1340 GO:0051649 +1341 GO:0016999 +1342 GO:0050890 +1343 GO:0051169 +1344 GO:0030838 +1345 GO:0031328 +1346 GO:0019932 +1347 GO:0010720 +1348 GO:0046148 +1349 GO:0051017 +1350 GO:1901565 +1351 GO:0050851 +1352 GO:0034032 +1353 GO:0031333 +1354 GO:0046651 +1355 GO:0006073 +1356 GO:0006414 +1357 GO:0043068 +1358 GO:0006766 +1359 GO:0090316 +1360 GO:1903362 +1361 GO:0000725 +1362 GO:0010952 +1363 GO:0050776 +1364 GO:0019319 +1365 GO:0002263 +1366 GO:0045765 +1367 GO:0006351 +1368 GO:0051716 +1369 GO:0044843 +1370 GO:0001676 +1371 GO:0009266 +1372 GO:1905475 +1373 GO:0006913 +1374 GO:0098657 +1375 GO:0000303 +1376 GO:0015748 +1377 GO:0002520 +1378 GO:0048609 +1379 GO:0048872 +1380 GO:0045787 +1381 GO:0070201 +1382 GO:0006631 +1383 GO:0010562 +1384 GO:0044275 +1385 GO:0015766 +1386 GO:0009229 +1387 GO:0000377 +1388 GO:0051883 +1389 GO:0071216 +1390 GO:0002474 +1391 GO:0051248 +1392 GO:1903827 +1393 GO:0044255 +1394 GO:0019882 +1395 GO:0015711 +1396 GO:0002250 +1397 GO:0060429 +1398 GO:0019068 +1399 GO:0006446 +1400 GO:0010646 +1401 GO:0051604 +1402 GO:0009101 +1403 GO:0008015 +1404 GO:0015931 +1405 GO:0016573 +1406 GO:0006958 +1407 GO:0009593 +1408 GO:0050805 +1409 GO:0006098 +1410 GO:1901991 +1411 GO:0007204 +1412 GO:0002433 +1413 GO:0008284 +1414 GO:0006006 +1415 GO:0008218 +1416 GO:0050954 +1417 GO:0009451 +1418 GO:0019184 +1419 GO:0009620 +1420 GO:0050900 +1421 GO:0042692 +1422 GO:0031396 +1423 GO:0043281 +1424 GO:0006333 +1425 GO:0031324 +1426 GO:0051338 +1427 GO:0048583 +1428 GO:0045785 +1429 GO:0000271 +1430 GO:2000377 +1431 GO:0051817 +1432 GO:0000724 +1433 GO:0042364 +1434 GO:0007275 +1435 GO:0034637 +1436 GO:0009746 +1437 GO:0007568 +1438 GO:0030178 +1439 GO:0042181 +1440 GO:0048856 +1441 GO:0042330 +1442 GO:0010556 +1443 GO:1901658 +1444 GO:0000302 +1445 GO:0043062 +1446 GO:0046049 +1447 GO:0022613 +1448 GO:0044409 +1449 GO:0051205 +1450 GO:0071941 +1451 GO:0043488 +1452 GO:0043934 +1453 GO:0031167 +1454 GO:0038093 +1455 GO:0031647 +1456 GO:0002252 +1457 GO:0071695 +1458 GO:0009259 +1459 GO:0043545 +1460 GO:0009755 +1461 GO:0008285 +1462 GO:0032990 +1463 GO:0006955 +1464 GO:0007599 +1465 GO:0035592 +1466 GO:0051960 +1467 GO:0046209 +1468 GO:0035556 +1469 GO:0050821 +1470 GO:0002706 +1471 GO:0033866 +1472 GO:0000460 +1473 GO:0051707 +1474 GO:0032879 +1475 GO:0009262 +1476 GO:0006928 +1477 GO:0009089 +1478 GO:0015936 +1479 GO:0034764 +1480 GO:0010604 +1481 GO:0009148 +1482 GO:0002377 +1483 GO:0002757 +1484 GO:0071824 +1485 GO:0032774 +1486 GO:0009112 +1487 GO:0071616 +1488 GO:0061458 +1489 GO:0019359 +1490 GO:0038061 +1491 GO:0051783 +1492 GO:0045017 +1493 GO:0046879 +1494 GO:0032869 +1495 GO:0030258 +1496 GO:0070838 +1497 GO:0009126 +1498 GO:1903507 +1499 GO:0030217 +1500 GO:0072523 +1501 GO:0007605 +1502 GO:0009887 +1503 GO:0002224 +1504 GO:0031347 +1505 GO:0022904 +1506 GO:0019637 +1507 GO:1990266 +1508 GO:0006403 +1509 GO:0044706 +1510 GO:0009250 +1511 GO:0002275 +1512 GO:0120031 +1513 GO:1901568 +1514 GO:0005975 +1515 GO:0009240 +1516 GO:0010468 +1517 GO:0006629 +1518 GO:0008361 +1519 GO:0007411 +1520 GO:0042819 +1521 GO:0034249 +1522 GO:0009067 +1523 GO:0019439 +1524 GO:0045934 +1525 GO:0001503 +1526 GO:1903039 +1527 GO:0002688 +1528 GO:0009147 +1529 GO:0009165 +1530 GO:0044092 +1531 GO:0034762 +1532 GO:0051090 +1533 GO:0016569 +1534 GO:0033875 +1535 GO:0000226 +1536 GO:0051170 +1537 GO:1902903 +1538 GO:0055074 +1539 GO:1901988 +1540 GO:0033014 +1541 GO:0009056 +1542 GO:0051493 +1543 GO:0031327 +1544 GO:0098542 +1545 GO:0006941 +1546 GO:0044247 +1547 GO:0071555 +1548 GO:0035891 +1549 GO:0023056 +1550 GO:0048285 +1551 GO:0006526 +1552 GO:0009743 +1553 GO:0043446 +1554 GO:0060326 +1555 GO:0071383 +1556 GO:0034033 +1557 GO:0006109 +1558 GO:0071265 +1559 GO:0007264 +1560 GO:0008104 +1561 GO:0051051 +1562 GO:0048284 +1563 GO:0045333 +1564 GO:0031325 +1565 GO:0042723 +1566 GO:0030003 +1567 GO:0006275 +1568 GO:0050707 +1569 GO:0099643 +1570 GO:0006241 +1571 GO:0010256 +1572 GO:0046129 +1573 GO:0010324 +1574 GO:0043173 +1575 GO:0042113 +1576 GO:0007269 +1577 GO:0070897 +1578 GO:0007417 +1579 GO:0032103 +1580 GO:0048731 +1581 GO:0015977 +1582 GO:0051240 +1583 GO:0010001 +1584 GO:0044093 +1585 GO:0006417 +1586 GO:0046488 +1587 GO:0030031 +1588 GO:0072507 +1589 GO:0034661 +1590 GO:0006643 +1591 GO:0098660 +1592 GO:1901990 +1593 GO:0006591 +1594 GO:0050808 +1595 GO:0001775 +1596 GO:0043603 +1597 GO:0006545 +1598 GO:1904950 +1599 GO:0001701 +1600 GO:0006364 +1601 GO:0097191 +1602 GO:0009163 +1603 GO:0009202 +1604 GO:0071417 +1605 GO:0006284 +1606 GO:0044550 +1607 GO:0009220 +1608 GO:0009078 +1609 GO:0050678 +1610 GO:0051345 +1611 GO:0045862 +1612 GO:0018105 +1613 GO:0043547 +1614 GO:0009219 +1615 GO:0061564 +1616 GO:0032944 +1617 GO:0006475 +1618 GO:0065004 +1619 GO:0045088 +1620 GO:0032268 +1621 GO:0001101 +1622 GO:0031344 +1623 GO:0046496 +1624 GO:0050708 +1625 GO:0046040 +1626 GO:0006022 +1627 GO:0023051 +1628 GO:0034613 +1629 GO:0008203 +1630 GO:0051098 +1631 GO:0048871 +1632 GO:0060249 +1633 GO:2001251 +1634 GO:0062197 +1635 GO:0033043 +1636 GO:0048863 +1637 GO:0033036 +1638 GO:1903706 +1639 GO:0042176 +1640 GO:0045292 +1641 GO:0043543 +1642 GO:0010906 +1643 GO:0022610 +1644 GO:0045047 +1645 GO:0051028 +1646 GO:0031124 +1647 GO:1901659 +1648 GO:0051289 +1649 GO:0051247 +1650 GO:2000045 +1651 GO:0019725 +1652 GO:0070848 +1653 GO:0001933 +1654 GO:0052173 +1655 GO:0016311 +1656 GO:0072655 +1657 GO:0051650 +1658 GO:0023057 +1659 GO:0002687 +1660 GO:0045860 +1661 GO:0022409 +1662 GO:0042060 +1663 GO:0006302 +1664 GO:0061077 +1665 GO:0034286 +1666 GO:0016051 +1667 GO:0015833 +1668 GO:0016043 +1669 GO:0051261 +1670 GO:0009110 +1671 GO:1901136 +1672 GO:0016055 +1673 GO:0015909 +1674 GO:2000026 +1675 GO:0055085 +1676 GO:0043433 +1677 GO:0009209 +1678 GO:1901135 +1679 GO:0010499 +1680 GO:0036294 +1681 GO:0046834 +1682 GO:1904062 +1683 GO:0071375 +1684 GO:0035295 +1685 GO:0009123 +1686 GO:0042816 +1687 GO:0019693 +1688 GO:0007159 +1689 GO:0046883 +1690 GO:0032446 +1691 GO:0006167 +1692 GO:0050482 +1693 GO:0008653 +1694 GO:0000028 +1695 GO:0042157 +1696 GO:0044205 +1697 GO:1902850 +1698 GO:0000966 +1699 GO:0051130 +1700 GO:0033673 +1701 GO:0002253 +1702 GO:0051174 +1703 GO:0043087 +1704 GO:0051235 +1705 GO:0042558 +1706 GO:0006342 +1707 GO:0016053 +1708 GO:0046928 +1709 GO:0009069 +1710 GO:0072522 +1711 GO:0050663 +1712 GO:0007093 +1713 GO:0051171 +1714 GO:0042098 +1715 GO:0098781 +1716 GO:0043269 +1717 GO:0030182 +1718 GO:0098662 +1719 GO:0031032 +1720 GO:0006879 +1721 GO:0006888 +1722 GO:0031123 +1723 GO:0043406 +1724 GO:0007050 +1725 GO:0043405 +1726 GO:0000470 +1727 GO:0034289 +1728 GO:0009226 +1729 GO:0072593 +1730 GO:0015718 +1731 GO:0009405 +1732 GO:0006082 +1733 GO:0010769 +1734 GO:0051258 +1735 GO:0009161 +1736 GO:0006027 +1737 GO:0045596 +1738 GO:0051056 +1739 GO:1903509 +1740 GO:0072511 +1741 GO:1903034 +1742 GO:0002819 +1743 GO:0090087 +1744 GO:0072330 +1745 GO:0032880 +1746 GO:1905037 +1747 GO:0046036 +1748 GO:0015908 +1749 GO:0070301 +1750 GO:0043038 +1751 GO:0120039 +1752 GO:0031341 +1753 GO:0003008 +1754 GO:0051403 +1755 GO:0070085 +1756 GO:0097553 +1757 GO:0033108 +1758 GO:0030837 +1759 GO:0071241 +1760 GO:0006511 +1761 GO:0090130 +1762 GO:0042956 +1763 GO:0005984 +1764 GO:0051093 +1765 GO:0019321 +1766 GO:0051715 +1767 GO:0051606 +1768 GO:0032868 +1769 GO:0030449 +1770 GO:0009152 +1771 GO:0046649 +1772 GO:0042110 +1773 GO:1903531 +1774 GO:0048523 +1775 GO:0019219 +1776 GO:0030029 +1777 GO:0042546 +1778 GO:0019048 +1779 GO:0072338 +1780 GO:0000278 +1781 GO:1902532 +1782 GO:0006897 +1783 GO:0045454 +1784 GO:0009218 +1785 GO:0000280 +1786 GO:0009066 +1787 GO:0046173 +1788 GO:0032872 +1789 GO:0097193 +1790 GO:0072599 +1791 GO:0050853 +1792 GO:0009145 +1793 GO:0006352 +1794 GO:0040012 +1795 GO:0007281 +1796 GO:0034330 +1797 GO:0009150 +1798 GO:0003013 +1799 GO:0010383 +1800 GO:0006120 +1801 GO:0070371 +1802 GO:0071219 +1803 GO:0071902 +1804 GO:0009312 +1805 GO:0072340 +1806 GO:0006023 +1807 GO:0044089 +1808 GO:0046890 +1809 GO:0032956 +1810 GO:0000082 +1811 GO:0110053 +1812 GO:0022603 +1813 GO:0061919 +1814 GO:1902904 +1815 GO:0055072 +1816 GO:0070925 +1817 GO:0045089 +1818 GO:1902531 +1819 GO:0031349 +1820 GO:1901699 +1821 GO:0007167 +1822 GO:0019221 +1823 GO:0044087 +1824 GO:0048732 +1825 GO:0034097 +1826 GO:0048545 +1827 GO:0044800 +1828 GO:0001568 +1829 GO:0034728 +1830 GO:0042742 +1831 GO:0002181 +1832 GO:0009082 +1833 GO:0006551 +1834 GO:0007154 +1835 GO:0030655 +1836 GO:0044650 +1837 GO:0000160 +1838 GO:0001659 +1839 GO:0034655 +1840 GO:0010632 +1841 GO:0051246 +1842 GO:0050817 +1843 GO:0010506 +1844 GO:0048519 +1845 GO:0016054 +1846 GO:0019692 +1847 GO:0022402 +1848 GO:0032943 +1849 GO:1902579 +1850 GO:0051052 +1851 GO:0051656 +1852 GO:0033554 +1853 GO:0043413 +1854 GO:0042886 +1855 GO:0009060 +1856 GO:0006874 +1857 GO:0000387 +1858 GO:0005976 +1859 GO:0010628 +1860 GO:0009206 +1861 GO:0043687 +1862 GO:0001818 +1863 GO:0048598 +1864 GO:0034612 +1865 GO:0071900 +1866 GO:0046654 +1867 GO:0040008 +1868 GO:0051592 +1869 GO:1901796 +1870 GO:0002460 +1871 GO:0043436 +1872 GO:0016310 +1873 GO:0006289 +1874 GO:0070647 +1875 GO:0050830 +1876 GO:0006479 +1877 GO:0032506 +1878 GO:0009273 +1879 GO:0097696 +1880 GO:0019079 +1881 GO:0030855 +1882 GO:0001501 +1883 GO:0051494 +1884 GO:0010948 +1885 GO:0002221 +1886 GO:0008016 +1887 GO:0034288 +1888 GO:0042273 +1889 GO:0030245 +1890 GO:0044772 +1891 GO:0046467 +1892 GO:0070646 +1893 GO:0043414 +1894 GO:0051168 +1895 GO:0006865 +1896 GO:0022900 +1897 GO:0009636 +1898 GO:0006613 +1899 GO:0042594 +1900 GO:0006740 +1901 GO:0051049 +1902 GO:0104004 +1903 GO:0015749 +1904 GO:0010565 +1905 GO:0000154 +1906 GO:0000723 +1907 GO:0006721 +1908 GO:0033013 +1909 GO:0090257 +1910 GO:0018208 +1911 GO:1903169 +1912 GO:0034030 +1913 GO:0046033 +1914 GO:1903963 +1915 GO:0018205 +1916 GO:0009252 +1917 GO:0006402 +1918 GO:2001242 +1919 GO:0010959 +1920 GO:0043161 +1921 GO:0009176 +1922 GO:0009164 +1923 GO:0018212 +1924 GO:0007169 +1925 GO:0009411 +1926 GO:0009895 +1927 GO:0000910 +1928 GO:0061982 +1929 GO:0039663 +1930 GO:0010942 +1931 GO:0006112 +1932 GO:0008637 +1933 GO:0030832 +1934 GO:0051607 +1935 GO:1904951 +1936 GO:0071103 +1937 GO:0071826 +1938 GO:0070972 +1939 GO:0062013 +1940 GO:0008064 +1941 GO:0016226 +1942 GO:0042773 diff --git a/scieval/dataset/Protein_GO/mappings/go_cc_mapping.txt b/scieval/dataset/Protein_GO/mappings/go_cc_mapping.txt new file mode 100644 index 0000000..0db91b8 --- /dev/null +++ b/scieval/dataset/Protein_GO/mappings/go_cc_mapping.txt @@ -0,0 +1,327 @@ +# GO Terms ID Mapping for CC +# Format: index -> GO_term_id +# Total terms: 320 +# Branch: CC +# Note: 这是 GearNet 在该分支实际使用的 GO terms ID 映射 +# 包含该分支数据集中出现的所有 GO terms + +0 GO:0031974 +1 GO:0005925 +2 GO:0005769 +3 GO:1990351 +4 GO:0016607 +5 GO:0005761 +6 GO:0098857 +7 GO:0031253 +8 GO:0030133 +9 GO:0000775 +10 GO:0020002 +11 GO:0030027 +12 GO:0030659 +13 GO:0031981 +14 GO:0005694 +15 GO:0005763 +16 GO:0098562 +17 GO:0022625 +18 GO:0032040 +19 GO:0046930 +20 GO:0005773 +21 GO:0008021 +22 GO:0099081 +23 GO:1902495 +24 GO:0046540 +25 GO:0042581 +26 GO:0031226 +27 GO:0035770 +28 GO:0009522 +29 GO:0030076 +30 GO:0043235 +31 GO:1902911 +32 GO:0098805 +33 GO:0005777 +34 GO:0009535 +35 GO:0070069 +36 GO:0005730 +37 GO:0030662 +38 GO:0034708 +39 GO:0042175 +40 GO:0030016 +41 GO:0005768 +42 GO:0031984 +43 GO:0012505 +44 GO:0031012 +45 GO:0036477 +46 GO:0030141 +47 GO:0097060 +48 GO:0009536 +49 GO:1902554 +50 GO:0033647 +51 GO:0031461 +52 GO:0016604 +53 GO:0005839 +54 GO:0101002 +55 GO:0030139 +56 GO:0071944 +57 GO:0099568 +58 GO:0030880 +59 GO:0016469 +60 GO:0022626 +61 GO:0005838 +62 GO:0000315 +63 GO:0016592 +64 GO:0030017 +65 GO:0015934 +66 GO:0005684 +67 GO:0009521 +68 GO:0031968 +69 GO:0019013 +70 GO:0042995 +71 GO:0005770 +72 GO:0019028 +73 GO:0070013 +74 GO:0033648 +75 GO:0098794 +76 GO:0005764 +77 GO:0044391 +78 GO:0098590 +79 GO:0000785 +80 GO:0055035 +81 GO:0005576 +82 GO:0099513 +83 GO:0048471 +84 GO:0030658 +85 GO:1902494 +86 GO:0005643 +87 GO:0035097 +88 GO:0015629 +89 GO:0098803 +90 GO:0005774 +91 GO:0044423 +92 GO:0005654 +93 GO:0099512 +94 GO:0043228 +95 GO:0030089 +96 GO:0030425 +97 GO:0009279 +98 GO:0032153 +99 GO:0009898 +100 GO:0000790 +101 GO:0055036 +102 GO:0098800 +103 GO:0005840 +104 GO:0009579 +105 GO:0005635 +106 GO:0097525 +107 GO:0030964 +108 GO:0009295 +109 GO:0070469 +110 GO:0098984 +111 GO:0009288 +112 GO:0009986 +113 GO:0033644 +114 GO:1905368 +115 GO:0019030 +116 GO:0005833 +117 GO:1990904 +118 GO:0034357 +119 GO:0005657 +120 GO:0005739 +121 GO:0019031 +122 GO:0000502 +123 GO:0005829 +124 GO:0005759 +125 GO:0000151 +126 GO:0030288 +127 GO:0061695 +128 GO:0097447 +129 GO:0043656 +130 GO:1902493 +131 GO:0099080 +132 GO:0030135 +133 GO:0120025 +134 GO:0098793 +135 GO:0043025 +136 GO:0010008 +137 GO:0045335 +138 GO:0019897 +139 GO:0005813 +140 GO:0000228 +141 GO:0098858 +142 GO:0030684 +143 GO:0000123 +144 GO:0098687 +145 GO:0000776 +146 GO:1903561 +147 GO:0012506 +148 GO:0070161 +149 GO:0070382 +150 GO:0031975 +151 GO:0098978 +152 GO:0022624 +153 GO:0000781 +154 GO:0000323 +155 GO:0098589 +156 GO:0030532 +157 GO:0005856 +158 GO:1905369 +159 GO:0000313 +160 GO:0005887 +161 GO:0000322 +162 GO:1904949 +163 GO:0045121 +164 GO:0070603 +165 GO:0031982 +166 GO:0015935 +167 GO:1904813 +168 GO:0030687 +169 GO:0071005 +170 GO:0043657 +171 GO:0009897 +172 GO:0042025 +173 GO:0005746 +174 GO:0031224 +175 GO:0005789 +176 GO:0043230 +177 GO:0031983 +178 GO:0098802 +179 GO:0031965 +180 GO:0005783 +181 GO:0032993 +182 GO:0090575 +183 GO:0015630 +184 GO:0005798 +185 GO:0030117 +186 GO:0005875 +187 GO:0005747 +188 GO:0034703 +189 GO:0042651 +190 GO:0099503 +191 GO:0030667 +192 GO:0005681 +193 GO:0019898 +194 GO:0005794 +195 GO:0005615 +196 GO:0019814 +197 GO:0072562 +198 GO:0045177 +199 GO:0045261 +200 GO:0043292 +201 GO:0000428 +202 GO:0000794 +203 GO:1905348 +204 GO:0000314 +205 GO:0005938 +206 GO:0042611 +207 GO:0022627 +208 GO:0097708 +209 GO:0005634 +210 GO:0005929 +211 GO:0005758 +212 GO:0009523 +213 GO:0005911 +214 GO:0098791 +215 GO:0043232 +216 GO:0005791 +217 GO:0032279 +218 GO:0060205 +219 GO:0016324 +220 GO:0000932 +221 GO:0030660 +222 GO:0031248 +223 GO:0042579 +224 GO:0000793 +225 GO:0055052 +226 GO:0048500 +227 GO:0005788 +228 GO:0009534 +229 GO:0031976 +230 GO:0034705 +231 GO:0000786 +232 GO:0033643 +233 GO:0098852 +234 GO:0098552 +235 GO:0098533 +236 GO:0031300 +237 GO:0031966 +238 GO:0005815 +239 GO:0033646 +240 GO:0097014 +241 GO:0016021 +242 GO:0005667 +243 GO:0030424 +244 GO:0005765 +245 GO:0005775 +246 GO:0019866 +247 GO:0030055 +248 GO:1990391 +249 GO:0005874 +250 GO:0043005 +251 GO:0000779 +252 GO:0042571 +253 GO:0034774 +254 GO:0036464 +255 GO:0030427 +256 GO:0005618 +257 GO:0030054 +258 GO:0034702 +259 GO:0036338 +260 GO:0071013 +261 GO:0098798 +262 GO:0150034 +263 GO:0030313 +264 GO:0031090 +265 GO:1902555 +266 GO:0098588 +267 GO:0005886 +268 GO:0044297 +269 GO:0009538 +270 GO:0042597 +271 GO:0031970 +272 GO:0005740 +273 GO:0019012 +274 GO:0031252 +275 GO:0048475 +276 GO:0005732 +277 GO:0019867 +278 GO:0097526 +279 GO:0070062 +280 GO:0005766 +281 GO:1990234 +282 GO:0033177 +283 GO:0045263 +284 GO:0032838 +285 GO:0005819 +286 GO:0031967 +287 GO:0016591 +288 GO:0055029 +289 GO:0098797 +290 GO:0098796 +291 GO:0005741 +292 GO:0014069 +293 GO:0030430 +294 GO:0018995 +295 GO:0033178 +296 GO:0000777 +297 GO:0045271 +298 GO:0043233 +299 GO:0031410 +300 GO:0062023 +301 GO:0016459 +302 GO:0031301 +303 GO:0099572 +304 GO:0071011 +305 GO:0030686 +306 GO:1990204 +307 GO:0043190 +308 GO:0042582 +309 GO:0045202 +310 GO:0005743 +311 GO:0044815 +312 GO:0120114 +313 GO:0005665 +314 GO:0000139 +315 GO:0045259 +316 GO:0009507 +317 GO:0030312 +318 GO:0009289 +319 GO:0005762 diff --git a/scieval/dataset/Protein_GO/mappings/go_mf_mapping.txt b/scieval/dataset/Protein_GO/mappings/go_mf_mapping.txt new file mode 100644 index 0000000..2549235 --- /dev/null +++ b/scieval/dataset/Protein_GO/mappings/go_mf_mapping.txt @@ -0,0 +1,496 @@ +# GO Terms ID Mapping for MF +# Format: index -> GO_term_id +# Total terms: 489 +# Branch: MF +# Note: 这是 GearNet 在该分支实际使用的 GO terms ID 映射 +# 包含该分支数据集中出现的所有 GO terms + +0 GO:0016681 +1 GO:0005126 +2 GO:0008134 +3 GO:0016168 +4 GO:0045182 +5 GO:0004532 +6 GO:0003918 +7 GO:0003755 +8 GO:0004540 +9 GO:0032559 +10 GO:0008144 +11 GO:0019843 +12 GO:0008320 +13 GO:0016884 +14 GO:0016893 +15 GO:0016151 +16 GO:0043178 +17 GO:0004364 +18 GO:0004180 +19 GO:0003823 +20 GO:0008422 +21 GO:1901982 +22 GO:0022857 +23 GO:0019825 +24 GO:0030234 +25 GO:0003714 +26 GO:0051920 +27 GO:0008658 +28 GO:0016655 +29 GO:0034061 +30 GO:0016614 +31 GO:0042054 +32 GO:0008289 +33 GO:0002020 +34 GO:0042379 +35 GO:0070011 +36 GO:0008236 +37 GO:0016861 +38 GO:0003700 +39 GO:0016651 +40 GO:0016743 +41 GO:0004520 +42 GO:0016301 +43 GO:0015144 +44 GO:0030597 +45 GO:0004713 +46 GO:0016769 +47 GO:0017171 +48 GO:0015078 +49 GO:0016709 +50 GO:0050897 +51 GO:0008483 +52 GO:0052689 +53 GO:0019904 +54 GO:0016638 +55 GO:0004812 +56 GO:0005230 +57 GO:0016829 +58 GO:0016894 +59 GO:0019239 +60 GO:0022829 +61 GO:1901681 +62 GO:0098772 +63 GO:0008009 +64 GO:0070063 +65 GO:0070003 +66 GO:0015079 +67 GO:0048029 +68 GO:0008080 +69 GO:0046812 +70 GO:0016774 +71 GO:0008242 +72 GO:0008170 +73 GO:0008017 +74 GO:0016746 +75 GO:0016857 +76 GO:0008135 +77 GO:0004185 +78 GO:0004536 +79 GO:0008235 +80 GO:0101005 +81 GO:0016825 +82 GO:0030674 +83 GO:0004177 +84 GO:0004722 +85 GO:0043177 +86 GO:0019200 +87 GO:0005319 +88 GO:0017076 +89 GO:0016775 +90 GO:0019842 +91 GO:0004298 +92 GO:0072341 +93 GO:0015925 +94 GO:0016813 +95 GO:0051539 +96 GO:0005249 +97 GO:0048030 +98 GO:0005524 +99 GO:0008810 +100 GO:0016855 +101 GO:0008081 +102 GO:0060090 +103 GO:0019840 +104 GO:0051015 +105 GO:0008198 +106 GO:0046912 +107 GO:0009055 +108 GO:0090079 +109 GO:0008121 +110 GO:0004312 +111 GO:0017069 +112 GO:0140318 +113 GO:0004784 +114 GO:0035639 +115 GO:0016765 +116 GO:0016679 +117 GO:0008238 +118 GO:0015103 +119 GO:0004869 +120 GO:0051087 +121 GO:0004553 +122 GO:0038023 +123 GO:0005344 +124 GO:0140097 +125 GO:0018024 +126 GO:0016721 +127 GO:0008234 +128 GO:0031406 +129 GO:0004112 +130 GO:0016798 +131 GO:0016730 +132 GO:0042887 +133 GO:0019887 +134 GO:0004197 +135 GO:0005509 +136 GO:0050660 +137 GO:0016462 +138 GO:0004550 +139 GO:0031625 +140 GO:0034062 +141 GO:0061629 +142 GO:0019001 +143 GO:0016702 +144 GO:0042393 +145 GO:0030247 +146 GO:0008138 +147 GO:0004402 +148 GO:0032550 +149 GO:0015002 +150 GO:0070180 +151 GO:0043022 +152 GO:0003690 +153 GO:0004386 +154 GO:0031267 +155 GO:0019901 +156 GO:0016817 +157 GO:0003707 +158 GO:0008047 +159 GO:0004518 +160 GO:0008168 +161 GO:0005085 +162 GO:0102567 +163 GO:0004857 +164 GO:0005504 +165 GO:0097599 +166 GO:0016877 +167 GO:0015926 +168 GO:0140104 +169 GO:0001664 +170 GO:0042803 +171 GO:0015631 +172 GO:0060089 +173 GO:0004623 +174 GO:0000981 +175 GO:0019787 +176 GO:0032561 +177 GO:0046789 +178 GO:0016903 +179 GO:0042562 +180 GO:0070851 +181 GO:0099094 +182 GO:0008276 +183 GO:0016410 +184 GO:0047661 +185 GO:0140110 +186 GO:0005096 +187 GO:0051082 +188 GO:0016667 +189 GO:0003697 +190 GO:0008061 +191 GO:0030246 +192 GO:0008233 +193 GO:0044325 +194 GO:0031369 +195 GO:0016879 +196 GO:0034212 +197 GO:0004888 +198 GO:0019208 +199 GO:0046914 +200 GO:0008408 +201 GO:0061783 +202 GO:0016868 +203 GO:0019205 +204 GO:0004089 +205 GO:0016747 +206 GO:0016742 +207 GO:0004519 +208 GO:0003712 +209 GO:0005216 +210 GO:0016891 +211 GO:0003887 +212 GO:0016881 +213 GO:0005262 +214 GO:0005198 +215 GO:0003678 +216 GO:0019900 +217 GO:0022804 +218 GO:0016849 +219 GO:0045296 +220 GO:0016846 +221 GO:0017080 +222 GO:0005525 +223 GO:0015252 +224 GO:0005125 +225 GO:0016833 +226 GO:0016676 +227 GO:0005539 +228 GO:0016705 +229 GO:0050839 +230 GO:0016209 +231 GO:0022803 +232 GO:0019871 +233 GO:0008757 +234 GO:0003924 +235 GO:1990837 +236 GO:0016838 +237 GO:0005267 +238 GO:0004601 +239 GO:0061733 +240 GO:0016776 +241 GO:0004896 +242 GO:0019899 +243 GO:0004252 +244 GO:0016818 +245 GO:0036459 +246 GO:0004549 +247 GO:0042578 +248 GO:0016782 +249 GO:0008092 +250 GO:0016853 +251 GO:0032182 +252 GO:0016830 +253 GO:0097367 +254 GO:0017016 +255 GO:0022853 +256 GO:0003725 +257 GO:0003677 +258 GO:0030546 +259 GO:0030695 +260 GO:0003684 +261 GO:0003954 +262 GO:0016773 +263 GO:0044389 +264 GO:0046906 +265 GO:0004308 +266 GO:0005506 +267 GO:0003779 +268 GO:0031072 +269 GO:0016675 +270 GO:0000049 +271 GO:0051427 +272 GO:0003968 +273 GO:0003777 +274 GO:0016811 +275 GO:0019902 +276 GO:0016741 +277 GO:0140102 +278 GO:0016645 +279 GO:0140375 +280 GO:0019783 +281 GO:0030594 +282 GO:0004672 +283 GO:0071949 +284 GO:0061659 +285 GO:0004725 +286 GO:0004129 +287 GO:0016836 +288 GO:0046933 +289 GO:0019888 +290 GO:0061135 +291 GO:0008083 +292 GO:0099106 +293 GO:0051540 +294 GO:0016772 +295 GO:0004867 +296 GO:0008194 +297 GO:0051537 +298 GO:0003727 +299 GO:0030598 +300 GO:0043565 +301 GO:0015267 +302 GO:0016646 +303 GO:0016799 +304 GO:0016278 +305 GO:0042626 +306 GO:0016783 +307 GO:0140101 +308 GO:0016814 +309 GO:0008800 +310 GO:0051213 +311 GO:0004033 +312 GO:0016701 +313 GO:0016840 +314 GO:0001883 +315 GO:0015035 +316 GO:0004222 +317 GO:0042625 +318 GO:0070279 +319 GO:0003682 +320 GO:0004659 +321 GO:0016725 +322 GO:0016875 +323 GO:0005543 +324 GO:0016597 +325 GO:0008324 +326 GO:0022834 +327 GO:0001067 +328 GO:0004807 +329 GO:0022832 +330 GO:0022835 +331 GO:0005179 +332 GO:0050145 +333 GO:0005507 +334 GO:0016279 +335 GO:0061630 +336 GO:0016859 +337 GO:0032555 +338 GO:0015318 +339 GO:0030554 +340 GO:0070008 +341 GO:0004497 +342 GO:0016758 +343 GO:0016812 +344 GO:0060589 +345 GO:0016810 +346 GO:0030414 +347 GO:0016668 +348 GO:0016661 +349 GO:0050136 +350 GO:0008237 +351 GO:0017048 +352 GO:0015276 +353 GO:0016788 +354 GO:0015288 +355 GO:0016835 +356 GO:0090729 +357 GO:0016684 +358 GO:0019865 +359 GO:0032549 +360 GO:0004674 +361 GO:0102568 +362 GO:0016722 +363 GO:0016248 +364 GO:0003743 +365 GO:0008200 +366 GO:0004714 +367 GO:0019104 +368 GO:0008201 +369 GO:0070001 +370 GO:0051536 +371 GO:0000977 +372 GO:0140297 +373 GO:0019213 +374 GO:0022836 +375 GO:0010181 +376 GO:0003713 +377 GO:0042802 +378 GO:0016874 +379 GO:0019199 +380 GO:0019829 +381 GO:0070566 +382 GO:0046983 +383 GO:0046982 +384 GO:0008270 +385 GO:0051287 +386 GO:0004175 +387 GO:0015075 +388 GO:0016790 +389 GO:0017137 +390 GO:0008094 +391 GO:0046527 +392 GO:0016628 +393 GO:0015929 +394 GO:0015077 +395 GO:0016796 +396 GO:0008171 +397 GO:0003735 +398 GO:0033293 +399 GO:0000287 +400 GO:0005261 +401 GO:0004521 +402 GO:0016887 +403 GO:0008374 +404 GO:0016779 +405 GO:0016888 +406 GO:0008175 +407 GO:0005102 +408 GO:0017056 +409 GO:0016997 +410 GO:0036361 +411 GO:0016831 +412 GO:0003774 +413 GO:0000976 +414 GO:0022890 +415 GO:0050661 +416 GO:0035091 +417 GO:0015291 +418 GO:0003899 +419 GO:0003724 +420 GO:0016854 +421 GO:0008173 +422 GO:0008199 +423 GO:0140098 +424 GO:0005516 +425 GO:0016791 +426 GO:0061134 +427 GO:0015085 +428 GO:0005215 +429 GO:0016832 +430 GO:1904680 +431 GO:0047429 +432 GO:0016866 +433 GO:0070403 +434 GO:0043021 +435 GO:0016298 +436 GO:0048018 +437 GO:0001882 +438 GO:0016896 +439 GO:0005496 +440 GO:0017111 +441 GO:0030545 +442 GO:0022824 +443 GO:0004866 +444 GO:0004620 +445 GO:0020037 +446 GO:0008066 +447 GO:0008509 +448 GO:0033218 +449 GO:0005244 +450 GO:0016860 +451 GO:0048038 +452 GO:0044877 +453 GO:0042277 +454 GO:0004527 +455 GO:0030170 +456 GO:0070492 +457 GO:0016757 +458 GO:0003746 +459 GO:0003916 +460 GO:0030145 +461 GO:0022884 +462 GO:0016627 +463 GO:0003723 +464 GO:0019207 +465 GO:0004930 +466 GO:0097747 +467 GO:0005088 +468 GO:0016763 +469 GO:0003796 +470 GO:0008137 +471 GO:0008649 +472 GO:0022843 +473 GO:0004721 +474 GO:0015036 +475 GO:0140096 +476 GO:0016247 +477 GO:0046873 +478 GO:0034987 +479 GO:0051020 +480 GO:0015399 +481 GO:0004190 +482 GO:0016407 +483 GO:0016616 +484 GO:0004842 +485 GO:0004970 +486 GO:0016620 +487 GO:0003729 +488 GO:0032553 diff --git a/scieval/dataset/Protein_GO/protein_go.py b/scieval/dataset/Protein_GO/protein_go.py new file mode 100644 index 0000000..9cb9a19 --- /dev/null +++ b/scieval/dataset/Protein_GO/protein_go.py @@ -0,0 +1,57 @@ +""" +Protein GO (Gene Ontology) text dataset. + +Similar to human_ppi structure: +- Data: LMUDataRoot()/go_bp.tsv, go_cc.tsv, go_mf.tsv +- Columns: index, question, answer, category +- answer: semicolon-separated GO term names +- Evaluation: exact match (normalized string comparison) +""" +from __future__ import annotations + +from ..text_base import TextBaseDataset +from .utils.protein_go import evaluate_protein_go +from ...smp import * + + +class ProteinGODataset(TextBaseDataset): + """ + Protein GO text dataset for GO annotation prediction evaluation. + + - Data: LMUDataRoot()/go_bp.tsv, go_cc.tsv, go_mf.tsv + Columns: index, question, answer, category + answer: semicolon-separated GO term names + - Evaluation: exact match accuracy, no external judge. + """ + + TYPE = "QA" + + DATASET_URL = {"go_bp": "", "go_cc": "", "go_mf": ""} + DATASET_MD5 = {} + + @classmethod + def supported_datasets(cls): + return list(cls.DATASET_URL.keys()) + + def load_data(self, dataset): + """ + Load from LMUDataRoot: go_bp.tsv, go_cc.tsv, go_mf.tsv + """ + data_path = osp.join(LMUDataRoot(), f"{dataset}.tsv") + if not osp.exists(data_path): + raise FileNotFoundError(f"Data file {data_path} does not exist.") + return load(data_path) + + def build_prompt(self, line): + """Prompt is the question field.""" + if isinstance(line, int): + line = self.data.iloc[line] + question = line["question"] + return [dict(type="text", value=question)] + + def evaluate(self, eval_file, **judge_kwargs): + """ + Exact match evaluation: parse prediction to GO terms, compare with answer. + """ + _ = judge_kwargs + return evaluate_protein_go(eval_file, self.data) diff --git a/scieval/dataset/Protein_GO/utils/__init__.py b/scieval/dataset/Protein_GO/utils/__init__.py new file mode 100644 index 0000000..4c4e55c --- /dev/null +++ b/scieval/dataset/Protein_GO/utils/__init__.py @@ -0,0 +1,3 @@ +from .protein_go import evaluate_protein_go, extract_go_answer, normalize_go_answer + +__all__ = ["evaluate_protein_go", "extract_go_answer", "normalize_go_answer"] diff --git a/scieval/dataset/Protein_GO/utils/protein_go.py b/scieval/dataset/Protein_GO/utils/protein_go.py new file mode 100644 index 0000000..4f0c1cd --- /dev/null +++ b/scieval/dataset/Protein_GO/utils/protein_go.py @@ -0,0 +1,180 @@ +""" +Protein GO evaluation utilities. + +Supports parsing various model output formats (GPT, Qwen, SciReasoner, etc.). +""" +from __future__ import annotations + +import re +from typing import List, Set, Tuple + +from ....smp import * +from ....smp.file import get_intermediate_file_path + +GO_ID_PATTERN = re.compile(r"GO:\d{7}") + +_DELIMITER_MARKERS = [ + "<|im_end|>", "", "|im_end|", + "", "", "", "", +] + +_ASSISTANT_BLOCK_PATTERN = re.compile( + r"<\|im_start\|>\s*assistant\b.*?<\|im_end\|>", + flags=re.DOTALL | re.IGNORECASE, +) + +_ANSWER_INTRO_PATTERNS = [ + r"^(?:The\s+)?(?:GO\s+)?(?:annotations?|terms?)\s*(?:are|include)\s*:?\s*", + r"^(?:Based\s+on\s+[^:]*,\s*)?(?:the\s+)?(?:annotations?|terms?)\s*(?:are|:)\s*:?\s*", + r"^Answer\s*:?\s*", + r"^Output\s*:?\s*", + r"^Result\s*:?\s*", + r"^[\(\[]?\s*(?:GO\s+)?(?:terms?|annotations?)\s*[\)\]]\s*:?\s*", +] +_ANSWER_INTRO_RE = re.compile("|".join(f"({p})" for p in _ANSWER_INTRO_PATTERNS), re.IGNORECASE) + + +def _extract_answer_segment(text: str) -> str: + if not text: + return "" + matches = list(_ASSISTANT_BLOCK_PATTERN.finditer(text)) + if not matches: + return text + last = matches[-1] + segment = text[last.start() : last.end()] + segment = re.sub(r"<\|im_start\|>\s*assistant\b", "", segment, flags=re.IGNORECASE) + segment = re.sub(r"<\|im_end\|>", "", segment, flags=re.IGNORECASE) + return segment + + +def _strip_think_blocks(text: str) -> str: + text = re.sub(r".*?", "\n", text, flags=re.DOTALL | re.IGNORECASE) + text = re.sub(r"]*>.*?", "\n", text, flags=re.DOTALL | re.IGNORECASE) + for marker in _DELIMITER_MARKERS: + text = text.replace(marker, "\n") + text = re.sub(r"\b[A-Z][a-z]+>\s*", "\n", text) + return text + + +def _strip_outer_quotes(text: str) -> str: + text = text.strip() + for q in ['"', "'", "`"]: + if len(text) >= 2 and text.startswith(q) and text.endswith(q): + return text[1:-1].strip() + return text + + +def _try_extract_json_array(text: str) -> List[str] | None: + try: + import json + m = re.search(r'\[[\s\S]*?\]', text) + if m: + arr = json.loads(m.group()) + if isinstance(arr, list) and all(isinstance(x, str) for x in arr): + return [x.strip() for x in arr if x.strip()] + m = re.search(r'\{[\s\S]*?\}', text) + if m: + obj = json.loads(m.group()) + for key in ("annotations", "terms", "go_terms", "answer"): + if key in obj and isinstance(obj[key], list): + return [str(x).strip() for x in obj[key] if str(x).strip()] + except Exception: + pass + return None + + +def clean_go_prediction(text: str) -> str: + if not text: + return "" + text = _extract_answer_segment(text) + text = _strip_think_blocks(text) + text = re.sub(r"^[A-Za-z]+>\s*", "\n", text, flags=re.MULTILINE) + text = re.sub(r"\bD{8,}\b", "\n", text) + text = text.replace("\r\n", "\n").replace("\r", "\n") + text = re.sub(r"[ \t\f\v]+", " ", text) + text = re.sub(r"\n{2,}", "\n", text) + text = text.strip(" \n\t") + return text + + +def split_go_terms(text: str) -> List[str]: + if not text: + return [] + text = re.sub(r"^[-*]\s*", "", text) + text = re.sub(r"[\n]+[-*]\s*", "; ", text) + text = re.sub(r"[\n]+\d+[\.\)]\s*", "; ", text) + parts = re.split(r"[;\n]+", text) + cleaned = [] + for p in parts: + p = re.sub(r"^[-*]\s*", "", p) + p = p.strip(" .\t\"'`:") + if not p: + continue + if re.fullmatch(r"[A-Za-z]{1,6}", p) and p.lower() in {"vink", "rink", "sink", "link"}: + continue + cleaned.append(p) + return cleaned + + +def extract_go_answer(text: str) -> str: + """Extract normalized GO answer string (semicolon-separated) from model output.""" + cleaned = clean_go_prediction(text) + if not cleaned: + return "" + arr = _try_extract_json_array(cleaned) + if arr: + return "; ".join(arr) + cleaned = _strip_outer_quotes(cleaned) + cleaned = _ANSWER_INTRO_RE.sub("", cleaned, count=1).strip() + cleaned = re.sub(r"^:\s*", "", cleaned) + terms = split_go_terms(cleaned) + return "; ".join(terms) if terms else "" + + +def normalize_go_answer(text: str) -> str: + """Normalize GO answer for exact match comparison.""" + if not text: + return "" + text = text.strip() + text = re.sub(r"\s+", " ", text) + text = text.strip(" ;") + return text.lower() + + +def evaluate_protein_go(eval_file: str, meta_df: "pd.DataFrame") -> "pd.DataFrame": + """ + Exact match evaluation for Protein GO task. + + - Read eval_file (index, prediction) + - Use meta_df answer as reference + - Parse prediction to GO terms, compare with answer + - Return DataFrame: ['Total', 'Correct', 'Accuracy'] + """ + data = load(eval_file) + if "prediction" not in data: + raise KeyError(f"`prediction` column not found in eval file: {eval_file}") + if "index" not in data: + raise KeyError(f"`index` column not found in eval file: {eval_file}") + + data = data.copy() + meta = meta_df.copy() + data["index"] = data["index"].astype(int) + meta["index"] = meta["index"].astype(int) + data = data[data["index"].isin(meta["index"])] + + idx2answer = {int(i): str(a) for i, a in zip(meta["index"], meta["answer"])} + + pred_norm = [normalize_go_answer(extract_go_answer(str(x))) for x in data["prediction"]] + true_norm = [normalize_go_answer(str(idx2answer.get(int(i), ""))) for i in data["index"]] + + data["pred_extracted"] = [extract_go_answer(str(x)) for x in data["prediction"]] + data["correct"] = [p == t for p, t in zip(pred_norm, true_norm)] + + total = int(len(data)) + correct = int(sum(data["correct"])) + acc = float(correct / total) if total > 0 else 0.0 + + res = pd.DataFrame({"Total": [total], "Correct": [correct], "Accuracy": [acc * 100.0]}) + score_file = get_intermediate_file_path(eval_file, "_acc", "csv") + dump(res, score_file) + return res diff --git a/scieval/dataset/__init__.py b/scieval/dataset/__init__.py index d761a82..c281407 100644 --- a/scieval/dataset/__init__.py +++ b/scieval/dataset/__init__.py @@ -20,6 +20,7 @@ from .image_ccocr import CCOCRDataset from .image_shortqa import ImageShortQADataset, PathVQA_VAL, PathVQA_TEST from .text_mcq import CustomTextMCQDataset, TextMCQDataset, ProteinLMBench +from .Protein_GO import ProteinGODataset from .browsecomp_zh import BrowseCompZH from .frontierscience import FrontierScience_Olympiad, FrontierScience_Research @@ -267,7 +268,7 @@ def __new__(cls, *args, **kwargs): ] TEXT_DATASET = [ - TextMCQDataset,ResearchbenchGenerate,ResearchbenchRank,ResearchbenchRetrieve, PHYSICS, MaScQA, SciCode, ProteinLMBench, TRQA, AstroVisBench , CMPhysBench, + TextMCQDataset,ResearchbenchGenerate,ResearchbenchRank,ResearchbenchRetrieve, PHYSICS, MaScQA, SciCode, ProteinLMBench, ProteinGODataset, TRQA, AstroVisBench , CMPhysBench, SGI_Bench_Wet_Experiment,SGI_Bench_Dry_Experiment,SGI_Bench_Deep_Research,SGI_Bench_Idea_Generation, FrontierScience_Olympiad, FrontierScience_Research, LiveCodeBench, BrowseCompZH ]