{"id":50495512,"url":"https://github.com/husonlab/jpicl","last_synced_at":"2026-06-02T07:00:23.019Z","repository":{"id":357872373,"uuid":"1230797201","full_name":"husonlab/jpicl","owner":"husonlab","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-27T14:14:27.000Z","size":6537,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-27T16:11:05.525Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/husonlab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-06T10:28:48.000Z","updated_at":"2026-05-27T14:16:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/husonlab/jpicl","commit_stats":null,"previous_names":["husonlab/jpicl"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/husonlab/jpicl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husonlab%2Fjpicl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husonlab%2Fjpicl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husonlab%2Fjpicl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husonlab%2Fjpicl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/husonlab","download_url":"https://codeload.github.com/husonlab/jpicl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husonlab%2Fjpicl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33810343,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-02T07:00:16.254Z","updated_at":"2026-06-02T07:00:23.007Z","avatar_url":"https://github.com/husonlab.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JPICL\n\nA cross-platform desktop interface for [PICL](https://github.com/lkubatko/PICL),\nLaura Kubatko's C library for phylogenetic inference with composite\nlikelihood under the multispecies coalescent.\n\nJPICL gives PICL a JavaFX user interface, a tree-visualisation panel,\nsequence-format conversion (FASTA in addition to Phylip), and an\nin-app updater. The PICL binary is bundled inside the application JAR\nfor macOS (Intel and Apple Silicon), Linux (x86_64), and Windows\n(x86_64) — no separate compilation step required for end users.\n\n---\n\n## Features\n\n- Edit a PICL run interactively: model, branch-length method,\n  tree-search method, bootstrap settings, random seeds, and the full\n  lineage → species mapping.\n- Load and save settings files in PICL's native format.\n- Read alignments in FASTA or Phylip — FASTA is auto-converted to a\n  temporary Phylip file before being handed to PICL.\n- One-click run: launches PICL as a subprocess, streams stdout/stderr\n  to a Log tab, and writes a `.log` file beside the outputs.\n- Output panes: a textual view of the multi-tree `.trees` file and a\n  graphical phylogram of the final `.tre` file.\n- Non-destructive collision handling: if outputs from a previous run\n  already exist, JPICL asks before bumping to `data-2.tre`,\n  `data-3.tre`, etc. — your earlier results are never overwritten.\n- Per-platform installers, with an in-app **View → Check for\n  Updates…** that fetches a manifest, compares versions, downloads\n  the right installer for your OS, and verifies its SHA-256 before\n  launching it.\n\n## Installation\n\nDownload the latest installer for your platform from the\n[releases page](https://github.com/husonlab/jpicl/releases).\n\n\nAfter install, launch JPICL from your application launcher.\n\n## Quick start\n\n1. **Open an alignment.** File → Open the alignment file (FASTA or\n   Phylip).\n2. **Define lineages.** Use **Lineages from data** to populate the\n   table from the alignment headers, then assign each lineage to a\n   species (you can also import a tab-separated mapping or\n   auto-detect species by prefix).\n3. **Pick a model and search settings** — defaults are sensible for\n   most analyses.\n4. **Run PICL.** The Log tab fills with progress; on success the\n   Output tab shows the annotated tree-info file and the Tree tab\n   shows the inferred phylogram.\n5. **Save the run.** All output files (`.tre`, `.trees`, `.log`,\n   `.bootstrap`, `.values`, `.settings`) sit beside your alignment\n   file and share the same basename.\n\n## Building from source\n\nRequirements: JDK 21+ and Maven 3.9+.\n\n```sh\ngit clone --recurse-submodules https://github.com/your-org/jpicl.git\ncd jpicl\nmvn package\njava -jar target/jpicl-\u003cversion\u003e.jar\n```\n\nThe `--recurse-submodules` flag is important — PICL itself lives at\n`native/picl` as a submodule pointing at upstream. If you forget it,\nrun `git submodule update --init --recursive` from the jpicl root.\n\nTo compile a fresh PICL binary for your local platform and drop it\ninto the resources tree (useful when iterating on Laura's code\nwithout a CI round-trip):\n\n```sh\n./scripts/compile-picl.sh\n```\n\nTo bump the bundled PICL submodule to upstream's latest commit and\nrecord the new pointer in a jpicl commit:\n\n```sh\n./scripts/bump-to-lauras-latest-picl.sh\n```\n\n## Project layout\n\n```\nsrc/main/java/jpicl/\n├── dialog/         JavaFX controller + presenter for the main window\n├── draw/           Phylogram rendering (DrawPhylogram)\n├── main/           App entry point + Version constants\n├── tools/          Standalone CLI utilities (e.g. FastAMerger)\n├── util/           Alignment parsers, Newick I/O, output-file\n│                   bookkeeping, PICL binary extractor\n└── window/         Top-level Stage management\n\nnative/picl/        PICL C source (git submodule → lkubatko/PICL)\nscripts/            Helper scripts (compile, bump, etc.)\n```\n\n\n## Credits\n\nPICL is the work of [Laura Kubatko](https://github.com/lkubatko) and\ncollaborators. JPICL provides only the user-interface layer; all\nphylogenetic inference is performed by PICL itself.\n\nJPICL is developed by Daniel H. Huson at the University of Tübingen.\n\n## Citation\n\nIf you use JPICL or PICL in published work, please cite the PICL\nmanuscript (see the upstream PICL repository for the current\ncitation), and optionally reference this interface as:\n\n\u003e TBA\n\n## License\n\nGNU General Public License v3.0. See the headers of individual source\nfiles and the [GPL-3.0 text](https://www.gnu.org/licenses/gpl-3.0.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhusonlab%2Fjpicl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhusonlab%2Fjpicl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhusonlab%2Fjpicl/lists"}