Ir para o conteúdo principal
ActivePapers Armazene seus dados como documentos recomputáveis — para que qualquer resultado publicado possa ser reexecutado, verificado e preservado.

Alguns links neste site são links de afiliados: se você comprar através deles, podemos ganhar uma comissão sem custo adicional para você. Isso nunca afeta nossas recomendações. Consulte nossa divulgação de afiliados para mais detalhes. Divulgação de afiliados.

Tutorial do ActivePapers

Edição Python Edição JVM Edição Pharo Blog … biblioteca —> Tutorial do ActivePapers Este tutorial breve demonstra como inspecionar o conteúdo de um ActivePaper extrair código e documentação (incluindo gráficos) modificar parâmetros do cálculo modificar o código reexecutar os cálculos criar um ActivePaper do zero O arquivo de exemplo para este tutorial pode ser baixado do Figshare. Também é recomendável consultar a descrição no site do Figshare.

Você não precisa entender o que ele faz ou por quê, mas, se tiver interesse, fique à vontade para ler o artigo que descreve o trabalho, o qual trata do cálculo dos tensores de difusão translacional e rotacional de uma proteína em solução a partir de uma trajetória de Dinâmica Molecular. Copie o arquivo ActivePaper baixado para um diretório vazio. Abra uma janela de terminal e navegue até esse diretório. Ao digitar ls -l, você deverá ver algo como: -rw-r--r-- 1 hinsen staff 148133188 Sep 26 16:21 lysozyme_diffusion.ap ## Inspecionando o conteúdo O comando aptool ls produz uma longa lista de conjuntos de dados, começando com: code/correlation_functions code/diffusion_tensor code/identify_trajectories code/plots code/python-packages/fitting code/python-packages/molecular_structure code/python-packages/mosaic code/python-packages/quaternion code/python-packages/time_series code/python-packages/units code/thermal_averages code/trajectory_processing data/coordinate_trajectories/rotation_laboratory_frame_1 data/coordinate_trajectories/rotation_laboratory_frame_10 data/coordinate_trajectories/rotation_laboratory_frame_2 Mas como o aptool sabe qual arquivo ActivePaper você deseja examinar?

Bem, se houver apenas um arquivo com a extensão .ap no diretório atual, será esse que ele utilizará. É por isso que é recomendável usar um diretório separado para cada projeto ActivePaper. Se, por algum motivo, você não quiser fazer isso, poderá passar o nome do arquivo ActivePaper explicitamente: aptool ls -p lysozyme_diffusion.ap Você pode obter mais informações usando aptool ls -l, o que resulta em: 2013-06-07/09:13:05 calclet code/correlation_functions 2013-06-07/09:19:48 calclet code/diffusion_tensor 2013-06-07/10:02:29 calclet code/identify_trajectories 2013-06-12/08:03:48 calclet code/plots 2013-06-04/15:42:02 module code/python-packages/fitting 2013-05-02/15:11:53 module code/python-packages/molecular_structure 2013-06-14/15:46:18 reference code/python-packages/mosaic 2013-05-23/11:42:31 module code/python-packages/quaternion 2013-05-27/04:13:09 module code/python-packages/time_series 2013-05-02/15:12:07 module code/python-packages/units além de muitas outras linhas semelhantes.

A primeira coluna mostra a data e a hora da última modificação de cada conjunto de dados. A segunda coluna indica o tipo do conjunto de dados. A lista acima contém dois dos tipos destinados a código executável: calclet e module.

Existe um terceiro tipo, que não aparece nesta lista: importlet. Um module é exatamente o que um programador Python esperaria: um arquivo de código fonte Python a ser importado por outro código Python.

Os calclets e importlets são as duas variantes de scripts fornecidas pelo ActivePapers. O tipo mais comum é o calclet, que é um script Python com direitos restritos: ele não pode realizar nenhuma operação de E/S fora do arquivo ActivePaper em que está contido, o que significa que não pode acessar nem arquivos nem recursos de rede. Essas restrições garantem a reprodutibilidade (todos os dados de entrada estão garantidos dentro do ActivePaper) e protegem o usuário contra bugs e códigos maliciosos.

Relacionado: — Cursos interativos de Python e ciência de dados que você codifica diretamente no navegador.

No entanto, elas também significam que os calclets não podem ser usados para importar dados para o ActivePaper. É aí que entram os importlets: eles podem usar qualquer funcionalidade do Python e acessar qualquer recurso. Isso também significa que você não deve executar importlets de terceiros sem antes examiná-los.

A página [[Calclets]] explica como escrever calclets e importlets. Há mais um tipo de conjunto de dados na lista acima: o reference, que serve para referenciar conjuntos de dados em outros arquivos ActivePaper. Uma referência consiste em duas partes: uma referência ao arquivo e o nome do conjunto de dados dentro desse arquivo. A referência ao arquivo pode ser um DOI, para um arquivo publicado, ou um nome de arquivo local.

