diff --git a/cogs/slash/school_slash.py b/cogs/slash/school_slash.py index 982bb1a..3b6df67 100644 --- a/cogs/slash/school_slash.py +++ b/cogs/slash/school_slash.py @@ -90,9 +90,10 @@ class SchoolSlash(commands.Cog): _compbio_group = SlashCommandGroup("compbio", "Commands voor compbio opdrachten") @_compbio_group.command(name="leaderboard", description="Gesorteerd en ingevuld leaderboard") - async def _compbio_lb_slash(self, ctx: ApplicationContext): + async def _compbio_lb_slash(self, ctx: ApplicationContext, + benchmark: Option(int, "De specifieke benchmark om op te halen (default k=600)", choices=[6, 10, 50, 600], default=600)): await ctx.response.defer() - lb = leaderboards.CompbioLeaderboard(ctx) + lb = leaderboards.CompbioLeaderboard(ctx, kmer=benchmark) await lb.respond() @_compbio_group.command(name="submit", description="Link een Dodona-submission aan jouw username") diff --git a/data/menus/leaderboards.py b/data/menus/leaderboards.py index a1b2f68..af97e18 100644 --- a/data/menus/leaderboards.py +++ b/data/menus/leaderboards.py @@ -125,6 +125,11 @@ class CompbioLeaderboard(Leaderboard): colour: discord.Colour = field(default=discord.Colour.green()) title: str = field(default="Leaderboard Computationele Biologie #2") reverse: bool = False + kmer: int = 600 + + def __post_init__(self): + self.title += f" (k = {self.kmer})" + super().__post_init__() def get_submission_user(self, submission_id: str) -> str: with open("files/compbio_benchmarks_2.json", "r") as fp: @@ -137,8 +142,17 @@ class CompbioLeaderboard(Leaderboard): return f"[# {submission_id}]" def get_data(self) -> list[tuple]: + files = { + 6: "J02459.1", + 10: "J02459.1", + 50: "J02459.1", + 600: "AF033819.3" + } + + url = f"https://github.ugent.be/raw/computationele-biologie/benchmarks-2022/main/reconstruction/{files[self.kmer]}.{self.kmer}mers.md" headers = {"Authorization": f"token {settings.UGENT_GH_TOKEN}"} - result = requests.get(f"https://github.ugent.be/raw/computationele-biologie/benchmarks-2022/main/reconstruction/J02459.1.50mers.md", headers=headers).text + result = requests.get(url, headers=headers).text + # Remove table headers result = result.split("\n")[2:] data = []