一键导入
sequence-properties
Compute GC content, molecular weight, melting temperature, isoelectric point, and instability index for DNA, RNA, and protein sequences.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Compute GC content, molecular weight, melting temperature, isoelectric point, and instability index for DNA, RNA, and protein sequences.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Pass work between ORS skills with a Material Passport — a structured JSON envelope that captures inputs, outputs, decisions, and provenance so a downstream skill can resume without re-deriving context. Use when one skill produces output that another skill must consume, especially across category boundaries (e.g. analysis → writing, sequencing → statistics).
Discover and maintain `## Cross-references` between ORS skills. Given a new or edited skill, suggest related skills (same category, shared tags, complementary workflows). Verify all xref slugs resolve to existing SKILL.md files. Use when adding a new skill, when sibling skills move, or when an audit reveals dangling xrefs.
7-mode AI failure-mode checklist applied before publishing any ORS artifact (skill, manuscript section, dataset card, agent output). Catches: fabricated citations, silent failures, scope creep, missing provenance, unsupervised writes, version drift, hallucinated APIs. Use as the final pass before any 'publish', 'release', 'merge', or 'finalize' action.
Version, changelog, and marketplace workflow for ORS skills. Semver discipline, breaking-change protocol, marketplace.json update, README refresh, and the v0.X.Y → v1.0.0 graduation criteria. Use when bumping a skill version, publishing a release, or upgrading the ORS package version.
Author a new ORS skill from scratch using the v0.4.0 schema. Produces a valid SKILL.md (frontmatter + metadata + sections) following spec/skill-format.md, guided by spec/author-guide.md, validated by scripts/validate-skills.py. Use when a user says 'add a new skill', 'create a skill for X', or 'I want to contribute a skill'.
Process many FASTA/FASTQ/GenBank files in batch — merge, split, convert, summarize, organize — using Biopython 1.83+.
| name | sequence-properties |
| description | Compute GC content, molecular weight, melting temperature, isoelectric point, and instability index for DNA, RNA, and protein sequences. |
| license | MIT |
primer3-py (handles salt, oligo concentration, mismatches).bedtools nuc or computeGCBias (deepTools).pyhmmer.biopython>=1.83Bio.SeqUtils.ProtParamBio.SeqUtils (nt utilities)ProtParam is for protein, the rest of Bio.SeqUtils for DNA/RNA.from Bio.Seq import Seq
from Bio.SeqUtils import gc_fraction
from Bio.SeqUtils.MolecularWeight import MolecularWeight
"
s = Seq("ATGCATGCATGCATGCATGC")
print(f"length: {len(s)}")
print(f"GC: {gc_fraction(s):.3f}") # 0.5
mw_double = MolecularWeight(s) # double-stranded MW
print(f"ds MW: {mw_double:.1f} Da")
For very short oligos (<14 nt), Tm is roughly 2 * (A+T) + 4 * (G+C):
def tm_wallace(seq: str) -> float:
s = seq.upper()
return 2 * (s.count("A") + s.count("T")) + 4 * (s.count("G") + s.count("C"))
Use primer3-py for production work — see the primer-design reference. The
nearest-neighbor model (SantaLucia 1998) is the 2026 standard.
# In production: primer3-py
import primer3
tm = primer3.calc_tm("ATGCATGCATGCATGC")
from Bio.Seq import Seq
from Bio.SeqUtils.ProtParam import ProteinAnalysis
pa = ProteinAnalysis(str(Seq("MGEKLPVRLNVMGYEEDILKQHKWLRNVQTLKDGIVFVD")))
print(f"length: {len(pa.sequence)}")
print(f"MW: {pa.molecular_weight():.1f} Da")
print(f"pI: {pa.isoelectric_point():.2f}")
print(f"instability_index: {pa.instability_index():.1f}") # <40 stable
print(f"aromaticity: {pa.aromaticity():.3f}")
print(f"gravy: {pa.gravy():.3f}") # Grand average of hydropathy
print(pa.get_amino_acids_percent())
# {'A': 0.07, 'C': 0.02, ...}
print(pa.secondary_structure_fraction()) # (helix, turn, sheet)
from Bio.Seq import Seq
from Bio.SeqUtils import gc_fraction
def gc_window(seq: Seq, window: int = 100, step: int = 50):
s = str(seq)
out = []
for i in range(0, len(s) - window + 1, step):
out.append((i, gc_fraction(Seq(s[i:i+window]))))
return out
CpG O/E = (CpG count) / (C count × G count / N). Used in vertebrate
methylation studies.
def cpg_oe(s: str) -> float:
s = s.upper()
c = s.count("C")
g = s.count("G")
cg = s.count("CG")
n = c + g
if c == 0 or g == 0 or n == 0:
return 0.0
return cg * n / (c * g)
gc_fraction excludes N automatically. If you need a denominator that
includes Ns, normalize manually:
def gc_with_n(s: str) -> float:
s = s.upper()
denom = sum(1 for b in s if b in "ACGTNU")
gc = sum(1 for b in s if b in "GC")
return gc / denom if denom else 0.0
Bio.SeqUtils.GC vs gc_fraction. In 1.80+, the canonical function is gc_fraction(seq). Older code uses GC(seq). The new function returns a fraction; old returned a percentage.primer3-py handles this.len(seq) == len(str(seq)).ProteinAnalysis accounts for this.| Need | Tool |
|---|---|
| Production primer Tm | primer3-py |
| Genome-wide GC | bedtools nuc, deeptools computeGCBias |
| Protein domain + pI + GO | InterProScan, UniProt |
| Codon usage | Bio.SeqUtils.CodonUsage (see codon-usage skill) |
ors-bioinformatics-sequence-codon-usage, ors-bioinformatics-sequence-reverse-complement.bio-sequence-properties (bioSkills-main/sequence-manipulation/sequence-properties).Other skills in this category: