Pular para o conteúdo
Skillpedia
Machine learning51 mil · #1937

polars-bio

Ajuda seu agente a realizar operações em intervalos genômicos e ler/escrever formatos de dados bioinformáticos. É útil para análises genômicas e junções de dados.

O que ela faz

Esta ferramenta ajuda a comparar e manipular sequências genômicas (como genes em um DNA). Ela permite encontrar quais sequências se sobrepõem, quais são as mais próximas, juntar sequências contínuas, calcular a cobertura e realizar outras operações.

Quando usar

  • ✓Comparar listas de genes para ver quais são comuns.
  • ✓Encontrar regiões de DNA que não foram cobertas por sequenciamento.
  • ✓Juntar pedaços de sequências genômicas que se sobrepõem.

Exemplo do que pedir para a IA

“Quais genes na lista A se sobrepõem com os genes na lista B?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/polars-bio/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/polars-bio/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta lê dados genômicos em formatos comuns (como BED, VCF, BAM) e os organiza em tabelas. Em seguida, aplica operações matemáticas para comparar as posições dessas sequências genômicas.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add K-Dense-AI/scientific-agent-skills --skill polars-bio

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/main/skills/polars-bio/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

polars-bio

Use esta habilidade para aritmética de intervalos genômicos e I/O de arquivos de bioinformática através do Polars e DataFusion. Ela tem como alvo polars-bio 0.36.0, testada com Polars 1.44.2 no Python 3.13. O pacote upstream requer Polars >=1.37.1, PyArrow >=23.0.1,<25, DataFusion >=53,<54 e polars-config-meta >=0.3.2,<1. Mantenha este ambiente separado de pacotes que necessitam de releases incompatíveis de Arrow ou DataFusion.

uv pip install "polars-bio==0.36.0" "polars==1.44.2"
# Optional pandas interoperability (requires pandas >=3):
uv pip install "polars-bio[pandas]==0.36.0" "polars==1.44.2"

Verifique novas releases contra as notas oficiais de release e requisitos do pacote. Os exemplos abaixo com arquivos nomeados são templates: substitua arquivos reais e verifique seus esquemas. O exemplo de intervalo sintético e os pequenos round trips de formato local foram executados durante esta revisão.

Fluxo de Trabalho

  1. Registre a montagem, a nomenclatura de contigs, a convenção de coordenadas, a política de strand e a unidade de análise. Nomes de contigs idênticos não provam montagens idênticas.
  2. Escolha leitores por formato; BCF tem seu próprio leitor. Inspecione esquemas e metadados de origem antes de selecionar atributos ou genótipos.
  3. Normalize todas as entradas para um sistema de coordenadas e valide seus limites.
  4. Escolha pares de saída, contagens de hits, bases cobertas ou profundidade de leitura deliberadamente.
  5. Filtre e projete preguiçosamente, então inspecione um pequeno resultado antes de escalar.
  6. Valide contagens e limites de saída contra um fixture computável manualmente; preserve IDs, metadados de coordenadas e proveniência ao salvar resultados.

Contrato de Coordenadas

O padrão é 1-based fechado, incluindo leituras BED convertidas. Use use_zero_based=True em leitores genômicos para saída 0-based semiaberto. Este argumento converte posições; não é apenas um rótulo de metadados. Por exemplo, BED [0,10) se torna [1,10] por padrão e permanece [0,10) com o override. O POS do texto SAM é 1-based, enquanto BAM armazena sua posição de alinhamento internamente como 0-based. Ambos os leitores expõem a convenção de saída solicitada.

Para DataFrames construídos manualmente, rótulos de metadados existem números e não os converte. Converter fechado [s,e] para semiaberto significa s-1,e. Defina metadados apenas após a conversão. Nunca converta duas vezes.

import polars as pl
import polars_bio as pb

pb.set_option("datafusion.bio.coordinate_system_zero_based", True)
pb.set_option("datafusion.bio.coordinate_system_check", True)

query = pl.DataFrame({
    "query_id": ["q1", "q2", "q3"],
    "chrom": ["chr1", "chr1", "chr2"],
    "start": [0, 10, 0], "end": [10, 20, 10],
})
target = pl.DataFrame({
    "chrom": ["chr1", "chr1"], "start": [5, 8], "end": [12, 15],
})
for frame in (query, target):
    frame.config_meta.set(coordinate_system_zero_based=True)

pairs = pb.overlap(query, target).collect()
counts = pb.count_overlaps(query, target).collect().sort("query_id")
covered = pb.coverage(query, target).collect().sort("query_id")
assert pairs.height == 4
assert counts["count"].to_list() == [2, 2, 0]
assert covered["coverage"].to_list() == [5, 5, 0]

Requer contigs não nulos, posições inteiras e intervalos de comprimento positivo válidos (0 <= start < end na forma semiaberta), dentro da montagem escolhida. Não silenciosamente transforme pontos/inserções em intervalos não vazios: escolha a convenção biológica. Metadados de entrada incompatíveis geram CoordinateSystemMismatchError; metadados ausentes avisam e usam a configuração global por padrão, ou geram MissingCoordinateSystemError em modo estrito. Inspecione pb.get_metadata(frame) após transformações e SQL. Veja configuração.

Escolha a operação

Pergunta Operação Interpretação
Quais pares de intervalos se intersectam? overlap(a, b) Inner join de pares; uma consulta pode aparecer repetidamente
Quais linhas de consulta têm algum hit? overlap(a, b, overlap_output="left", distinct_output=True) Um hit por linha de consulta original; linhas de entrada duplicadas mantêm a identidade
Quantos intervalos alvo intersectam cada consulta? count_overlaps(a, b) Contagem de registros alvo, incluindo zero para nenhum hit
Quantas bases de consulta são cobertas? coverage(a, b) Comprimento da união das interseções alvo; não profundidade de leitura
Quais alvos estão mais próximos? nearest(a, b, k=1) Até k vizinhos, com alvo/distância anulável para nenhum candidato

…

Perguntas frequentes

O que são 'intervalos genômicos'?

São trechos de DNA definidos por um ponto de início e um ponto de fim em um cromossomo ou sequência maior.

Quais formatos de arquivo ela suporta?

Ela suporta vários formatos usados em biologia molecular, como BED, VCF, BAM, GFF, GTF, FASTA e FASTQ.

Como ela lida com a contagem de posições (começando em 0 ou 1)?

Por padrão, ela usa um sistema de contagem de 1 a N (fechado), mas pode ser configurada para usar o sistema de 0 a N (meio aberto) se necessário, o que é comum em algumas ferramentas.

Detalhes

Descrição original do autor

Performs genomic interval overlap, nearest, merge, coverage, complement and subtraction on Polars DataFrames, and reads or writes BED, VCF, BCF, BAM, CRAM, GFF, GTF, FASTA and FASTQ data. Use for coordinate-aware genomic joins, read-depth analysis, lazy bioinformatics I/O, SQL queries or migration from bioframe.

repo: K-Dense-AI/scientific-agent-skills

Popularidade

Estrelas no GitHub
51 mil
Posição no ranking
#1937
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas