Skip to content

Release Notes

2026-06-03

  • Disable Auto-Refresh on Window Focus: Removed the window focus event listener in the Engineering Mutation Designs page that triggered background data refreshes and UI re-renders whenever the page regained focus (such as when switching back from an external PDF reader).
  • Preserve Engineering Grid Selections on Focus/Refresh: Fixed a bug in the Engineering workspace where selecting mutations or variants and then clicking off the window (e.g., to view a PDF) and clicking back would clear/change the selections. The grid rendering loops now restore selections by identifying items using value properties (chain and mature linear position for mutations, and variant sequence signatures for variants) instead of strict object reference identity, which changes upon background data syncs.
  • Residue Indicator Colors Optimization: Updated the residue indicator colors to high-contrast colors (eggshell #F0EAD6 for engineering mutation designs and bright orange #FF7F00 for observations) while keeping their default 4px size. Added a solid black border to the indicators in the residue grids and the results table name cells (results.html) to ensure the eggshell and orange shapes stand out sharply against all background colors.
  • Fix Mol* Fullscreen Overlap in Engineer pI: Resolved a CSS syntax error where the selector list for fullscreen Mol* plugins and viewer panes ended with a trailing comma and was missing an opening brace. This ensures the 3D Structure viewers in both Target Mutants and Combinations tabs in the Engineer pI workspace render on top of the settings sidebar panel and tabs/grids when entering fullscreen or expanded layout modes.
  • Three-Way Column Sorting Toggle: Replaced the two-way toggling column sort in the main results grid, project dashboard, and the Engineering Mutation Designs & Variant Designs grids with a three-way toggle (Ascending, Descending, Default/Unsorted), aligning behavior across all grids. The default sorting state restores the original row ordering and is tracked per-column/index.
  • PDB Files Manager Sorting and Filtering: Implemented three-way column sorting (Entry Name, PDB Filename, and Extracted Sequences) and column-level filters (popovers) in the PDB Files manager dashboard, bringing it in parity with other dashboards. Reconfigured selection states and select-all/shift-click selection rules to evaluate only visible filtered items. The Extracted Sequences column sorts and filters by the merged full L and H entry sequences as a string rather than the cell's formatted display text or only the extracted parts.

2026-06-02

  • Mutation Grid "Fv Only" Option: Added a toggle option "Fv Only" (on by default) in the page header of the Antibody Mutation Grid view. When enabled, the mutation grid only evaluates the Fv region by passing parameters to the backend bulk annotation endpoint to exclude the leader and constant regions. The Excel export option is also updated to respect this "Fv Only" setting.
  • User Management Auto-Save Fv Limits: Replaced the manual save form and submit button for Max FVs in the User Management dashboard with an automatic saving mechanism. Updates are now triggered on blur (clicking off the field) or pressing Enter, communicating asynchronously via AJAX (fetch) with immediate visual feedback (success checkmarks or error indicators) and no full-page refreshes.
  • Warning & Confirmation Modal Adjustments: Configured the modals and warnings across the Assembler, Engineering, Engineer pI, and Bulk Humanize workflows to use the standard green, pill-shaped buttons. Additionally, the confirmation modals (Assembler, Engineering, and Engineer pI) now automatically hide the "Cancel" button and display only a single "OK" button when presenting simple warning/error/alert notification messages (which do not require a user choice).
  • Fv Limit Check Enforced on programmatical antibody builds: Enforced the account Fv limit check (user.max_fvs) at build time across all programming/creation workflows, including the Assembler (standard/multispecific builds and Fv extraction), sequence engineering variants generator, pI engineering combinations builder, and bulk humanization tools. If the number of new variants requested to be built at once in a single action exceeds the user's maximum allowance, the request is rejected with a clear 400 Bad Request error.
  • Dashboard Layout & Responsiveness Improvements: Updated the project dashboard table style configuration to allow horizontal scrolling on narrower viewports. Prevents wrapping in the Project Name cells by keeping them on a single line and locking their fit, implements custom auto-wrapping and width constraints on the Notes cells, adds hover style underlines/color shifts along with interactive tooltips ("Click to open project") on project name hover links, removes the edit pencil icon to keep the UI clean, configures the project name cell to trigger editing when double-clicking its empty space (along with a "Double-click empty space to edit name" tooltip), and adds a mouseover tooltip ("Double-click to edit") to Notes cells.
  • Clinical Comparison Fallback Germline Matching: Fixed a bug in the Clinical Comparison workspace where germline genes with appended species details (e.g. (human)) were not found in the reference clinical datasets, incorrectly flagging them as "Not Found" with red background highlights. The comparison now strips the species suffixes prior to matching against the reference dataset.
  • Standardized Dashboard Selection Border & Tint Overlay: Standardized the selection appearance on the main dashboard project grid (templates/dashboard.html) to display the same premium blue highlight border and rgba(59, 130, 246, 0.12) overlay tint used in the main results grid, highlighting selected project rows seamlessly.
  • Customer Logo Banner: Added a responsive, premium customer/partner logo banner directly below the landing page hero section (currently commented out). The banner dynamically loads client logos, names, and links from a static JSON configuration file (static/clients/clients.json), pre-populating 10 high-quality minimalist SVG mock clients for markup and demonstration alongside Sanavia.
  • Molstar 3D Structure Viewer in Engineer pI Combinations: Integrated the PDBe Molstar 3D structure viewer directly into the Combinations tab of the Engineer pI workspace. The viewer displays the parent Fv structure, highlighting the selected target mutant residues (used to construct combinations) in Ball-and-Stick representation, and dynamically spacefills the residues corresponding to mutation positions of checked variants in the combinations table.
  • Vernier Residues Indicator in Engineer pI: Added a (V) label indicator in the Region column for targeted residues that are Vernier residues, and documented their role in the settings sidebar card and docs/Engineer_pI.md guide.
  • Vernier Residues Indicator in Liabilities: Added a (V) label indicator in the Region column for residues in the Liabilities table that belong to the classic 30 Vernier zone residues, matching the behavior in the Engineer pI workspace. Added an explanatory legend note card below the Region Colors table in the Liabilities sidebar, and updated the documentation in docs/Liabilities.md.
  • Standardized Combinations Mutation Format: Formatted the mutations displayed in the Combinations tab to include the mature linear position in the format Chain:ParentNumber(mlinear)Mutant (e.g. L:E48(42)K).
  • Standardized Chain Ordering (Light Chain First): Standardized the chain presentation order across the entire application to display or list the Light chain before the Heavy chain. This includes the residues calculated in the target mutants tab of the Engineer pI tool, the dropdown option configuration and JavaScript sequence parsing loops within the Clading analysis workspace, and the default chain argument structure for clustering sequence alignments.

2026-06-01

  • Bulk Humanization & Repair Queue Optimization: Optimized the backend task queuing for both Bulk Humanization and Bulk Repair actions. Instead of re-evaluating the entire project's sequence database, the run is now queued to analyze only the newly created humanized or repaired antibody records, drastically reducing unnecessary compute time and avoiding full re-annotation of unmodified parent sequences.
  • Bulk Humanization: Added a bulk humanization feature for large sets of antibodies. Users can select multiple antibodies from the project view, choose a target species, and trigger humanization directly. The tool identifies the closest V/J germlines for each entry using the "Modifiable Residues Identity" method (matching only non-excluded positions), applies standard Honegger exclusions (plus VHH exclusions if the entry is a VHH), generates the humanized sequences, and registers them directly back to the project (bypassing the Engineering workspace) before auto-queuing a targeted re-analysis run. Relocated the "Bulk Humanize..." option to sit directly underneath the single-entry "Humanization" item in the Edit menu, added a dedicated user documentation section in docs/Humanization.md, and placed a warning message inside the bulk humanize confirmation modal reminding users that this method is intended for simple testing rather than final lead humanization.
  • User Management Dynamic Grid Refresh & Selection Styling: Added a "Refresh" button to the User Management dashboard that dynamically updates the user table, re-applies filters/sorting, and preserves selection states without requiring a full page refresh. Standardized the user grid selection display to use the same blue highlight border styling and rgba(59, 130, 246, 0.12) background tint overlay as the main results grid, resolving cell horizontal scroll overlaps by layering sticky column z-indexes.
  • User Account Expirations Grid Highlight: Modified the user management administration grid to display the "Expires After" date in standardized red (#CF4A3C) if a user's account has expired.
  • User Expiration Date Sorting: Fixed a bug in the admin User Management grid where sorting by "Expires After" did not handle "Never" expirations properly due to Javascript comparator calculations returning NaN (such as Infinity - Infinity).
  • VHH Overlay in Humanization: Added a "VHH" label overlay inside cells of the "Honegger Template" row corresponding to VHH positions on the heavy chain (42, 49, 50, 52), similar to the Vernier "V" labels. Added the "VHH" indicator to the Legend block in the Humanization settings panel.
  • Selection Top Border Alignment Fix: Resolved a visual bug in the main results grid (results.html) where the selection top border appeared twice as thick as other selection borders. Replaced the top inset box shadow with a dynamic CSS selector targeting the bottom border of the row directly preceding the selected/hovered row.
  • Improved Alignment Selection Contrast: Standardized grid selection box highlights across all views (Humanization, Alignment, Liabilities, Germline, PFA, and PLAbDab Search) to use a soft blue background fill tint (rgba(59, 130, 246, 0.12)) and a thin 1px border highlight (#3b82f6). Updated the selected rows outline border (using a 1px inset box shadow) and background tint on the Project View (results table) to match, and configured opaque light blue backgrounds for selected sticky name cells to prevent underlying text scrolling bleed.
  • Liabilities Row Selection Spacefill Fix: Restricted the 3D structure viewport spacefilling behavior so that clicking a liability row only highlights/spacefills the residue on the active structure if that specific structure actually contains a liability or entry for that row.
  • Clinical Comparison Grid Width: Removed the min-width: 100% restriction from the Clinical Comparison table element, allowing columns to render at their natural/defined width without stretching to fill the remaining screen space.

2026-05-31

  • Humanization Case Formatting Fix: Fixed an issue where the IMGT region scheme was formatted and printed as "Imgt" in the region headers of the Humanization alignment grid. All region and numbering schemes are now uniformly formatted via the standard display mapping (schemeMap).
  • Documentation Principle "Be Inherently Lazy" Integration: Integrated the core work principle to "Be Inherently Lazy" along with illustrative examples throughout the documentation (specifically in index.md, Engineering.md, Assembler.md, and Engineer_pI.md), emphasizing automation of repetitive design tasks (like building the Engineering tool rather than copying parent sequences and editing mutations in Excel by hand).
  • Humanization Exclusions UI Improvements: Revamped the Exclusions panel layout in the Humanization settings sidebar to set it apart visually using horizontal borders. Converted the exclusions selector from a dropdown into three mutually exclusive radio buttons: Honegger (renamed from Standard), CDRs, and Selected. Positioned a dynamic CDR Definition dropdown (supporting North, IMGT, Kabat, Martin, and AHo) inline directly to the right of the CDRs radio option, keeping it enabled and usable at all times. Renamed the "Humanization Template" row and references to "Honegger Template". Added independent grid selection action buttons (ordered: CDRs, Honegger, Vernier, VHH) and a global "Clear" selection button next to "Select on Grid" to easily select/reset groups of positions on the grid regardless of current custom selections, without altering the active exclusion mode. Set system regions and Honegger exclusions as the defaults upon load.

2026-05-30

  • Vernier Residues Overlay in Humanization: Added a "V" overlay inside cells of the "Honegger Template" row to designate classic Vernier zone residues. Updated the Legend in the settings panel to define the Vernier indicator. Added a new "Vernier" checkbox above the VHH checkbox, allowing users to automatically select and maintain Vernier zone residues (preventing mutation) alongside standard and VHH exclusions when using the Selected Exclusion mode. Added subtext notes to clarify their dependency on the Selected Exclusion mode.
  • User Management Copy Emails validation: Updated the bulk "Copy Emails" action in the admin User Management tool to filter out non-email usernames (e.g. admin, demo) and only copy valid email addresses containing @. Added an information popup modal warning administrators if none of the selected accounts contain valid email addresses.
  • User Expiration Settings Notice & Warning Modal: Added a dynamic account expiration date display to the user profile settings page, highlighting the date in red when the remaining days are 30 or fewer. Added a conditional header notice (under the preferences button) that displays the expiration date in red only when the account has 30 or fewer days remaining. Implemented a login warning modal that prompts users on their first page load after logging in if their account is scheduled to expire in 7 days or fewer.
  • User Account Expirations: Added support for setting user account expiration dates. The user grid displays a new "Expires After" column between "Activity" and "Created", displaying date-only records and supporting interactive sorting. Added a bulk "Set Expiration Date" action with a date picker validation modal. Expired accounts automatically deactivate at the stroke of the following date in the user's set timezone, and any login attempts by expired/disabled accounts fail with a clear "Account has expired" error.

2026-05-29

  • Molstar 3D Structure Viewer in Engineering: Integrated the PDBe Molstar 3D structure viewer directly into the right panel of the Engineering workspace (spanning both the Sequence and Variant Designs tabs). Pinned the viewer to the bottom of the viewport with a resizable drag handle. Configured it to color the backbone ribbon by Framework/CDR regions, display residue/sidechain atoms of the currently active Mutation Designs using element/CPK colors, render selected mutation designs in Spacefill representation, render unselected mutation designs in Ball-and-Stick representation, and show black element labels.
  • PFA Fallback Germline Labeling: Updated the fallback shown germline label format in the PFA Analysis workspace and its Excel exports when evaluating non-human sequences. It now appends (human) to the shown fallback human gene (e.g., (IGHV1-46*01 (human) (76.5%) shown)) instead of incorrectly inheriting the primary species prefix (e.g., Mouse).
  • Molstar 3D Structure Viewer in Engineer pI: Integrated the PDBe Molstar 3D structure viewer directly into the Target Mutants tab of the Engineer pI workspace. The tool displays target residues dynamically based on selection states. Selected residues render in Spacefill representation by default, while unselected targets render in Ball-and-Stick. Grouped the "Selected View" and "Unselected View" dropdown settings into a unified "3D View Settings" sidebar card layout for custom sidechain rendering (synchronized across both Engineer pI and Surface Mutagenesis). Pinned the 3D structure viewer to the bottom of the viewport, cleaned up redundant dividers from the settings sidebar, and configured the calculations to execute automatically using default settings on page load.
  • Liabilities Select Severe Button & Layout Tweaks: Added a subtle "Select Severe" button in the Liabilities settings sidebar with descriptive subtext (AbLang ≥ 5, AbLang2 ≥ 2, IgBert ≥ 2.5, PTMs High). This button automatically selects all rows in the grid that contain severe anomalies for the LLMs or High severity post-translational modifications (PTMs) and disrupted CDR3 salt bridges. Added a small explanatory note below the "Hide Blank Entries" checkbox layout clarifying that it hides entry columns with no selected liabilities. Displayed the specific Low, Medium, and Severe threshold values as compact subtext directly below each model's cutoff label on the left side of the flex rows to preserve vertical spacing.

2026-05-28

  • Alpaca Germline Support: Added support for alpaca (Vicugna pacos) germline V and JH matching. Updated the build script to compile the new species, mapped the 'alpaca' prefix to 'Al', and updated the germline analysis tool to dynamically request all available species in the database and display them correctly.
  • Whitespace Stripping on FASTA Import: Upgraded the FASTA import parser to strip all spaces, tabs, newlines, and carriage returns from sequences during file and text imports, preventing AntPack annotation failures.
  • Liabilities Grid Width Constraint: Removed the min-width: 100% style rule from the liabilities table, permitting the grid to display at its content's native width rather than forcing it to stretch to the full page width.
  • Engineering Mutation Designs Legends: Placed both the tabular ABHAND residue colors legend (compact two-column format) and the Region Colors legend (including framework VL-FMWK and VH-FMWK colors) at the bottom of the Mutation Designs left panel, matching the styling and configuration of the PFA workspace.
  • Engineering Variant Designs Grid Column Sorting: Added interactive column sorting functionality to each column in the Variant Designs grid (varGrid) in the Engineering workspace. Clickable column headers now display dynamic sort icons (indicating ascending, descending, or unsorted states) and sort the generated variant designs in-place (supporting sorting by built status, mutation count, or specific residue position columns). Refactored the Variant Designs grid column header text to display in the inline format [Chain] [Residue][Position] (e.g. K I107) with the parent residue styled in its ABHAND color, aligning both web interface display and Excel spreadsheet exports.
  • Engineering Variant Designs Cell Dimensions & Checkboxes: Adjusted the Variant Designs grid (varGrid) styling in the Engineering workspace to use a fixed table layout with compact cell padding and fixed column widths (standard columns constrained, and dynamic position columns limited to 75px). Applied width: auto !important to prevent the table from stretching to fit the full page width. This ensures cells remain compact, square, and neatly aligned when there are only a few columns. Applied the standard row-checkbox class to all checkboxes in both Mutation and Variant grids to align their styling with the main dashboard.
  • Dynamic Humanization Exclusions and VHH Settings: Moved the Exclusions selector above the VHH checkbox in the Humanization configuration sidebar, applying these settings to both the standard germline matching and BioPhi Sapiens methods. Germline residue coloring is now dynamic based on the active exclusion setting, where Magenta represents parent positions kept (not to be modified), Cyan represents germline residues to be modified that differ from the parent, and Green represents germline residues to be modified that match the parent. Separated grid column selection from the active exclusions dropdown mode, ensuring manual selections do not automatically switch the dropdown to "Selected" unless it is explicitly selected. Preserved the horizontal scroll position of the germline alignment tables during page renders and grid interactions. Added stable secondary (original matching score) and tertiary (gene/allele name alphabetically) sorting logic to germline candidates to ensure a consistent, deterministic order when percentage identity scores match.
  • SEO Title and Metadata Optimizations: Updated the title tag on the public-facing landing page (templates/landing.html, compiled to public/index.html via helper_scripts/generate_static_landing.py) and the site name in mkdocs.yml to use the SEO-optimized title: "AbLead | Computational Antibody Lead Optimization & Developability".
  • Search Engine Discovery (robots.txt & sitemap.xml): Created a public-facing robots.txt at the root of the project to allow search engine crawling of the landing page and public documentation routes while restricting access to application workspace paths. Added an automatic sitemap.xml generation script (helper_scripts/generate_sitemap.py) that parses mkdocs.yml to compile a complete list of public URLs, and integrated it into the deployment workflow (.github/workflows/deploy.yml) to automatically keep the root sitemap up to date whenever documentation is rebuilt.
  • Alignment & Clading Sidebar Upgrades: Added the region colors legend (L-CDR1/2/3, H-CDR1/2/3, VL-FMWK, and VH-FMWK) to the settings sidebar of both the Alignment and Clading workspaces. Also added the tabular ABHAND residue colors legend to the Clading settings sidebar.
  • PFA Legend Styling: Refactored the ABHAND residue legend inside the PFA workspace to match the tabular styling of the Alignment workspace, displaying class labels inside colored background badges and listing their residues across two side-by-side tables to reduce vertical height. Added VL-FMWK and VH-FMWK framework colors to the PFA Region Colors legend.
  • Liabilities ABHAND Legend Upgrade: Refactored the ABHAND residue colors legend in the Liabilities workspace settings sidebar to match the tabular styling used in the Clading and Alignment workspaces.
  • Mutation Grid Legends: Placed both the tabular ABHAND residue colors legend (mimicking PFA's double-table compact format) and the Region Colors legend at the bottom of the Antibody Mutation Grid view using compact self-contained boxes, and set the page body and layout container background colors to white to match PFA's layout exactly.
  • Humanness Legends: Added both the tabular ABHAND residue colors legend (matching PFA's double-table compact format) and the Region Colors legend to the bottom of the Humanness view, grouped into a separate bottom row container (ABHAND on the left, Region Colors on the right) with compact, content-fitting widths.
  • Solvent Exposures Scrolling & Card Legends: Moved the Solvent Exposures legend container (.legend-footer) inside the main scrollable content area (.content-scroller) so that the legends scroll naturally with the rest of the page layout. Refactored the Exposure legend to display the numbers directly inside compressed, colored box pills (split into Row 1: 0-50 and Row 2: 60-100+) and aligned all three legend boxes (Exposure, ABHAND, and Region Colors) with matching height (height: 135px), background colors (white), border styling, and width limits (Exposure and ABHAND now share width: 360px). Removed the white background box and border wrapper behind the entire legend footer container to match the transparent page layout of Humanness.
  • Repair Junction Information Modal: Replaced the error popup/warning modal for the "No repairable VL/CL junction discrepancies were detected in the selected entries" condition in the Repair Junction tool with a styled information modal that presents the message directly without an "Error: " prefix.
  • Liabilities Firefox/Safari Column Width Fix: Fixed a layout bug in Firefox and Safari where the sticky table columns in the Liabilities workspace stretched to take up the entire width of the page, pushing the rest of the columns out of view. Swapped dynamic CSS variable offsets with explicit CSS width parameters (200px for Liability, 80px for Chain, Region, Linear, and Number columns), and set width: max-content; min-width: 100%; directly on the table element to guarantee a consistent and stable grid layout across all rendering engines.
  • Fv Extraction Chain Ordering: Updated the Fv Extraction tool to list Light chains before Heavy chains in the dissection and segment pairing selector grid.

2026-05-27

  • Restore Chrome Login Warning: Restored the Google Chrome browser notice warning on the login page, positioning it below the credentials login box.
  • Zero-Downtime Deployment: Configured the deployment workflow to reload Gunicorn services using systemd's reload mechanism (SIGHUP signal), allowing new processes to start up and swap in while old processes continue handling traffic. Resolved an issue where rsync's delete flag was unlinking active UNIX socket files (*.sock) during deployment, ensuring persistent 502 gateway errors are prevented during the update window.
  • VL/CL Junction Warning Badge: Added an on-the-fly warning badge next to the entry name in the project results table (results.html) to flag split-codon junction discrepancies (Extra VL/CL R, Missing VL/CL R, Extra VL/CL G, Missing VL/CL G) dynamically using substring alignment matching of the variable domain against the database's raw light chain sequence. This avoids database schema changes and does not require re-running the analysis pipeline.
  • Repair VL/CL Junctions Method: Added a "Repair Junction" option to the Edit menu directly below "Surface Mutagenesis". This method dynamically identifies junction warning conditions (Extra VL/CL R, Missing VL/CL R, Extra VL/CL G, Missing VL/CL G) for the selected antibody entries, inserts or deletes the corresponding prefix amino acids from the beginning of the light chain constant domain to repair it, replaces the sequence entry in the database, and schedules a background run to update all analysis metrics across the project.
  • Liabilities Multi-Row Selection & Molstar Spacefill: Added interactive multi-row selection to the Liabilities analysis view. Clicking rows displays a blue selector box overlay around them, supports selecting multiple rows simultaneously, and dynamically updates the PDBe Molstar viewport to render all selected residues in Spacefill style. Includes an Alignment-style ban-icon clear button positioned directly to the left of the "Liabilities Analysis" title (always visible) to reset selections. Non-liability residues are highlighted in bright blue spacefill to enable easy 3D localization of any row position. Removed row hover highlights to keep grid interactions clean. Added a "Spacefill Selected" setting checkbox under the Language Model Cutoffs (on by default) to toggle the spacefill highlighting of selected row residues on/off dynamically.
  • Humanization Tool % Identities: Displayed percentage identity of modifiable residues and whole sequence identity in the format "61.4% Mod (67.7% Full)" next to each germline in the humanization view. Added a "Sort By" setting to sort germlines by Mod Identity (default) or Full Identity.
  • Engineering Mutation Designs Region Column & Coloring: Added a Region column to the right of the Chain column in the Mutation Designs grid in the Engineering workspace, dynamically calculating the region names on the fly from sequence alignments. Chain and Region cells are now color-coded using the standard system colors to align with other workspaces, and styled with a light border-right separator identical to row lines (#e2e8f0) to prevent adjacent cells from blending on light backgrounds. Shrank the font size of the Mutation Designs grid to 12px to match the sequence viewer.
  • Engineering Line Length Setting: Added a "Line Length (Residues)" number box setting to the Sequence tab inside the Engineering workspace, allowing users to dynamically adjust the line wrap length of the sequence grid listings.
  • Engineering Grid Excel Exports: Upgraded the grid export features for Mutation Designs and Variant Designs in the Engineering workspace to generate fully-formatted Excel spreadsheets (.xlsx) rather than plain CSV files, capturing the exact cell background colors, text contrast styling, and residue-level properties of the active selection.
  • Variant Design Grid Coloring & Title Bar: Refactored the Variant Design Grid and its Excel spreadsheet export so that unmutated parental residues (represented as -) are rendered as non-colored (transparent background / standard text). Added standard ABHAND residue color-coding to the parental residues displayed in the title bar (column headers) in both the web interface and the Excel exports.

Fixed

  • Default Sort Restoration: Added the capability to restore the default sort order in the User Management grid when resetting filters or by cycling through column sorting states (Asc -> Desc -> Default/Unsorted) on column headers.
  • Liabilities Selection Retention: Fixed a bug where clicking value cells inside the Liabilities grid to open the engineering modal would toggle/deselect the row. Added click event propagation stopping (event.stopPropagation()) on value cells so row selections are preserved when the engineering modal is used.
  • Domains Selector in Alignment: Fixed a bug where selecting or deselecting "Leader" or "Constant" in the alignment Domains selector did nothing. Clicking these options now correctly clears the client-side annotations cache, triggering a re-fetch of sequence numbering and region data with the updated domain scopes.

2026-05-26

Changed

  • PFA Tool Germline Fallback and Header: Updated the PFA analysis tool and the Humanness tool so that if the determined human germline has no PFA data, it falls back to showing the closest human germline with PFA data. The headers/scorecards are updated to display sequence identity percentages for the determined germline, note the lack of data, and specify the fallback shown germline (e.g. Light Chain Analysis: Human IGKV1D-7-1*01 (90.2%) (no data) (Human IGKV1-39*01 (89.1%) shown) / IGKJ4*01 (91.7%)).
  • Name Validation Regexes: Expanded the allowed character list for antibody and entry names in routes/project_import.py, routes/project_update.py, and templates/results.html to allow asterisks (*) and forward slashes (/). This allows importing and renaming sequences using germline names and set names generated by the Engineering tool (such as "SSJ32-SH04_Eng_IGKV1-39*01_/_IGKJ4*01_-_IGHV4-4*08_/_IGHJ6*01_1").
  • Mutation Grid Export Filename Order: Changed the filename order of the Mutation Grid Excel export from MutationGrid_[name]_[timestamp].xlsx to [name]_MutationGrid_[timestamp].xlsx.

Fixed

  • Model Building Results Color Update: Fixed a caching bug where building a 3D structural model for an antibody did not update its name cell's background color in the results grid from light red (no model) to white (model exists) upon completion. The results iframe refresh now appends a cache-busting timestamp to bypass browser caching and fetch the fresh database model status.
  • Model Building Refresh: Prevented a full window reload when 3D modeling and analysis finishes. It now performs a surgical refresh of the results grid iframe, keeping all other open workspace tabs active and intact.
  • Project View Reload on Mutation Saving: Prevented the main project view results grid from reloading when engineering mutations are saved or updated (such as when adding mutations via the Humanization tool). Since draft mutations are saved to the workspace and do not alter the parent sequences or grades, this avoids disruptive full page refreshes while preserving silent cross-tab synchronization between active engineering panels.
  • Engineering Mutation Grid Design Generation: Fixed a bug where "Generate Designs in Engineering" would set includeParent to true for all generated mutations, regardless of the mutation grid's state. It now correctly sets includeParent dynamically: if at least one child antibody retains the parental residue at the mutation position (showing as - in the grid), includeParent is set to true; if all children carry mutations and none retain the parental residue, includeParent is set to false.
  • Molstar Fullscreen Overlap in Liabilities & Workspace Tabs: Resolved a UI issue in Liabilities, Surface Mutagenesis, and PDB Files views where taking the Molstar 3D viewer to fullscreen mode was blocked or covered by other layout elements (like grid headers and sticky columns). Applied a high z-index override to the #viewerPane container when it has a fullscreen or layout-expanded Molstar viewer to ensure it renders on top of all other elements. Additionally, added the allowfullscreen attribute to all workspace tab iframes inside the main project view to allow browser-native fullscreen mode to execute successfully without being clipped by parent page boundaries.
  • Engineering Mutation Designs CSV Export: Fixed the CSV export to include the parent residue in the Muts column if "Include Parental" is enabled for that position.
  • Silent Refresh in Liabilities and Alignment: Prevented the Liabilities and Sequence Alignment pages from displaying a full-page loading overlay or spinner when engineering mutation designs or residue observations are saved or updated. These pages now fetch data and re-render grid indicators silently in the background, utilizing cached regional annotations to eliminate redundant and slow calculation requests.
  • Liabilities Dropdown Selection Persistence: Fixed a bug where saving or updating mutation designs caused the Liabilities filter selector box (#liabilitiesSelect) to reset to having all items checked. The dropdown now captures the user's selected items prior to the update and restores them, while defaulting any brand-new liabilities to checked.
  • Dynamic Engineering Indicator Dots Update: Fixed a regression where stopping the full-page results grid refresh from engineering updates prevented the entry names in the results grid from updating their "Has engineering mutations" indicator dot. The results grid now listens to the BroadcastChannel updates and performs a silent API query to toggle the mutation indicators on the client side without reloading the grid frame, preserving row selection checkbox states and scroll positions.

2026-05-25

Added

  • Bulk Notes Edit: Added a new menu option and interactive modal under Edit > Bulk Edit Notes... in the project view. This allows users to bulk edit (append or overwrite notes) for multiple selected antibody entries at once. If notes already exist, the new text is appended with a space separator, or the user can choose to overwrite all existing notes (including clearing them if the text field is left blank) with a confirmation warning modal. The grid preserves its scroll position across dynamic reloads to prevent layout jumping.
  • Credentials Download Warning Modal: Added a confirmation warning modal when closing the bulk user creation results page without downloading credentials, ensuring administrators do not lose temporary passphrases.
  • Generate Engineering Designs from Mutation Grid: Added a button to each parent mutation grid table in the Mutation Grid workspace to directly generate and save the observed mutations as design configurations in the parent antibody's Engineering workspace. Dynamically names the mutation set (e.g., "Mutation Grid", "Mutation Grid 2") to prevent collisions, provides a direct shortcut link to navigate to the Engineering tool, and integrates a styled confirmation modal when saving designs to Engineering (matching the style and permission checks used in Surface Mutagenesis).

Changed

  • IgBert Paired Inference Mode: Switched the IgBert scoring engine to the official paired sequence concatenation mode, joining heavy and light sequences with a space-separated [SEP] token to leverage cross-chain attention.
  • Recalibrated Score Thresholds: Recalculated the warning and penalty thresholds for the overall IgBert Full (9.36/17.11) and IgBert FR (4.33/10.32) metrics based on the 25th and 75th percentiles of the OAS 5K paired reference dataset.
  • Database Recalculation: Executed a background recalculation script targeting the production database (kbcaro_main.db) and local database (kbcaro.db) to update all 11 active projects containing legacy IgBert scores, standardizing them to the new paired values.
  • Documentation Updates: Updated user documentation in docs/Liabilities.md to reflect the newly calibrated thresholds and detail overall score color ranges.
  • Surface Mutagenesis Set Storage: Switched from storing mutations directly in the "Default" engineering set to a dynamically-named "Surface Mutagenesis" set. Avoids overwriting the "Default" designs, resolves potential naming collisions by appending a counter suffix (e.g. "Surface Mutagenesis 2"), and updates the store warning modal message. Automatically updates the active set to the newly stored set.

Fixed

  • Notes Column Category Cell Alignment: Colored the empty category header cell above the Notes column in the main project view the same color as the Notes header itself (gray). Standardized the Notes column header and its corresponding category cell in Excel spreadsheet exports to utilize the same gray background coloring.
  • Integration Test Casing: Standardized case mapping inside pipeline tests to check for "IgBert Full" and "IgBert FR" (lowercase ert) matching the model output keys.
  • Mutation Grid Parent ID & Naming Resolution: Fixed a bug in the Mutation Grid where renaming a parent antibody or selecting only a subset of antibodies (like only child sequences) could result in the error "Parent antibody ID not found. Cannot generate designs." The hierarchy resolution API was upgraded to match parent-child relationships case-insensitively, ignore chain suffix differences, and automatically fetch/include parent sequences from the database if they were omitted from the user's checkbox selection. Updated child-renaming routines to robustly update children parent references case-insensitively and suffix-insensitively to prevent database inconsistencies.

2026-05-24

Added

  • VHH 3D Modeling (NanoBodyBuilder2): Integrated single-chain VHH 3D structural modeling utilizing ImmuneBuilder.NanoBodyBuilder2. Single-chain (heavy-only) sequences are now automatically modeled using the dedicated VHH builder, while heavy/light pairs continue to be modeled using ABodyBuilder2.
  • Dynamic Builder UI Modals: Updated the confirmation modal shown to users before running 3D modeling to dynamically state which builder is being used (e.g., "Building VHH models using NanoBodyBuilder2", "Building Fv models using ABodyBuilder2", or both).
  • Surface Mutagenesis Tool: Restored the Surface Mutagenesis workspace under Edit > Surface Mutagenesis in the project view. The tool displays target surface residues based on sidechain SASA cutoff and CDR distance criteria. Active selected residues render in PDBe Molstar as CPK-colored representations, while unselected target residues render as element-colored representations, based on selected dropdown styles. Labels display in black.
  • Representation Selection Settings: Added "Selected View" and "Unselected View" dropdown menus to the settings sidebar, allowing users to dynamically customize the 3D structures' sidechain rendering (Line, Ball-and-Stick, or Spacefill) for both checked and unchecked target residues.
  • Combinatorial Variant Counter: Added real-time calculation and display of the total number of combinatorial variants ($2^#$) next to the selection count in the toolbar, formatted with thousands separators.
  • Bulk Mutational Saving: Added support for saving mutations in bulk to the Engineering "Default" set, optimizing network requests and database sync time.
  • Default Settings Update: Changed the default "Extend from CDRs" parameter from 5.0 to 0.0 in both frontend settings input and backend API calculation routes.
  • Combinatorial Limit Warning Modal: Replaced browser-native alert dialogs with a styled warning modal when the generated combinations exceed the 1,000 variants limit in the Engineering tool.
  • Mutation Designs Counters: Added real-time counters showing the number of selected mutation designs and the resulting number of combinations in a row below the toolbar, separated by a comma (e.g. "X selected, Y combos").
  • Combinatorial Variant Generation Controls: Added Min and Max Mutations dropdown settings to the Engineering panel, allowing users to generate variants carrying a specific range of mutated residues (e.g. only 3, 4, or 5 mutations). Rebuilt the counter to show exact counts of filtered combinations in real time using a dynamic programming counting algorithm.
  • Surface Mutagenesis Documentation: Added the user-facing documentation guide (docs/SurfaceMutagenesis.md) for the Surface Mutagenesis tool, detailing its parameters (SASA, CDR Extension), representation controls, and bulk mutation design features.
  • Global Mutation Assign Button: Added an "Assign" button next to the Global Mutation dropdown in the Surface Mutagenesis workspace. This allows users to re-apply the currently selected global mutation to any newly checked rows without needing to toggle the dropdown value.

Changed

  • Preserve Variants on Mutation Deletion: Disabled the automatic pruning of unbuilt variants when mutational designs are removed or edited.

Fixed

  • Surface Mutagenesis Atom Coloring, Loading Overlay & Fullscreen Overlap:
  • Fixed a bug where target residue sidechain atoms rendered in black instead of their CPK element colors. Pushed sidechains first with default CPK coloring and labels last with region colors, omitting the representationColor attribute on labels to prevent the black color override from leaking into the atoms.
  • Resolved a layout issue where the "Running calculations..." loading overlay rendered behind the Molstar window because the container wrapper #molstar-wrapper had a high z-index override in all modes. Adjusted #molstar-wrapper and [id^='pdbe-molstar-plugin-'] styles to apply z-index: 999999999 !important ONLY when they have the .msp-fullscreen or .msp-layout-expanded class. Increased the loading overlay z-index to 1000000000 (1 billion) to ensure it stays on top of everything during calculations.
  • Compressed Settings Sidebar UI: Reduced padding, margins, input spacing, and labels font size within the settings sidebar of the Surface Mutagenesis workspace to improve vertical visual density and usability.
  • SASA Cutoff & Extend CDRs Input Layout: Repositioned numeric text boxes to render inline on a single row with their labels, narrowing their width to a compact 80px and right-aligning the values to match the Liabilities cutoffs design patterns.
  • Molstar 3D Viewport Residue Numbering and Labels: Switched the PDBe Molstar 3D structure viewer in the Liabilities workspace to use mature linear numbering instead of system numbering (e.g. 112A in IMGT), resolving mismatch errors for inserts. Updated the Molstar viewport header title to explicitly state "Mature Linear Numbering".
  • Molstar Structure Viewer Ribbon and Atom Coloring: Resolved a display bug where ribbon segments for residues with liabilities turned black or the liability color, and displayed atoms turned black. Configured the viewer to explicitly color the ribbon backbone by region (Framework/CDR) while rendering the corresponding liability side-chain atoms in their distinct liability color and labels in black.

2026-05-23

Added

  • Google Forms Issue Reporting: Added a "Report an Issue" link to the global page footer pointing to a public Google Form, allowing users to submit feedback and bug reports directly.
  • Model-Specific Liabilities Cutoffs: Replaced the single "AbLang/2 Cutoff" setting in the Liabilities workspace with three independent, model-specific cutoff controls for AbLang, AbLang2, and IgBert to allow customized threshold filtering.
  • Individual Cutoff Restore Icons: Replaced the global "Reset Defaults" action link with individual inline restore buttons (using a return-to-default icon) adjacent to each of the AbLang, AbLang2, and IgBert cutoff inputs, allowing users to revert each model's cutoff independently.
  • Detailed Cutoff Documentation: Added a comprehensive explanation of antibody language model likelihood difference calculations and recommended thresholds under docs/Liabilities.md.
  • Open Source Compliance: Added IgBert (MIT license, Exscientia) to the open-source software (OSS) documentation.
  • Five-Word Passphrase Generator: Added a client-side temporary secure passphrase generator button to the "Create New Account" form in the User Management dashboard, utilizing the same vocabulary as the bulk creation tool.
  • Local Authentication Tests: Added programmatic Flask test client and headed Playwright browser scripts to verify local sign-in and dashboard redirection.

Changed

  • Inline Cutoffs UI: Realigned the Liabilities setting sidebar to show labels on the left and input fields on the right, saving vertical space.
  • Model-Specific Severity Coloring: Differentiated cell coloring thresholds based on each model's calibrated variance, implementing separate Low/Medium/High thresholds for AbLang (1.0/3.0/5.0), AbLang2 (1.0/1.5/2.0), and IgBert (1.5/2.0/2.5) across the web grid, Excel spreadsheet exports, and Word analysis reports.
  • User Table Navigation & Sticky Columns: Enhanced the User Management table UI to support horizontal scrolling on narrower screens while keeping the row selection checkbox and the User name columns pinned using CSS position: sticky. Migrated row hover effects to pure CSS to preserve visual highlights. Added an "Impersonate User" option to the Bulk Action menu which remains visible in the menu but is disabled/grayed out when anything other than exactly one user is selected.
  • Standardized IgBert Capitalization: Standardized capitalization of the IgBert model across UI templates, scripting comments, and runtime failure logs to ensure consistency. Maintained backward compatibility for legacy "IgBERT" keys.
  • Differentiated Language Model Colors: Kept AbLang as ff0000 (Red), but differentiated AbLang2 as e60000 and IgBert as cc0000. Updated colors dynamically in the liabilities grid, 3D structure viewer, PFA alignment grid, and all document exports (Excel, Word, SVL). Included Javascript color fallback safety values to ensure backward compatibility with cached or running instances.

Fixed

  • User Management Sticky Columns & Header Alignment: Fixed a critical layout bug where the custom stylesheet in templates/admin_users.html was wrapped inside an undefined {% block head %} (not defined in base.html), causing all table height, scroll, hover, and sticky settings to be discarded by Jinja. Moved the <style> block directly inside {% block content %} to restore full vertical and horizontal scrollbars on the user grid, while successfully pinning the row-selection checkbox and user name columns during horizontal scrolling. Locked the checkbox column to a fixed width of 60px and set the user column offset to 60px on both headers and rows to ensure perfect alignment. Replaced the white background overrides on sticky column headers with the standard light blue-gray background of the table header, resolving the broken title bar style.
  • Assembler Initial Text Layout: Fixed an alignment and wrapping issue where the initial "Click a domain to view its sequence..." placeholder text in the Domain Sequence preview pane was pushed and wrapped awkwardly. Removed leading indentation spaces and styled the text with a clean, muted placeholder color.
  • First-Time Setup Legal Disclosure Loading: Fixed a bug where the first-time setup legal terms and liability disclosure document was not found (resulting in a 404 page within the iframe wrapper on the initial account setup page). Removed disclosure.md from the exclude_docs configuration list in mkdocs.yml and added a validation section to ignore warnings for files omitted from navigation, enabling MkDocs to compile docs/disclosure.md to static/help_docs/disclosure.html without warnings or sidebar clutter. Added search: exclude: true frontmatter metadata to docs/disclosure.md to prevent it from being indexed in search results.

2026-05-22

Added

  • IgBert Scoring Integration: Added IgBert as the third local scoring method alongside AbLang and AbLang2, providing paired-chain stability profiling.
  • PFA & Clinical Comparison: Integrated IgBert sequence likelihood rendering in the PFA grid and stability metrics in the Clinical Comparison view.
  • Enhanced Export Formats: Updated Excel and CSV outputs to include IgBert scores, and added dedicated light/heavy IgBert tabs in PFA Excel exports.
  • OAS 5K Reference Dataset Scoring: Scored all 5,000 paired infilled sequences in the OAS 5K reference dataset using the aligned IgBert model with the North region scheme, appending the resulting scores as reference columns in the stats CSVs and outputting the full percentile distributions.

Changed

  • IgBert Scoring Alignment: Aligned local IgBert scoring logic with standalone implementation standards (independent-chain scoring using log-softmax probabilities).
  • Recalibrated Clinical Thresholds: Re-ran calculations for the Clinical Jain mAbs dataset to calibrate new green (25th percentile) and yellow (75th percentile) stability threshold cutoffs, showing updated warning indicators in results grids and exported files.
  • SaaS License Agreement & Site Disclosure: Updated the platform disclosure and first-time user acceptance agreement terms using the new legal copy in docs/disclosure.md.
  • Single Source of Truth Legal Documentation: Enabled docs/disclosure.md in mkdocs.yml to compile into static/help_docs/disclosure.html during the documentation build process, maintaining templates/disclosure.html as a clean iframe wrapper to prevent duplication and ensure a single source of truth across both the help system and the application signup flow.

Fixed

  • Unresponsive Build Buttons & CSP Compliance (Engineering, Assembler, Engineer pI): Fixed the unresponsive "Build Selected" and "Build FASTA" buttons across the Engineering, Assembler, and Engineer pI workspaces. Removed all inline HTML event handlers (onclick, onchange, etc.) to achieve full Content Security Policy (CSP) compliance and resolve browser console violations blocking string-to-code evaluation. Replaced them with programmatic event listeners and safe event delegation.
  • Iframe Load Race Conditions: Replaced DOMContentLoaded event listener blocks with a robust document.readyState check in the workspace templates to guarantee that event listeners register successfully even when scripts load inside iframes after initial page parsing.
  • Assembler Building and FASTA Export: Fixed an issue where the "Build Selected" and "Build FASTA" buttons were unresponsive due to the iframe failing to receive selected antibody IDs. Since modern browsers often block cross-iframe sessionStorage access and postMessage handshakes under strict security policies/CSPs, implemented direct query parameter URL routing (?ids=1,2,3) to pass selection IDs to the Assembler, aligning it with other working views across the app. Also resolved JavaScript ReferenceError exceptions by converting key actions to standard top-level hoisted function declarations, handled Jinja interpolation errors for names with single quotes, and added null-guards for incoming window messages.
  • Assembler Backend Circular Import: Fixed a circular import error in routes/assembler.py (from app import get_base_name) that caused \"Build mAbs\" and \"Build Multispecific\" actions to crash on Gunicorn/WSGI servers.
  • Cookie Consent Banner Blocking Assembler Buttons: Fixed an invisible cookie consent banner that, after being accepted or declined, remained as a large transparent fixed overlay in the lower-right corner of the page. Because the dismissed banner retained its full pointer-events area while invisible, it silently intercepted all mouse clicks in that region — including the Assembler's "Build FASTA" and "Build Selected" buttons. Fixed by adding pointer-events: none to the banner's hidden state and using a transitionend event to set display: none after the slide-away animation completes.
  • Germline Multi-Species Row Selection: Fixed a bug where clicking a germline row in the Germline view would incorrectly highlight all rows across all selected species that shared the same gene name (e.g. clicking [H] IGKJ2*01 also highlighted [Rh] IGKJ2*01). Each germline row now has a unique key combining species and gene name, so selections are always single-row.
  • Liabilities Region Alignment: Resolved a region assignment mismatch in the Liabilities tool for custom region schemes (such as North) by aligning its region-calling logic with the Alignment tool.
  • Export Filters & Numbering: Fixed a bug that prevented correctly filtering liabilities by region in SVL exports and ensured that numbering data in exports dynamically respects the project's selected numbering and region schemes.

2026-05-21

Added

  • Open Source Compliance: Updated open-source software (OSS) documentation to include complete copyright notices and attributions for all application dependencies, corrected the Python webauthn library license entry to BSD 3-Clause, and integrated W3C standards licensing statements.
  • Analytics & Consent Management: Modularized and integrated Google Analytics 4 (GA4) and a custom glassmorphic Cookie Consent Banner setting Consent Mode v2 default states. Applied tracking and consent banner components to public entry points (landing page and login page), the main authenticated dashboard layout, and the static documentation help pages.

Fixed

  • Account Deletion Safeguards: Resolved a cascade-deletion database error that prevented deleting accounts when they owned existing projects, labels, observations, or shared links.
  • Admin Lockout Protections: Implemented security controls to prevent administrators from accidentally disabling or deleting their own accounts or the master admin account.
  • Staging Server Stability: Resolved an issue causing a 500/502 Internal Server Error on server startup or restart.

Changed

  • Landing Page Capabilities: Redesigned the "Computational Analysis & Output" section on the landing page into a premium, glassmorphic vertical list aligned with the four documentation capabilities (Rank Order Analysis, In-Silico Engineering, Fv Profiling, and Visual Analysis), showcasing the full suite of platform features including the Multispecific Assembler, Fv Pair Extraction, and interactive 3D structures.
  • Capabilities Section Sub-features: Added CSS Grid styling and hover micro-animations for the capabilities sub-features list on the landing page to ensure perfect alignment and responsiveness.
  • Citations: Added ANARCI references for "Numbering Schemes" and "CDR Detection" in the capabilities section of the landing page and references list.
  • Citations: Added BioPhi / Sapiens citation (Prihoda et al., 2022) to the "Humanization Workspace" bullet in the Engineering capabilities section.
  • Citations: Added ABodyBuilder2 citation (Abanades et al., 2023) to the "Build Models" bullet in the Engineering capabilities section.

2026-05-20

Added

  • Passkeys & Passwordless Sign-In: Added support for secure, passwordless authentication (WebAuthn). Users can now register biometrics/security keys from their profiles and use them on the login screen.
  • Bulk User Import: Added a bulk account creation tool that lets administrators upload a CSV list of new users. The system automatically generates temporary passphrases composed of five random hyphenated words.
  • Responsive Management Forms: Redesigned the administration panel to feature split responsive forms for single and bulk user creation.

Fixed

  • Passkey Registration & Fallbacks: Fixed several platform-specific compatibility bugs with passkey options and added copy fallback support for non-HTTPS local development.
  • Download Stability: Upgraded credentials CSV downloads to use modern Blob storage to prevent browser blocks.
  • Confirmation Modals: Swapped browser-native alerts for styled application confirmation modals during account deletion.

2026-05-19

Added

  • Multispecific FASTA Imports: Added support for importing multispecific antibodies (molecules with 3+ chains or duplicate heavy/light chains) via FASTA. Suffixes like _HC1/_LC1 are automatically grouped.
  • Constant Region Domain Partitioning: Integrated ANARCI sequence parsing during imports to segment full-length chains into Leader, CH1, Hinge, CH2, CH3, and Light Chain constant regions.
  • Fv Pair Extraction Tool: Added the "Extract Fvs" utility to easily pair and extract variable domains (VH and VL arms) from multispecific or full-length IgG antibodies for developability scoring.

Fixed

  • Multispecific Sequence Export: Fixed formatting and tab-switching rendering bugs when exporting sequences for multispecific antibodies.
  • UI & Layout Alignment: Aligned chain ordering inside Fv Extraction to list Light Chain before Heavy Chain, and scaled pair dropdown configurations dynamically.

2026-05-18

Added

  • Multispecific Assembler Workspace: Expanded the Assembler to include a dedicated Multispecific Mode. Users can build, customize, and rearrange complex multi-chain designs.
  • Specialized Engineering Parts: Pre-configured standard peptide linkers, Knobs-into-Holes (KiH) heterodimerization domains (IgG1 and IgG4), and CrossMab crossover parts as draggable items in the Assembler.
  • User Custom Parts: Added a custom parts repository in the Assembler, allowing users to name, input, and save custom sequences to their workspace.
  • Reconstruct Existing Designs: The Assembler now dynamically loads and rebuilds previously saved multispecific constructs, extracting all constituent variable domains back into the workspace sidebar.

Fixed

  • Engineering Ghost Entries: Resolved an issue where unbuilt variant combinations would linger in the Engineering workspace.
  • Builder API Error Handling: Fixed several backend building and residue segmentation errors when processing multispecific models.

2026-05-13

Changed

  • Germline Species Suffixes: Appended parent species suffixes directly to the V-gene annotations in the results grid to clarify germline hits.
  • Germline Performance Updates: Cached large germline reference files and optimized lookup loops, significantly reducing page load times in the humanization view.

Fixed

  • ANARCI Auto-Detection: Restored ANARCI's ability to auto-detect species accurately, resolving a regression where human sequences were misclassified as Rhesus.
  • Germline Scoring Consistency: Aligned V/J gene allele naming conventions across the PFA, Humanness, and Germline views.

2026-05-12

Added

  • 3D Structure Viewer in PDB Files: Added a Molstar viewer button to the PDB Files manager, allowing users to view modeled 3D structures directly within the page.
  • Custom Backbone Coloring: Configured the Molstar viewer to highlight framework and CDR regions using standard AbLead color palettes.
  • Multi-Species Germline Targets: Added a species selector to Germline and Humanization tools. Users can now compare sequences against Human, Mouse, Rat, Rabbit, and Rhesus databases.
  • PFA Reference Notice: Added clarity to the PFA tool explaining that frequency reference sets are human-specific.

Fixed

  • Molstar Layout Adjustments: Fixed layout clipping, overlap bugs in fullscreen mode, and integrated resizable drag-handles for the Molstar panel.
  • Consistent V/J Rankings: Standardized germline candidate selection logic between the PFA and Humanization views when multiple genes yield equal match scores.

2026-05-11

Added

  • Allotype Detection: Added automatic allotype annotation (e.g., G1m17, Km, Oz) based on constant domain sequence positions.
  • Germline Engineering Mutator: Integrated the mutation selection modal and residue indicator dots directly into the Germline view.
  • Dynamic Grid Repainting: Implemented real-time residue indicator refreshes in the Germline grid when mutations are updated.

Fixed

  • Multispecific ZIP Re-imports: Fixed a bug where the multispecific badge was lost when exporting and re-importing project ZIP archives.
  • Grid Jiggling & Selection Scrolls: Optimized selection-box rendering to prevent screen jumping and preserve scroll positions when selecting grid cells.
  • Export Filenames: Fixed timestamp format inconsistencies in exported liabilities spreadsheet filenames.

2026-05-10

Added

  • Automated Fv 3D Modeling: Integrated ABodyBuilder2 (ImmuneBuilder) directly into the Project View, supporting automated batch 3D structural modeling.
  • New Germline Analysis Tool: Introduced the Germline view in the Analysis menu, splitting sequences into V and J regions and aligning top reference hits.
  • User Notes: Added a customizable Notes column to the main results grid, with full CSV and Excel export support.
  • Enhanced Indicator Colors: Redesigned indicator dots to clearly distinguish between engineered Mutations (Indigo Squares), Observations (Ochre Circles), or both.

Improved

  • Orphan Antibody Support: Improved Project View to flag and clean up database sequence records that are missing analysis metadata.
  • System Backups: Configured automated daily system backups for the production database.

Fixed

  • Worker Refresh Optimization: Optimized modal-close routines across all analysis views to only trigger grid refreshes if mutation changes were actually saved.
  • Suffix Collisions: Improved chain detection to match name suffixes only at the end of headers, preventing naming collisions during FASTA imports.