Automated Kymograph Track Filtering & Lake File Generation (Data_Vero_Kymographs)

Title: Automated Kymograph Track Filtering & Lake File Generation (kymograph轨迹自动过滤与Lake文件生成流程)

Step 1 – Track Filtering with 1_filter_track.py

(用1_filter_track.py进行轨迹过滤) 运行命令:

python 1_filter_track.py  

核心思路:对每个原始*_blue.csv轨迹文件,根据位置和寿命(lifetime)进行过滤,将保留的轨迹和被剔除的轨迹分别存放于两个目录:

  • filtered/ → 通过过滤条件保留下来的轨迹
  • separated/ → 不满足过滤条件被剔除的轨迹 共有74个原始*_blue.csv文件。 确保对每个原始blue文件,针对每种过滤条件输出对应文件:
  • 有轨迹通过过滤时,生成正常的filtered CSV(含数据行)
  • 无轨迹通过过滤时,生成占位placeholder文件,格式正确,仅含header和注释,无数据 此设计确保后续2_update_lakes.py能正常读取,并判定该条件下无轨迹,保证流水线完整一致。

Step 2 – Organize filtered CSVs and Fix p940 Naming Bug

(整理过滤结果CSV,修正文件名命名错误) 创建文件夹:

mkdir filtered_blue_position filtered_blue_position_1s filtered_blue_position_5s filtered_blue_lifetime_5s_only

移动对应过滤文件:

1) 绑定位置2.2–3.8 µm

mv filtered/*_blue_position.csv filtered_blue_position

2) 绑定位置且寿命≥1s

mv filtered/*_blue_position_1s.csv filtered_blue_position_1s

3) 绑定位置且寿命≥5s

mv filtered/*_blue_position_5s.csv filtered_blue_position_5s

4) 寿命≥5s不限制位置

mv filtered/*_blue_lifetime_5s_only.csv filtered_blue_lifetime_5s_only

每个目录保留74个CSV文件(包含真实轨迹和header-only占位符)。 修正p940命名bug(文件名中p940与lake文件中940不匹配),统一去除多余的p:

find filtered_blue_position -type f -name 'p*_p[0-9][0-9][0-9]_*.csv' -exec rename 's/_p([0-9]{3})/_$1/' {} +
(同理在其它三个目录执行相同命令)

保证轨迹CSV名与lake文件中kymograph名称一一对应。

Step 3 – Write filtered tracks back to lake files

(把过滤后轨迹写回lake文件) 运行命令更新lake文件(每组过滤条件对应一组输出目录):

python 2_update_lakes.py --merged_lake_folder lakes_raw --filtered_folder filtered_blue_position --output_folder lakes_blue_position_2.2-3.8 | tee blue_position_2.2-3.8.LOG

python 2_update_lakes.py --merged_lake_folder lakes_raw --filtered_folder filtered_blue_position_1s --output_folder lakes_blue_position_2.2-3.8_length_min_1s | tee blue_position_2.2-3.8_length_min_1s.LOG

python 2_update_lakes.py --merged_lake_folder lakes_raw --filtered_folder filtered_blue_position_5s --output_folder lakes_blue_position_2.2-3.8_length_min_5s | tee blue_position_2.2-3.8_length_min_5s.LOG

python 2_update_lakes.py --merged_lake_folder lakes_raw --filtered_folder filtered_blue_lifetime_5s_only --output_folder lakes_blue_length_min_5s | tee blue_length_min_5s.LOG

处理逻辑:

  • 通过kymograph名称匹配filtered_*目录对应CSV
  • 根据CSV内容重建blue轨迹文本,写回lake JSON
  • 分类日志输出三种情况:
  1. Updated:找到CSV且≥1条轨迹,更新保存轨迹
  2. CSV存在但无轨迹或读取失败,移除kymograph及关联H5链接
  3. 无匹配CSV,移除kymograph及H5链接
    • 日志统计统计各case数量、CSV总数、未使用“孤儿”CSV

最终实现每个replicate拥有多组更新的lake文件,各文件中kymographs、experiments[…].dataset、file_viewer的H5链接一致对应,确保完整性和可追踪性。


此流程自动化实现kymograph轨迹质量控制与lake文件二次生成,支持多样过滤条件,保证下游数据分析准确可靠。

Leave a Reply

Your email address will not be published. Required fields are marked *