INNER CODE UNIT · Python

js

antigenomics/vdjtools · python/vdjtools/cli/__init__.py:182

    js = df[j_col].to_list() if j_col and j_col in df.columns else [None] * len(seqs)

    # One batched native call per kind, never one call per sequence: both batch entry points
    # release the GIL and thread across the input. Detection is per sequence, so the two kinds are
    # interleaved -- split by index, score each group, scatter back into input order.
    pg: list[float] = [0.0] * len(seqs)
    groups: dict[bool, list[int]] = {True: [], False: []}
    for i, s in enumerate(seqs):
        if s:
            groups[_is_nt(s) if seq_type == "auto" else (seq_type == "nt")].append(i)
    for is_nt, idx in groups.items():
        if not idx:
            continue
        sub, subv, subj = [seqs[i] for i in idx], [vs[i] for i in idx], [js[i] for i in idx]
        got = (native.pgen_nt_batch(m, sub, subv, subj) if is_nt else
               native.pgen_aa_batch(m, sub, subv, subj, mismatches=mismatches))
        for i, p in zip(idx, got):
            pg[i] = p

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…