Obviamente, nomes de arquivos locais não fazem sentido no computador de outra pessoa; portanto, as referências locais são um pouco como os importlets: elas documentam a origem dos dados, mas não os disponibilizam. Vamos examinar as referências em nosso ActivePaper: aptool refs Encontramos um DOI e dez referências locais: doi:10.6084/m9.figshare.705829 local:lysozyme_spce_rbt_1 local:lysozyme_spce_rbt_10 local:lysozyme_spce_rbt_2 local:lysozyme_spce_rbt_3 local:lysozyme_spce_rbt_4 local:lysozyme_spce_rbt_5 local:lysozyme_spce_rbt_6 local:lysozyme_spce_rbt_7 local:lysozyme_spce_rbt_8 local:lysozyme_spce_rbt_9 O DOI refere-se à biblioteca pyMosaic, versão 0.1.1, conforme depositada no Figshare.

Vale a pena dar uma olhada: — Uma assinatura para certificados Python e de ciência de dados apoiados por universidades.

Os arquivos locais são as trajetórias de simulação analisadas no ActivePaper. Vamos obter mais informações sobre essas referências: aptool refs -v doi:10.6084/m9.figshare.705829 links: code/python-packages/mosaic local:lysozyme_spce_rbt_1 copies: data/center_of_mass data/orientation data/reference_structure data/time e assim por diante para os outros nove arquivos de entrada. Isso mostra que o DOI é usado em um link para o conjunto de dados de destino do arquivo (code/python-packages/mosaic), enquanto os arquivos locais foram usados como fonte para dados copiados para o próprio ActivePaper.

Assim, uma referência de cópia serve apenas para documentação; não há necessidade de ter uma cópia do arquivo referenciado. Voltando aos tipos de conjuntos de dados.

Existem mais alguns que não apareceram nas primeiras linhas de aptool ls -l; vamos observar algumas das linhas restantes: 2013-07-03/12:24:26 text documentation/README 2013-06-14/15:55:08 file documentation/c_rr_diagonals.pdf 2013-06-14/15:55:00 data data/correlation_function_integration_limit 2013-06-14/15:46:47 dummy data/coordinate_trajectories/rotation_laboratory_frame_1 Provavelmente você consegue adivinhar o que significa text. E file é exatamente o que um arquivo é no mundo Unix: uma sequência de bytes, sem nenhuma interpretação particular associada a eles.

Mais adiante, veremos como tal arquivo pode ser extraído. O significado de data talvez seja menos óbvio, especialmente como ele difere de um file. A resposta é que data é um conjunto de dados HDF5 arbitrário, caracterizado por um espaço de dados e um tipo de dados.

Pense nisso como um array, se preferir; na verdade, é bastante semelhante. Resta o dummy, que é um conjunto de dados inexistente. Mais precisamente, um conjunto de dados que deixou de existir. É um conjunto de dados que foi gerado por um calclet e depois removido explicitamente (usando aptool dummy ...) para reduzir o tamanho do arquivo. Se você quiser inspecioná-lo ou executar qualquer um dos calclets que o leem, precisará primeiro regenerá-lo reexecutando o calclet.

Então, vamos fazer isso: aptool update -v Isso atualiza tudo no ActivePaper que precisa ser atualizado: conjuntos de dados dummy, mas também conjuntos de dados desatualizados, ou seja, conjuntos de dados mais antigos que a versão atual do calclet que os produziu. A opção -v torna a execução detalhada, informando quais calclets são executados e por quê. Prepare-se para esperar um pouco; na minha máquina, a operação leva cerca de oito minutos.

Relacionado: — Uma biblioteca técnica profunda de livros, vídeos e treinamento ao vivo sobre computação científica.

Podemos ver que o tamanho do arquivo aumentou significativamente: ls -l -rw-r--r-- 1 hinsen staff 540352636 Oct 23 14:54 lysozyme_diffusion.ap Além disso, os conjuntos de dados anteriormente dummy agora são reais: aptool ls -l data/coordinate_trajectories/rotation_laboratory_frame_1 2013-10-23/14:45:29 data data/coordinate_trajectories/rotation_laboratory_frame_1 ## Extraindo os gráficos Se você observar a saída completa de aptool ls -l, notará alguns arquivos PDF sob documentation.

Para visualizá-los, extraia-os para arquivos reais: aptool checkout documentation Isso também trará o README, pois extrai tudo no grupo HDF5 documentation para um diretório local chamado, como você deve ter adivinhado, documentation. O grupo documentation em um ActivePaper destina-se a dados voltados para humanos; em geral, não é usado como entrada para cálculos.

Note que você pode, claro, fazer o checkout de arquivos individuais, por exemplo: aptool checkout documentation/README.txt O comando checkout extrai apenas os conjuntos de dados mais recentes que o arquivo correspondente no disco, caso este já exista. Assim, você pode editar arquivos extraídos sem que sejam sobrescritos. Veremos isso em ação imediatamente ao trabalhar com o código. ## Extraindo e modificando o código Em seguida, vamos examinar todo o código


Crie um portfólio de dados, projeto por projeto

Caminhos de ciência de dados baseados em projetos com um terminal guiado e conjuntos de dados reais