{"data":{"slug":"gersteinlab-biocoder","name":"BioCoder","tagline":"BioCoder: A Benchmark for Bioinformatics Code Generation with Large Language Models https://arxiv.org/abs/2308.16458","github_url":"https://github.com/gersteinlab/BioCoder","owner":"gersteinlab","repo":"BioCoder","owner_avatar_url":"https://avatars.githubusercontent.com/u/1662794?v=4","primary_language":"Jupyter Notebook","stars":58,"forks":16,"topics":[],"archived":false,"github_pushed_at":"2025-07-31T09:01:30+00:00","maintenance_label":"Slowing","url":"https://www.graphcanon.com/tools/gersteinlab-biocoder","markdown_url":"https://www.graphcanon.com/tools/gersteinlab-biocoder.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/gersteinlab-biocoder","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=gersteinlab-biocoder","description":"BioCoder: A Benchmark for Bioinformatics Code Generation with Large Language Models https://arxiv.org/abs/2308.16458","homepage_url":null,"license":null,"open_issues":0,"watchers":10,"ai_summary":null,"readme_excerpt":"# BioCoder: A Benchmark for Bioinformatics Code Generation with Large Language Models\n\n\n## <p align=\"center\"><a href=\"https://arxiv.org/abs/2308.16458\">📄 Paper</a> <a href=\"https://biocoder-benchmark.github.io\">🌐 Website</a>  <a href=\"https://huggingface.co/datasets/lilbillbiscuit/biocoder_public\">📜 Dataset</a>\n\n\nBioCoder is a challenging bioinformatics code generation benchmark for examining the capabilities of state-of-the-art large language models (LLMs).\n\n\n\n# Project Structure\n\nThe repository comprises 4 main parts: evaluation, inference, parsing, and data. We use the data folder to store results between each step in the operations. Ensure that each step is run from the root directory, i.e. `python3 parsing/parse.py` and not `cd parsing && python3 parse.py` in order to avoid issues with relative paths.\n\nEach section is described below.\n\n## Parsing\n\nThe parsing section contains the code used to analyze, parse, and extract functions from the repositories.\n\nBegin the process by going through a list of GitHub repositories. Download the list of repositories (named `pone.0205898.s005.xlsx`) from this paper first, then place it in the data directory.\n\n[A large-scale analysis of bioinformatics code on GitHub](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0205898)\n\nThen, open the notebook in GithubAnalysis to start the repository metadata-gathering process. Note that this may fully clone all available GitHub repositories in the list. This may take a long time. Then, use the scripts in FunctionSelection to filter the GitHub functions accordingly.\n\nNext, we need to do the function extraction step. We have created parsers for Java and Python so far. The corresponding documentation can be found in the respective folders:\n- [Java Parsing](parsing/FunctionExtractors/JavaFunctionExtractor/README.md)\n- [Python Parsing](parsing/FunctionExtractors/PythonFunctionExtractor/README.md)\n\nAfter parsing, the output should be a JSON format with consistent properties across all languages. The following columns are guaranteed, however, they may be extra columns for specific languages:\n* `function_id`: A unique identifier for the function. This is the hashcode of the function's signature.\n* `numParams`: The number of parameters the function has.\n* `numLines`: The number of lines the function spans.\n* `numChars`: The number of characters the function spans.\n* `lineStart`: The line number the function starts on.\n* `lineEnd`: The line number the function ends on.\n* `returnType`: The return type of the function.\n* `params`: A list of the function's parameters.\n* `parentClass`: The class the function is in.\n* `filePath`: The path to the file the function is in.\n* `signature`: The function's signature.\n* `content`: The function's content.\n* `comment`: The function's comment.\n* `numCommentLines`: The number of lines the function's comment spans.\n* `numCommentChars`: The number of characters the function's comment spans.\n* `packageName`: The package the function is in.\n* `repoName`: The repository the function is in.\n* `imports`: A list of the function's imports.\n* `additionalImports`: A list of the function's additional imports.\n* `intraClassFieldsUsed`: A list of the function's intra-class fields used.\n* `intraClassFieldsUsed`: A list of the function's intra-class fields used.\n\nThen, use the scripts in FunctionProcessing to process the functions. This includes filtering out functions that are too short, too long, or have too many parameters. It also includes filtering out functions that are too similar to each other. It also includes scripts to generate summaries, prompts, and other necessary prompt data with ChatGPT\n\nNote that there are also some scripts that assist with the manual annotation of context generation. These are not necessary for the benchmark, but are included for completeness.\n\n### Custom Python Parsing\n\nIn order to perform custom parsing on a Python repository, one can use the `parse.py` file under `parsing/FunctionExt","github_created_at":"2023-08-10T06:45:07+00:00","created_at":"2026-07-11T23:46:14.79588+00:00","updated_at":"2026-07-11T23:46:23.386444+00:00","categories":[{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"},{"slug":"vector-databases","name":"Vector Databases","url":"https://www.graphcanon.com/categories/vector-databases","markdown_url":"https://www.graphcanon.com/categories/vector-databases.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/vector-databases"},{"slug":"inference-serving","name":"Inference & Serving","url":"https://www.graphcanon.com/categories/inference-serving","markdown_url":"https://www.graphcanon.com/categories/inference-serving.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/inference-serving"}],"tags":[{"slug":"jupyter-notebook","name":"jupyter notebook"}],"trust":{"provenance":{"is_fork":false,"github_id":676849874,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-11T23:46:17.751Z","maintenance":{"label":"Slowing","score":36,"methodology":"github_public_v1","releases_90d":0,"days_since_push":345,"last_release_at":null},"security_summary":{"status":"findings","scanner":"osv@v1","low_count":210,"high_count":0,"last_scan_at":"2026-07-11T23:46:18.221Z","medium_count":0,"scan_profile":"deps","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-11T23:46:17.494Z"},"languages":{"value":["jupyter notebook"],"source":"github.language","observed_at":"2026-07-11T23:46:17.494Z"}}}}