Quero alguns modelos de formatos de arquivo diferentes que posso usar para testar meus scripts e identificar possíveis bugs no meu código.
Por exemplo, considere o nucleotídeo FASTA, um formato simples, mas frequentemente abusado, deseja que os modelos capturem formatos regulares e irregulares, como eu vi todos estes:
1) Sequência de linha única
>1ATG
2) Sequência multilinha
>1ATG
3) Letras maiúsculas e minúsculas em sequência
>1Atg
4) Ns e Xs (e possivelmente outras letras) em sequência
>1ANnxX
5) Cabeçalhos incomuns ( às vezes, caracteres não ASCI, precisam considerar a codificação)
>ATG > 汉字 ATG
6) Espaços em branco entre os registros
>1ATG>2ATG
7) Cabeçalhos duplicados
>1ATG>1ATC
8) Cabeçalhos ou sequências vazias (FASTA válido ?)
>>
9) Nenhum caractere de nova linha '\ n'
na última linha (pode bagunçar o arquivo concatenação)
>1A # < sem nova linha aqui
10) Diferentes caracteres de nova linha dependendo do sistema operacional
>1A # \ r \ n vs \ n
etc.
Deve haver modelos separados para nucleotídeo e proteína FASTA, e outros separados para FASTA alinhado.
Idealmente, também incluiria outros aspectos, como diferentes formatos de compressão (como .gz
, .bzip2
) e diferentes extensões de arquivo (como . fa
, .fasta
).
Nunca vi recursos que forneçam templates cobrindo estes, mas acho que seria útil. Claro que eu poderia construir meus próprios modelos, mas demoraria para capturar todas as variações prováveis dos formatos, especialmente para formatos de arquivo mais complexos.
Observe, não estou interessado apenas no formato FASTA, ele é um exemplo.
Observe também, eu conheço ferramentas (como o BioPython
) que devem lidar com muitos formatos bem, mas eles também podem ter bugs. De qualquer forma, na prática, às vezes, acabo analisando os arquivos diretamente porque não quero a sobrecarga ou a dependência de um pacote externo.
EDITAR: Por favor, não responda a esta pergunta para dizer que não não sei de nenhum desses recursos, nem eu, daí a questão. A resposta útil de bli mostra que há pelo menos um conjunto de testes que pode ser usado como ponto de partida. Eu sei que normalmente é fácil pesquisar a especificação de qualquer formato de arquivo específico.