← warin.me · Data Science and EngineeringEnglish

BIOINFORMATICS · FEATURE ENGINEERING · COMPUTE ECONOMICS

Sequence อาจเก็บได้สั้น แต่ Feature บางชนิดมีราคาแพงทุกครั้งที่ต้องค้นพบใหม่

Lab นี้ติดตาม DNA, RNA และ Protein Sequence ผ่าน Composition, k-mer, Alignment, Structure และ Learned Embedding นักศึกษาจะคำนวณทั้ง Algorithmic Complexity และ Operational Cost ก่อนออกแบบ Feature Store ที่ใช้หลักฐานซ้ำได้โดยไม่สูญเสีย Provenance

01

แทนข้อมูล

เลือก Feature ที่รักษาสัญญาณชีวภาพที่มีประโยชน์

02

คิดต้นทุน

เชื่อมความยาว Sequence และขนาด Dataset กับ Runtime

03

ใช้ซ้ำ

ไม่คำนวณหลักฐาน Deterministic ซ้ำทุกโมเดล

04

สืบย้อน

Version Tool, Database, Parameter และ Sequence Identity

01 · COMMON FEATURE LANDSCAPE

ยิ่ง Feature ขยับเข้าใกล้ Structure และ Context มากขึ้น โดยทั่วไปยิ่งต้องใช้การคำนวณมากขึ้น

ไม่มี Feature Family ใดดีที่สุดเสมอ Composition ราคาถูกแต่หยาบ Alignment และ Structure เพิ่มบริบทชีวภาพ ส่วน Learned Embedding อาจจับ Pattern ซับซ้อนได้ แต่ต้องใช้ Model Inference และ Version อย่างระมัดระวัง

DNA / RNA · SEQUENCE

องค์ประกอบ

GC%, AT/GC ratio, nucleotide frequency, sequence length, ambiguity rate

O(n)อ่านหนึ่งรอบ
DNA / RNA / PROTEIN

k-mer / n-gram

จำนวนหรือความถี่ของ Substring ความยาว k

O(n + |Σ|k)เวลาและ Dense Output
PROTEIN · SEQUENCE

Composition และ Physicochemical

AAC, dipeptide, molecular weight, charge, hydrophobicity, entropy

O(n)หลังเตรียม Lookup Table
SEQUENCE · REFERENCE

จาก Alignment

identity, coverage, score, conserved position, profile/PSSM-like evidence

O(mn)Exact Pairwise DP; Database Search มักใช้ Heuristic
RNA · STRUCTURE

โครงสร้างทุติยภูมิ

MFE, paired fraction, stem/loop counts, ensemble-derived measures

O(n³) time · O(n²) memoryClassical DP Baseline
PROTEIN / NUCLEIC ACID

Language-model Embedding

per-token or pooled representation from a versioned pretrained model

Attention ≈ O(n²)Standard Self-attention; ขึ้นกับ Architecture
GENOME · ANNOTATION

บริบทจีโนม

gene distance, exon/intron overlap, conservation, regulatory annotation

O(log R + h)ตัวอย่าง Indexed Interval Query; ขึ้นกับ Implementation
MOLECULE · NETWORK

กราฟและปฏิสัมพันธ์

degree, centrality, neighborhood aggregation, interaction embeddings

O(V + E) → higherขึ้นกับ Graph Algorithm และจำนวน Layer
● มักราคาถูกต่อ Sequence● พึ่ง Context หรือ Reference● ใช้ Compute/Memory สูง

02 · SEE THE CALCULATION

Feature Vector เป็นผลของหลาย Algorithm ไม่ใช่ Extraction ขั้นเดียว

ภาพใช้ RNA Sequence หนึ่งเส้น Cheap Scan ใช้ Input ร่วมกัน แต่ Alignment, Folding และ Embedding เรียก Engine และ Reference Version แยกกัน

RNA_001 · n = 300AUGGCUAUGC…GGAUACsha256: 91b…e42
SCANGC% · length · k-mer≈ O(n)
ALIGNreference similarityDP worst case O(mn)
FOLDMFE · paired fractionclassical O(n³)
EMBEDmodel vectorattention ≈ O(n²)
FEATURE VECTOR v3[0.57, 300,
0.021, …,
-84.2, 0.61,
e₁ … e₇₆₈]
nO(n)300 → 600 ≈ 2× work
O(n²)300 → 600 ≈ 4× work
O(n³)300 → 600 ≈ 8× work

03 · COMPLEXITY IS NOT WALL-CLOCK TIME

Big-O อธิบายการเติบโต ส่วน Benchmark อธิบายเวลารอ

Runtime ยังขึ้นกับ Implementation, Hardware, Batching, I/O, ขนาด Reference Database, Model Size และการกระจายความยาว Sequence ตารางจึงแยก Asymptotic Shape ออกจาก Measurement Plan

Featureตัวแปร InputTimeMemory / Outputหลักฐานที่ต้องวัด
GC / AACn = sequence lengthO(n)O(1) or fixed vectorSequence/s ต่อ CPU Core
k-mer countn, k, alphabet |Σ|O(n)Sparse O(min(n,|Σ|ᵏ)); Dense O(|Σ|ᵏ)k · sparsity · serialization
Pairwise alignmentm, nO(mn)Classic Matrix O(mn); Variant อื่นอาจต่างcell updates/s · traceback
Database searchquery + databaseHeuristic / ขึ้นกับข้อมูลindex + hitsDB Version · Size · Sensitivity Parameter
RNA foldingnO(n³)O(n²)length bins · mode · constraints
Transformer embeddingn, hidden d, layers LAttention O(Ln²d) โดยสรุปAttention Activation โตแบบกำลังสองGPU · batch · precision · pooling

04 · INTERACTIVE COST SCENARIO

Lab จะจ่ายค่าคำนวณ Deterministic Feature เดิมกี่ครั้ง

นี่คือ Illustrative Capacity Model ไม่ใช่ Hardware Benchmark ให้แทน Baseline Seconds ด้วยค่าที่วัดจาก Tool, Sequence-length Bin และเครื่องจริง

Build ครบหนึ่งรอบเวลาขนานแบบ Idealized
ไม่มี Feature Store
คำนวณครั้งเดียวแล้วใช้ซ้ำยังไม่รวมค่าอ่าน Feature ซึ่งมักเล็กกว่ามาก
การคำนวณซ้ำที่หลีกเลี่ยงได้
อ่านค่าประมาณให้ถูก

Calculator สมมติว่าทุก Experiment คำนวณทุก Sequence ใหม่ Worker Scale สมบูรณ์ และไม่มี Queue, I/O หรือ Failure ระบบจริง Scale ไม่เรียบเช่นนี้ จุดประสงค์คือทำให้เห็นการคูณ: จำนวน Sequence × ต้นทุนต่อ Sequence × จำนวน Experiment

05 · WITHOUT A FEATURE STORE

Notebook กลายเป็น Compute Scheduler ที่มองไม่เห็น

นักศึกษาหรือโมเดลแต่ละชุดสร้าง Feature ใหม่ด้วย Tool และ Parameter ต่างกัน เวลารอเพิ่ม ผลลัพธ์แยกออก และไม่มีใครยืนยันได้ว่าสองคอลัมน์เปรียบเทียบกันจริงหรือไม่

100,000 sequencessame immutable input
Model A → fold + align + embed
Model B → fold + align + embed
Model C → fold + align + embed
Student 01…40 → repeat again
N × Eงานคำนวณบวก Version ไม่ตรงและการรันใหม่หลังล้มเหลว
01

CPU/GPU-hour ซ้ำ

Folding หรือ Embedding ที่ให้ผลแน่นอนถูกสร้างใหม่ทุก Experiment

02

Reference Drift

Feature จาก Database Search เปลี่ยนเงียบ ๆ หลัง Reference Database Update

03

Tool Drift

Library, Model Weight หรือ Folding Parameter ต่างกันข้าม Notebook

04

Queue ขยายตัว

นักศึกษา 40 คนส่ง GPU Job เดียวกันแทนการใช้ Approved Build ร่วม

05

กลับมาทำต่อยาก

งานล้มที่ 80% อาจต้องเริ่มใหม่เพราะไม่ได้ Persist Intermediate Feature

06

หลักฐานสืบย้อนไม่ได้

Model Artifact ยังอยู่ แต่ Environment ที่สร้าง Feature หายไป

06 · BIOINFORMATICS FEATURE STORE ARCHITECTURE

เก็บหลักฐานเพื่อใช้ซ้ำ พร้อมรักษาวิธีที่สร้างหลักฐานนั้น

Sequence Identity เพียงอย่างเดียวไม่พอเป็น Key เพราะ Feature ยังขึ้นกับ Algorithm, Parameter, Tool/Container, Model Weight และ Reference Database Version

SEQUENCE REGISTRYsequence_id · checksum · alphabet · length
FEATURE JOBdefinition + parameters + environment
OFFLINE FEATURE STOREParquet/table · partition · vector index
REFERENCE REGISTRYdatabase/model/tool versions
METADATA & LINEAGEowner · created_at · code commit · quality
CONSUMERStraining · analysis · API · classroom
ภาพที่ 1 เก็บทั้งค่าและ Provenance ผู้ใช้ขอ Immutable Feature Version แทนการรัน Notebook Cell ที่ซ่อนกระบวนการ
FEATURE CACHE KEYSHA256(sequence) + feature_name + feature_version + parameters_hash
+ tool_container_digest + reference_database_version + model_weights_digest

07 · LAB: DEFINE AND STORE CHEAP FEATURES

เริ่มจาก Sequence Feature ที่โปร่งใส แล้วเก็บ Contract ให้ครบ

ตัวอย่าง Python สร้าง DNA/RNA Composition แบบ Fixed Schema และ Sparse k-mer Count มีขนาดเล็กพอให้ตรวจสอบก่อนนำเข้า Workflow Engine

from collections import Counter
from hashlib import sha256

def sequence_features(sequence: str, k: int = 3) -> dict:
    seq = sequence.upper().replace("U", "T")
    counts = Counter(seq)
    valid = sum(counts[b] for b in "ACGT")
    kmers = Counter(seq[i:i+k] for i in range(len(seq)-k+1)
                    if set(seq[i:i+k]) <= set("ACGT"))
    return {
        "sequence_sha256": sha256(seq.encode()).hexdigest(),
        "length": len(seq),
        "gc_fraction": (counts["G"] + counts["C"]) / valid if valid else None,
        "ambiguous_fraction": 1 - valid / len(seq) if seq else None,
        "k": k,
        "kmer_counts": dict(kmers),
        "feature_version": "sequence_basic_v1"
    }
ทดสอบ ContractEmpty Sequence, All-N, Lowercase, RNA U, Invalid Symbol, k > n, Input ซ้ำ และ Checksum Stability

08 · MATERIALIZATION POLICY

เก็บสิ่งที่แพง ใช้ซ้ำ และสร้างซ้ำได้ ไม่ใช่เก็บทุก Experimental Column ตลอดไป

Store มีต้นทุน Storage และ Governance ของตนเอง ให้ตัดสินจาก Compute-to-read Ratio, จำนวนการใช้ซ้ำ, Determinism, ขนาด, Privacy และความถี่ในการ Invalidate

Featureควรเก็บ?เหตุผลสร้างใหม่เมื่อ
GC%, AAC, lengthมักเก็บ ขนาดเล็กราคาถูกแต่ใช้ซ้ำสูงและ Schema คงที่Definition เปลี่ยน
k-mer sparse vectorมักเก็บการใช้ซ้ำอาจคุ้มขนาด แบ่งตาม k/Alphabetk, normalization, filtering
Alignment / profileควรพิจารณามากReference Search แพงและไวต่อ VersionDB/tool/parameters change
RNA structureควรพิจารณามากBaseline กำลังสามทำให้การใช้ซ้ำมีคุณค่าenergy model/constraints/tool
Embeddingเก็บเมื่อใช้ซ้ำGPU Inference และ Model Loading แพง แต่ Vector อาจใหญ่weights/tokenizer/pooling
Transform สำรวจครั้งเดียวอาจไม่เก็บใช้ซ้ำน้อยอาจไม่คุ้ม Storage และ Governanceคำนวณใหม่เมื่อจำเป็น

09 · STUDENT CHALLENGES

เปลี่ยน Computational Biology ให้เป็นการตัดสินใจทาง Data Engineering ที่วัดได้

01

Benchmark GC, 3-mer และ 6-mer แยกตาม Length Bin พร้อมแยก CPU Time จาก Serialization

02

วัด RNA Folding ที่สี่ความยาว แล้วตรวจว่าการเติบโตใกล้ n³ บนเครื่องที่ใช้หรือไม่

03

ออกแบบ Feature Key สำหรับ BLAST-derived Feature ให้มี Database และ Parameter Version

04

คำนวณ CPU/GPU-hour ของ 50 Experiments แบบมีและไม่มี Reuse พร้อมสมมติฐาน Queue และ Failure

05

สร้าง Parity Test ว่า Stored Embedding ตรงกับค่าที่คำนวณใหม่ภายใน Tolerance ที่ระบุ

06

เขียนนโยบายเลิกเก็บ Embedding 768 มิติที่ไม่มีผู้ใช้ โดยยัง Reproduce Model เดิมได้

THE CENTRAL IDEA

Feature Store ไม่ได้ทำให้ชีววิทยาง่ายลง แต่ป้องกันไม่ให้เราจ่ายค่าหลักฐานเชิงคำนวณเดิม และตีความต่างกัน ซ้ำแล้วซ้ำอีก