Repository navigation
Releases: poplarity/GelFigure
Release list
GelFigure v0.6.11
Start here / 从这里开始
Download GelFigure-v0.6.11.html / 下载单文件 HTML
- Save this HTML file to your computer. / 保存到电脑。
- Double-click to open it in Firefox, Chrome, Edge or Safari. / 双击,用浏览器打开。
- Choose your gel image, check the labels and export. / 导入胶图,核对标注后导出。
No installation, ZIP extraction or GitHub account is needed. This one file is the complete offline tool. Use Save project to keep your work before closing.
不用安装、不用解压、不用注册 GitHub。一个 HTML 文件就是完整的离线工具。关闭前请用 保存项目 保留进度。
The ZIP and GitHub's “Source code” downloads are optional source distributions. Most users only need the HTML above.
ZIP 和 “Source code” 是可选的源码下载,普通使用只需要上面的 HTML 文件。
Changes / 更新内容
Right-aligned desktop exports and adjustable lane-name angles with the same automatic default.
中文摘要
- 修复较窄电脑窗口隐藏引导文字后,顶部导出按钮向中间偏移的问题;导出区始终靠右,长文件名会收缩显示。
- 成图上方新增「泳道名角度」入口:默认沿用原有自动规则,可选预设或通过滑块、数值输入调节 0–90°;角度跟随项目、样式和导出保存,支持撤销及恢复自动。
Fixed
- Keep desktop export controls aligned to the upper-right edge when the coach line is hidden, including long filenames and cache-status messages.
Added
- Figure-side lane-name rotation controls with presets and a 0–90° slider/numeric input. The existing automatic angle selection remains the default. Manual angles persist in projects/styles and SVG, raster and editable PowerPoint exports; dragging the slider produces one undo step. Figure font/angle menus stay inside the visible viewport on small screens.
GelFigure v0.6.10
Start here / 从这里开始
Download GelFigure-v0.6.10.html / 下载单文件 HTML
- Save this HTML file to your computer. / 保存到电脑。
- Double-click to open it in Firefox, Chrome, Edge or Safari. / 双击,用浏览器打开。
- Choose your gel image, check the labels and export. / 导入胶图,核对标注后导出。
No installation, ZIP extraction or GitHub account is needed. This one file is the complete offline tool. Use Save project to keep your work before closing.
不用安装、不用解压、不用注册 GitHub。一个 HTML 文件就是完整的离线工具。关闭前请用 保存项目 保留进度。
The ZIP and GitHub's “Source code” downloads are optional source distributions. Most users only need the HTML above.
ZIP 和 “Source code” 是可选的源码下载,普通使用只需要上面的 HTML 文件。
Changes / 更新内容
Simpler lane and marker editing, persistent custom marker libraries, and grayscale imports.
中文摘要
- 新导入图片默认灰度处理,仍可手动切换「保留原色」;项目、历史记录和样式恢复其已保存的显示模式。
- 自定义 Marker 独立本地缓存:手动新增及从项目、模板导入的型号和常用收藏,下次打开可继续使用;旧缓存自动迁移。常规存储失败时使用 IndexedDB 备用缓存,真实显示保存状态;支持备份、导入整个 Marker 库,不含胶图。同名 DNA 与蛋白型号不再互相覆盖,导入冲突保留两份定义。
- Marker 标签面板和条带大小面板可拖动标题移开,兼容鼠标和触屏;同一项目内再次打开保留位置,窗口变化时自动保持在屏幕内,也可聚焦标题后用方向键移动。
- 原图双击仅打开已有 Marker 泳道的编辑面板;普通泳道和空白处双击不再新增。电脑、手机均有“+ 泳道”入口,单击放置;校准模式仍可单击条带选大小。
- 参考 BlotFigure 重做泳道操作:默认等距联动,拖首尾实时均分,拖中间整体平移;左侧改条数立即生效,支持 1–60 条,手机在“设置”页。出图范围直接拖红框,移除左侧孔号范围选择。保留关闭联动 / Alt 单独微调,旧项目打开时不重新排布。
- “框内重新识别泳道和 Marker”直接展示,一次完成泳道和 Marker 识别;统一名称、分组、条件及 Marker 的对应关系,不再识别后强制重排位置。保留手动确认的型号和定位点,不重新添加已取消的 Marker。第一个候选也检查匹配覆盖率,未匹配到的预测条带默认不显示。
- 名称编辑、批量粘贴、字体与字号集中到成图;直接点击 Marker 数字可改字号、单位、标签位置、显示/隐藏、删除标记或取消 Marker。隐藏保留校准;删除移除定位点,可撤销或重新定位。
- Marker 改为引导点选泳道;“识别此泳道”只对齐当前所选型号,不影响其他 Marker。参考卡留在原图旁,不再打开大对话框;型号先预览再应用,选大小后点实际条带补标,也可先点实际条带再选大小。图例明确为示意,参考带颜色不冒充真实染料颜色。
Changed
- New image imports and exposure sets start in grayscale. Original-colour display remains available; projects, history and templates retain their saved display mode.
- Custom marker definitions and favourites now use an independent local library with an IndexedDB fallback, legacy migration and explicit save status. Detection waits for restored models. Portable JSON backup/import carries the whole custom catalogue and favourite IDs without images; import validates and merges without overwriting existing definitions. Same-name DNA/protein models coexist and changed definitions get distinct IDs.
- Draggable marker-label and band-size panels: move the title with a mouse or touch, or focus it and use arrow keys. Positions persist while editing the same project, stay within the visible viewport on resize/keyboard changes, and never enter figure state or exports.
- Double-click/double-tap an existing marker lane on the raw image to open its editor. Samples and gaps no longer add lanes; the explicit + Lane tool is available on desktop and phones. Single-band clicks open size controls only in calibration mode, leaving the image stable for double-clicking elsewhere.
- Linked lane guides with immediate count changes, live end-handle alignment, group translation and optional independent adjustment. Resizing preserves retained lane identities, conditions and marker anchors; alignment does not rediscover removed markers. Existing projects keep saved geometry.
- Crop directly with the red frame; lane count and combined lane/marker re-detection are visible in the left panel (Settings on phones). Re-detection uses a single mapping for names, conditions, groups and marker roles, keeps confirmed image-coordinate anchors and does not force an additional grid redistribution. Moving the crop alone does not reclassify lanes.
- Figure-side naming, bulk paste and typography, with compact marker popovers for font, units, persistent visibility, deleting a band mark and removing a marker role. Hidden labels keep calibration; deleted marks no longer supply anchors. Explicit removals survive subsequent crop detection.
- Guided marker-lane picking, selected-lane detection and a non-modal reference card beside the raw image. Catalogue previews are separate from applying a ladder; calibration uses actual source pixels. The card avoids phone instruction/selection bars. Reference diagrams use catalogue data and never appear in exports.
Fixed
- Apply coverage checks to the first automatic marker candidate as well as additional candidates, including the final joint model choice. Unobserved predicted bands are hidden initially; automatic identification still needs visual review.
- Prevent names and marker roles from drifting onto different lanes during crop re-detection, and cancel canvas gestures when the current project is replaced.
Validation
- Interaction coverage includes linked dragging, count/annotation identity, combined re-detection, negative marker choices, weak-candidate rejection, undo, IME, direct typography, non-modal references and manual anchors, phone layout and offline operation. Private DNA/protein regression images are checked separately from the public synthetic fixtures.
GelFigure v0.6.9
Start here / 从这里开始
Download GelFigure-v0.6.9.html / 下载单文件 HTML
- Save this HTML file to your computer. / 保存到电脑。
- Double-click to open it in Firefox, Chrome, Edge or Safari. / 双击,用浏览器打开。
- Choose your gel image, check the labels and export. / 导入胶图,核对标注后导出。
No installation, ZIP extraction or GitHub account is needed. This one file is the complete offline tool. Use Save project to keep your work before closing.
不用安装、不用解压、不用注册 GitHub。一个 HTML 文件就是完整的离线工具。关闭前请用 保存项目 保留进度。
The ZIP and GitHub's “Source code” downloads are optional source distributions. Most users only need the HTML above.
ZIP 和 “Source code” 是可选的源码下载,普通使用只需要上面的 HTML 文件。
Changes / 更新内容
Local project history with automatic caching and safe recovery.
中文摘要
- 参考 BlotFigure 增加本机历史项目:自动缓存原图、全部标注和多张曝光,切换胶图时保留上一个项目;支持列表恢复、改名、删除和缓存状态提示。
- 旧版单份草稿自动迁移,相同原图按 SHA-256 去重;缓存失败会提示保存项目文件,取消切换可继续编辑。桌面、手机和单文件离线版共用同一套实现。
Added
- Local project history, adapted from BlotFigure, with autosave status, rename/delete, desktop/start-screen/phone entry points, and restoration without re-detection. The cache preserves all exposures, source bytes, custom ladders, annotations, colours, fonts and reset state.
- Atomic migration of the previous single draft, content-addressed source deduplication and reference-aware deletion. Failed writes keep the previous saved copy; switching with unsaved work asks before discarding it. No runtime dependencies or network requests.
Validation
- Browser tests cover reload/restore, migration before a new import, shared-source deletion, exposure switching, queued writes, rename/IME, storage failure, responsive layout and the offline single HTML.
GelFigure v0.6.8
Start here / 从这里开始
Download GelFigure-v0.6.8.html / 下载单文件 HTML
- Save this HTML file to your computer. / 保存到电脑。
- Double-click to open it in Firefox, Chrome, Edge or Safari. / 双击,用浏览器打开。
- Choose your gel image, check the labels and export. / 导入胶图,核对标注后导出。
No installation, ZIP extraction or GitHub account is needed. This one file is the complete offline tool. Use Save project to keep your work before closing.
不用安装、不用解压、不用注册 GitHub。一个 HTML 文件就是完整的离线工具。关闭前请用 保存项目 保留进度。
The ZIP and GitHub's “Source code” downloads are optional source distributions. Most users only need the HTML above.
ZIP 和 “Source code” 是可选的源码下载,普通使用只需要上面的 HTML 文件。
Changes / 更新内容
Original-colour gels, system fonts and compact marker-unit headings.
中文摘要
- 保留原色/灰度:彩色胶图默认保留原色,蓝色染色胶和红绿 Marker 不再强制转为黑白。切换不重跑识别、不移动泳道或标注;原色模式不套用灰度的对比度、反色或 Gamma。PNG、彩色 TIFF、SVG、PPTX、未裁切图均保留颜色;旧项目维持原先外观。
- 五种系统字体:Arial、新罗马(Times New Roman)、Helvetica、Calibri、Cambria。排版、换行和导出同步使用所选字体,项目和样式保存选择;不下载或内嵌字体文件,缺少字体时由系统替代。
- Marker 单位标题更紧凑:bp/kb/kDa 放在胶图侧边上沿稍下方,不再跟着条件行上移,也不预留整行空白。按字体边界处理大小字号和浏览器差异,左右单位保持同一基线。
- 保持零运行依赖、单文件离线使用。原色显示和导出使用 8 位 RGB,原始文件字节不变;TIFF 内嵌 ICC 配置暂不处理,检测到会提示。
Added
- Original-colour/grayscale display choice. A separate 8-bit RGB display buffer keeps the existing high-precision grayscale detection data unchanged. RGB/palette TIFF input supports planar/endian variants and white-composited alpha; RGB TIFF values assume sRGB, with a notice for unapplied ICC profiles.
- Colour rotation, crop, splices, zoom insets, exposure thumbnails and native-crop PPTX share the same geometry. PNG, SVG, uncropped images and lossless LZW RGB TIFF retain colour. Projects, templates and undo preserve display mode; legacy projects remain grayscale. Logs distinguish active display processing from saved grayscale settings.
- Arial, Times New Roman, Helvetica, Calibri and Cambria use one shared system-font allowlist for canvas measurement, SVG, PowerPoint text/themes and imported styles. Font files are neither downloaded nor embedded; old or invalid selections fall back to Arial.
Fixed
- Unit headings stay beside the gel rather than above the condition matrix. Font metrics and a small size-dependent gap handle Firefox font substitution and mixed 4–14 pt labels while retaining compact normal spacing.
Validation
- Browser coverage includes colour TIFF fixtures, pixel/geometry agreement, colour exports, mode persistence, offline phone usage, five-font layout/export checks and 120 unit-heading layouts per engine. Independent Pillow/libtiff and Windows PowerPoint checks use synthetic data only.
GelFigure v0.6.7
Start here / 从这里开始
Download GelFigure-v0.6.7.html / 下载单文件 HTML
- Save this HTML file to your computer. / 保存到电脑。
- Double-click to open it in Firefox, Chrome, Edge or Safari. / 双击,用浏览器打开。
- Choose your gel image, check the labels and export. / 导入胶图,核对标注后导出。
No installation, ZIP extraction or GitHub account is needed. This one file is the complete offline tool. Use Save project to keep your work before closing.
不用安装、不用解压、不用注册 GitHub。一个 HTML 文件就是完整的离线工具。关闭前请用 保存项目 保留进度。
The ZIP and GitHub's “Source code” downloads are optional source distributions. Most users only need the HTML above.
ZIP 和 “Source code” 是可选的源码下载,普通使用只需要上面的 HTML 文件。
Changes / 更新内容
Editable PowerPoint figures with adjustable native image crops.
中文摘要
- 可编辑 PPTX 导出。 电脑和手机导出菜单新增 PowerPoint。打开即保持成图排版;泳道名、分组、Marker、箭头、框和括号等均为可编辑文字或图形;图片保存原生裁切范围,可在 PPT 中调整。拼接和放大图使用独立可裁切片段。文件内部包含完整的已处理图像,字体未嵌入,PPT 内调整裁切不会自动移动标注。
Added
- A dependency-free DrawingML/ZIP exporter reuses the SVG layout, keeps multiline group labels in one editable text box, embeds one full processed PNG shared by native crop objects, and works in the offline single HTML. Detection code is unchanged.
- PPTX checks inspect ZIP checksums, XML relationships, lossless full-image storage, editable objects, multiline/italic/rotated text, crop coordinates, spliced insets, desktop/phone delivery and offline exports. Optional native PowerPoint validation:
scripts/check-pptx.ps1.
Documentation
AGENTS.md(also loaded throughCLAUDE.md): architecture, data flow, rules, pitfalls, tests, release steps and open issues for developers and coding agents.
GelFigure v0.6.6
Start here / 从这里开始
Download GelFigure-v0.6.6.html / 下载单文件 HTML
- Save this HTML file to your computer. / 保存到电脑。
- Double-click to open it in Firefox, Chrome, Edge or Safari. / 双击,用浏览器打开。
- Choose your gel image, check the labels and export. / 导入胶图,核对标注后导出。
No installation, ZIP extraction or GitHub account is needed. This one file is the complete offline tool. Use Save project to keep your work before closing.
不用安装、不用解压、不用注册 GitHub。一个 HTML 文件就是完整的离线工具。关闭前请用 保存项目 保留进度。
The ZIP and GitHub's “Source code” downloads are optional source distributions. Most users only need the HTML above.
ZIP 和 “Source code” 是可选的源码下载,普通使用只需要上面的 HTML 文件。
Changes / 更新内容
Palette TIFFs load.
中文摘要
- 支持调色板(索引色)TIFF:以前会提示"暂不支持调色板 TIFF"。现在灰度颜色表、反相颜色表、伪彩色颜色表(按序号还原原始信号)和彩色扫描(如考马斯亮蓝)都能读,1 / 2 / 4 位的压缩存储也支持;导入时会提示做了什么转换。
Fixed
- Palette (indexed) TIFFs load instead of failing with "Palette TIFFs are not supported yet". The colour map decides the intensity: a grey map (also inverted) gives its own values; a false-colour map whose brightness rises or falls steadily with the index is read back as the index, i.e. the original signal; any other map is a colour picture (e.g. a scanned Coomassie gel) and gives its brightness plus the colour statistics used to recognise protein gels. 1-, 2- and 4-bit packed data are read too. A note on import says which conversion was used.
- TIFF load notes now reach the screen (they were dropped for TIFF files).
- Engine self-test: palette TIFFs (grey + LZW, inverted, false-colour, true-colour, 4-bit) and 1-bit data decoded pixel-exact.
GelFigure v0.6.5
Start here / 从这里开始
Download GelFigure-v0.6.5.html / 下载单文件 HTML
- Save this HTML file to your computer. / 保存到电脑。
- Double-click to open it in Firefox, Chrome, Edge or Safari. / 双击,用浏览器打开。
- Choose your gel image, check the labels and export. / 导入胶图,核对标注后导出。
No installation, ZIP extraction or GitHub account is needed. This one file is the complete offline tool. Use Save project to keep your work before closing.
不用安装、不用解压、不用注册 GitHub。一个 HTML 文件就是完整的离线工具。关闭前请用 保存项目 保留进度。
The ZIP and GitHub's “Source code” downloads are optional source distributions. Most users only need the HTML above.
ZIP 和 “Source code” 是可选的源码下载,普通使用只需要上面的 HTML 文件。
Changes / 更新内容
Labels that never collide: wrapping, line breaks and a font size per item.
中文摘要
- 分组文字不再重叠:排布分组横线时按文字的实际宽度计算,放不下会自动错开到上一行。
- 放不下时可选处理方式(版式 → 分组文字放不下时):自动换行(默认,保持字号,各行长度均衡)、缩小字号(不低于设定的最小字号)、保持一行。
- 手动换行:编辑分组文字时 Shift+Enter 换行,手机上点“↵ 换行”。
- 每个字段可单独设字号:编辑文字时下方出现字号条(A− / A+ / 默认);箭头、区域框、侧边括号、侧边文字在设置框里填字号;泳道名、Marker 标签可在版式里统一设置。
- 导出前检查改为看成图里实际最小的字号;样式模板会带上各项的字号和换行。
Added
- Group labels never overlap. Group lines are stacked by the real width of their text, not only by the lanes they span, so a label that would run into its neighbour moves up a tier.
- What to do with a group label wider than its line (Layout → "Group text too wide"): wrap it to the line (default; size kept, lines balanced, Chinese breaks between characters, other text after spaces, "-" or "/", italic kept across lines), shrink it down to a minimum size (default 5 pt), or keep one line.
- Typed line breaks in group labels: Shift+Enter in the editor, or "↵ New line" in the bar below it (phones). In the annotation list a break shows as ↵.
- Font size per item: a bar under the text editor sets the size of a group label or a +/− row (A− / A+ / Default); arrows, region boxes, side brackets and side text have a size field in their popover; lane names and marker labels each have one size under Layout. Empty = the figure font size.
- Pre-flight checks the smallest text actually printed (per-item sizes, shrunk labels) and can raise everything to 6 pt. Style templates and the processing log carry per-item sizes and line breaks.
GelFigure v0.6.4
Start here / 从这里开始
Download GelFigure-v0.6.4.html / 下载单文件 HTML
- Save this HTML file to your computer. / 保存到电脑。
- Double-click to open it in Firefox, Chrome, Edge or Safari. / 双击,用浏览器打开。
- Choose your gel image, check the labels and export. / 导入胶图,核对标注后导出。
No installation, ZIP extraction or GitHub account is needed. This one file is the complete offline tool. Use Save project to keep your work before closing.
不用安装、不用解压、不用注册 GitHub。一个 HTML 文件就是完整的离线工具。关闭前请用 保存项目 保留进度。
The ZIP and GitHub's “Source code” downloads are optional source distributions. Most users only need the HTML above.
ZIP 和 “Source code” 是可选的源码下载,普通使用只需要上面的 HTML 文件。
Changes / 更新内容
The phone layout, reworked for real use; plus resilient startup and the one-file download guide.
中文摘要
- 手机端完整可用:底部导航切换原图 / 成图 / 设置,右下角「导出」提供 PNG、TIFF、SVG、未裁切图、原始数据、处理日志和保存项目,可选 300 / 600 / 1200 dpi 并提示像素尺寸。顶部恢复撤销 / 重做,⋯ 里有打开、样式、说明和语言。
- 导出后长按保存:手机上导出的 PNG 直接显示成图片,长按即可存到相册或发给朋友(微信内也可用);支持系统分享时可存到「文件」。
- 原图手势:双指缩放、拖动;点泳道线或泳道号选中后,底部按钮可微调(按住连续移动)、剪除、删除;双击或「+ 泳道」加泳道。
- 成图:泳道名输入框固定在顶部,键盘「下一项」跳到下一条;「放大」看清小字;分组横线改为依次点首尾泳道名。
- 横屏、刘海屏安全区、键盘遮挡都做了适配;桌面版不变。
Added
- Phone layout, reworked. A bottom bar switches between Image, Figure and Settings, with Export at the bottom right; a one-line coach under the top bar names the next step; undo / redo are back on the top bar and a ⋯ sheet holds open image / project, save project, styles, help, language and reset. Landscape phones get compact bars; safe-area insets are respected.
- Export sheet on phones with every format (PNG, TIFF, SVG, uncropped image, original data, processing log, project), the resolution, the resulting pixel size and a warning when a phone browser could not draw the canvas.
- Exported files on phones open in a sheet instead of a silent download: a PNG is shown as a picture that can be long-pressed into Photos (a
data:URL, so it also works inside WeChat, where downloads do not), plus the system share sheet where available and a plain download. Inside WeChat the sheet explains how to open the page in a browser for other formats. - Touch editing on the image: pinch to zoom and pan; finger-sized hit areas; the lane number chips select (and drag) their lane; a selection bar nudges (hold to repeat), cuts / restores or deletes a lane, or edits / deletes a target-band arrow — what Delete,
Hand the arrow keys do on a computer. Double-tap or + Lane adds a lane. One-tap tools act on a clean tap, so the image can still be panned and zoomed first. - Touch editing on the figure: the lane-name editor is docked at the top with a Next key on the on-screen keyboard; popovers sit above the bottom bar and the keyboard and no longer pop the keyboard up by themselves; Zoom in enlarges the figure for small labels; group lines are made by tapping the first and the last lane name.
- Phone wording for the start screen, coach line, hints and help (no "drag here", "on the left" or keyboard shortcuts on a phone), and photo / camera input on the file picker.
tests/mobile.mjs: phone checks in every engine (emulated Pixel / iPhone), a WeChat check, and a desktop check that exports still download directly.
Documentation
- Put the single-file HTML download first in both READMEs, add illustrated English/Chinese opening guides, and explain how to save and reopen a project. The start screen, help dialog and future release notes also explain the one-file workflow. ZIP/source instructions are reserved for source users.
Fixed
- Startup with browser storage blocked. Reading a language preference no longer stops the whole interface when Firefox blocks cookies/site data or disables DOM storage. Preferences, favourites and custom ladders use temporary memory if storage is unavailable or full; the interface explains that these will not survive closing the page. Editing, image export and saving/opening project files remain available.
- Added cross-browser startup checks for blocked storage, a full quota, an offline folder and the single-file HTML without network access.
GelFigure v0.6.3
Mobile polish and a one-file offline build.
中文摘要
- 手机顶栏显示完整:撤销 / 重做、导出 PNG 等按钮收进设置抽屉;顶部只留品牌、打开图片、设置和语言。
- 新增单文件离线版:
GelFigure-v0.6.3.html可直接下载并双击打开,约 380 KB,不用解压。
Added
- Single-file offline version. scripts/bundle-onefile.mjs inlines css/ and js/ in load order into
dist/GelFigure.html(~380 KB). Release now attachesGelFigure-<tag>.htmlnext to the zip, so users can download one file that runs by double-click. - Release zip and notes mention the offline build; the workflow is compatible with future tags.
Fixed
- Top bar on phones no longer overflows: undo / redo, the file menu, export resolution and the split export button are hidden on narrow screens and their functions live in the settings drawer.
- Single-file bundle loads cleanly from file:// after inlining tiff.js and relaxing the script-src restriction only for that bundle.
- 2026-10-21
Mobile layout and touch support; same features as 0.6.1.
中文摘要
- 手机上也能用:窄屏改为单列布局,原图 / 成图 / 设置三个页签切换,设置面板变成全屏抽屉。
- 支持手势操作:手指可以移动泳道线、拖裁切框、画区域框,在成图上点泳道名、加 +/−。
- 桌面版界面和功能完全不变;三浏览器自测全过。
Added
- Responsive layout for phones (≤ 900 px). Settings panel becomes a full-screen drawer; raw image and figure share the work area through three tabs. Loading a gel on a phone lands on the figure so you see what was detected. "Start over" and image-fit shortcuts live in the panel. The top bar keeps only essentials.
- Touch interactions: crop edges, lane lines, region boxes and brackets can be moved with a finger; lane-name input, +/− cells and arrow taps work on the figure. Slider thumbs and text inputs use phone-friendly sizes; iOS no longer zooms when focusing a field.
- Window uses 100dvh with
viewport-fit=coverso the bottom of the page is not hidden behind the browser chrome. - Tests confirm Pointer Events work identically to mouse events on desktop; the full 49-check suite still passes in Chromium, Firefox and WebKit.
- 2026-10-20
Marker detection on purification gels, and a review of the whole interface.
中文摘要
- 纯化胶上不再把裂解液认成 Marker:多道图案相同的裂解液,以前会被额外当成 Marker;同一块胶上跑两个 Marker(如 1 kb + DL2000)仍然都能认出。
- 撤销 / 重做更可靠:撤销后再按 H 或方向键不会报错;弹窗里的"删除"只删它自己那一项。
- 导出更准确:图注提示只写成图上真的有的内容,放大倍数按实际渲染计算,蛋白胶写 molecular-weight markers;处理日志补全标记符号、括号范围等;TIFF 兼容更严格的读取器。
- 其他界面细节:按 Esc 取消画框不会误生成括号;空格不再拦截按钮;跨过剪除泳道的区域框不再变窄。
Fixed
- Marker lanes on purification gels. Several lysate lanes with the same pattern merge into about a dozen peaks, and some protein ladder fits that subset about as well as it fits the real marker lane on its own, so lysate lanes could be taken for extra markers. Marker lanes are now grown from the best lane: each further lane is matched together with the lanes already kept, their ladders held fixed, and stays only if most of its own bands and most of its ladder's bands on the gel are explained on that shared curve. A real second ladder (e.g. 1 kb + DL2000 on one gel) passes; a lysate lane does not. On a tie the outermost lane wins.
- The gel-type check after the markers are matched measured band count and width on the lane with the most bands, which on a protein gel is a lysate; it now uses the marker lane.
- Lanes cut out of the figure are never taken for markers.
- A lane named "M" by a first, discarded marker guess (before the gel type was settled) kept the name.
- After undo or redo, the selected lane or arrow could point past the end, so
Hor the arrow keys threw an error; open popovers kept editing the pre-undo state. Undo and redo now drop the selection and close open editors; so does loading an image. - Deleting from an arrow or annotation popover removed the item at its old position, i.e. the wrong one if another had been deleted meanwhile.
- Pressing Esc while dragging a region box created a side bracket.
- Space no longer swallows key presses on buttons and other controls (it pans the image elsewhere).
- A region box starting inside a cut-out lane collapsed to a sliver; a box label at the top edge of the gel overlapped the lane names or the +/− rows.
- A style template from a protein gel left existing DNA markers labelled in kDa.
- Custom ladders accepted the same size twice.
- Opening a project or draft could show the previous image's notices.
- Legend hints described annotations outside the crop and markers on cut lanes, gave the requested rather than the rendered zoom of an enlarged box, called protein markers "DNA ladders" when there were two, could stop the export with an error when a marker's ladder no longer existed, and did not explain
≈when two markers disagree. - The processing log now records the arrow symbol and side, the bracket side and its size range, and whether a box is dashed;
estimatedBpis left out on protein gels (estimatedSizeandsizeUnitcarry the value). - TIFF export: the LZW end code takes the width the reader expects at a code-width boundary (as libtiff writes it), and the description field is 7-bit ASCII with
\uescapes instead of?for γ, ≈ or Chinese file names. - Unlabelled buttons (export menu, help close, delete in the annotation list) have accessible names; the popover is announced as a dialog.
Added
- A synthetic purification gel (
Demo.makeProteinGel({ purification: true })) and interface checks for it, for undo with a selection, popover delete, and boxes over cut lanes (49 checks in total).
GelFigure v0.6.2
Mobile layout and touch support; same features as 0.6.1.
中文摘要
- 手机上也能用:窄屏改为单列布局,原图 / 成图 / 设置三个页签切换,设置面板变成全屏抽屉。
- 支持手势操作:手指可以移动泳道线、拖裁切框、画区域框,在成图上点泳道名、加 +/−。
- 桌面版界面和功能完全不变;三浏览器自测全过。
Added
- Responsive layout for phones (≤ 900 px). Settings panel becomes a full-screen drawer; raw image and figure share the work area through three tabs. Loading a gel on a phone lands on the figure so you see what was detected. "Start over" and image-fit shortcuts live in the panel. The top bar keeps only essentials.
- Touch interactions: crop edges, lane lines, region boxes and brackets can be moved with a finger; lane-name input, +/− cells and arrow taps work on the figure. Slider thumbs and text inputs use phone-friendly sizes; iOS no longer zooms when focusing a field.
- Window uses 100dvh with
viewport-fit=coverso the bottom of the page is not hidden behind the browser chrome. - Tests confirm Pointer Events work identically to mouse events on desktop; the full 49-check suite still passes in Chromium, Firefox and WebKit.
- 2026-10-20
Marker detection on purification gels, and a review of the whole interface.
中文摘要
- 纯化胶上不再把裂解液认成 Marker:多道图案相同的裂解液,以前会被额外当成 Marker;同一块胶上跑两个 Marker(如 1 kb + DL2000)仍然都能认出。
- 撤销 / 重做更可靠:撤销后再按 H 或方向键不会报错;弹窗里的"删除"只删它自己那一项。
- 导出更准确:图注提示只写成图上真的有的内容,放大倍数按实际渲染计算,蛋白胶写 molecular-weight markers;处理日志补全标记符号、括号范围等;TIFF 兼容更严格的读取器。
- 其他界面细节:按 Esc 取消画框不会误生成括号;空格不再拦截按钮;跨过剪除泳道的区域框不再变窄。
Fixed
- Marker lanes on purification gels. Several lysate lanes with the same pattern merge into about a dozen peaks, and some protein ladder fits that subset about as well as it fits the real marker lane on its own, so lysate lanes could be taken for extra markers. Marker lanes are now grown from the best lane: each further lane is matched together with the lanes already kept, their ladders held fixed, and stays only if most of its own bands and most of its ladder's bands on the gel are explained on that shared curve. A real second ladder (e.g. 1 kb + DL2000 on one gel) passes; a lysate lane does not. On a tie the outermost lane wins.
- The gel-type check after the markers are matched measured band count and width on the lane with the most bands, which on a protein gel is a lysate; it now uses the marker lane.
- Lanes cut out of the figure are never taken for markers.
- A lane named "M" by a first, discarded marker guess (before the gel type was settled) kept the name.
- After undo or redo, the selected lane or arrow could point past the end, so
Hor the arrow keys threw an error; open popovers kept editing the pre-undo state. Undo and redo now drop the selection and close open editors; so does loading an image. - Deleting from an arrow or annotation popover removed the item at its old position, i.e. the wrong one if another had been deleted meanwhile.
- Pressing Esc while dragging a region box created a side bracket.
- Space no longer swallows key presses on buttons and other controls (it pans the image elsewhere).
- A region box starting inside a cut-out lane collapsed to a sliver; a box label at the top edge of the gel overlapped the lane names or the +/− rows.
- A style template from a protein gel left existing DNA markers labelled in kDa.
- Custom ladders accepted the same size twice.
- Opening a project or draft could show the previous image's notices.
- Legend hints described annotations outside the crop and markers on cut lanes, gave the requested rather than the rendered zoom of an enlarged box, called protein markers "DNA ladders" when there were two, could stop the export with an error when a marker's ladder no longer existed, and did not explain
≈when two markers disagree. - The processing log now records the arrow symbol and side, the bracket side and its size range, and whether a box is dashed;
estimatedBpis left out on protein gels (estimatedSizeandsizeUnitcarry the value). - TIFF export: the LZW end code takes the width the reader expects at a code-width boundary (as libtiff writes it), and the description field is 7-bit ASCII with
\uescapes instead of?for γ, ≈ or Chinese file names. - Unlabelled buttons (export menu, help close, delete in the annotation list) have accessible names; the popover is announced as a dialog.
Added
- A synthetic purification gel (
Demo.makeProteinGel({ purification: true })) and interface checks for it, for undo with a selection, popover delete, and boxes over cut lanes (49 checks in total).