Tutorial de ActivePapers
Tutorial de ActivePapers Este breve tutorial muestra cómo inspeccionar el contenido de un ActivePaper, extraer código y documentación (incluidos gráficos), modificar los parámetros del cálculo, alterar el código y volver a ejecutar los cálculos, así como crear un ActivePaper desde cero. El archivo de ejemplo para este tutorial se puede descargar desde Figshare.
También es recomendable consultar la descripción en el sitio de Figshare. No necesita entender qué hace ni por qué, pero si le interesa, no dude en leer el artículo que describe el trabajo, el cual trata sobre el cálculo de los tensores de difusión traslacional y rotacional de una proteína en solución a partir de una trayectoria de Dinámica Molecular. Copie el archivo ActivePaper descargado en un directorio vacío. Abra una ventana de terminal y vaya a ese directorio.
Al escribir ls -l, debería ver algo similar a esto: -rw-r--r-- 1 hinsen staff 148133188 Sep 26 16:21 lysozyme_diffusion.ap ## Inspección del contenido El comando aptool ls genera una larga lista de conjuntos de datos, comenzando con: * 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 Pero, ¿cómo sabe aptool qué archivo ActivePaper desea examinar?
Bueno, si solo hay un archivo con la extensión .ap en el directorio actual, ese será el que utilice. Por esa razón, es buena idea usar un directorio separado para cada proyecto de ActivePaper. Si por alguna razón no desea hacer esto, puede pasar el nombre del archivo ActivePaper explícitamente: bash aptool ls -p lysozyme_diffusion.ap Puede obtener más información utilizando aptool ls -l, lo que producirá: text 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 además de muchas más líneas similares.
La primera columna muestra la fecha y hora de la última modificación de cada conjunto de datos. La segunda columna muestra el tipo de conjunto de datos. La lista anterior contiene dos de los tipos correspondientes a código ejecutable: calclet y module.
Hay un tercero que no aparece en esta lista: importlet. Un module es exactamente lo que un programador de Python esperaría: un archivo de código fuente Python destinado a ser importado por otro código Python. Los calclets y los importlets son las dos variantes de scripts proporcionadas por ActivePapers. El tipo más común es el calclet, que es un script de Python con permisos restringidos: no puede realizar ninguna operación de E/S fuera del archivo ActivePaper en el que está contenido, lo que significa que no puede acceder ni a archivos ni a recursos de red.
Relacionado: — Cursos interactivos de Python y ciencia de datos que codifica directamente en el navegador.
Estas restricciones garantizan la reproducibilidad (todos los datos de entrada están garantizados dentro del ActivePaper) y protegen al usuario contra errores y código malicioso. Sin embargo, también significan que los calclets no pueden utilizarse para importar datos al ActivePaper.
Ahí es donde entran en juego los importlets: pueden utilizar cualquier función de Python y acceder a cualquier recurso. Esto también implica que no debe ejecutar los importlets de otra persona sin haberlos revisado primero. La página [[Calclets]] le explica cómo escribir calclets e importlets. Hay un tipo de conjunto de datos más en la lista anterior: la reference (referencia), que sirve para referenciar conjuntos de datos en otros archivos ActivePaper.
Una referencia consta de dos partes: una referencia al archivo y el nombre del conjunto de datos dentro de ese archivo. La referencia al archivo puede ser un DOI, para un archivo publicado, o un nombre de archivo local. Obviamente, los nombres de archivo locales no tienen sentido en la computadora de otra persona, por lo que las referencias locales son un poco como los importlets: documentan de dónde provienen los datos, pero no los hacen disponibles.
Vale la pena echarle un vistazo: — Una suscripción para certificados de ciencia de datos y Python respaldados por la universidad.
Veamos las referencias en nuestro ActivePaper: bash aptool refs Encontramos un DOI y diez referencias locales: * 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 El DOI corresponde a la biblioteca pyMosaic, versión 0.1.1, tal como fue depositada en Figshare.
Los archivos locales son las trayectorias de simulación que se analizan en el ActivePaper. Obtengamos más información sobre estas referencias: bash aptool refs -v doi:10.6084/m9.figshare.705829 Salida: text links: code/python-packages/mosaic local:lysozyme_spce_rbt_1 copies: data/center_of_mass data/orientation data/reference_structure data/time y así sucesivamente para los otros nueve archivos de entrada.
Esto muestra que el DOI se utiliza en un enlace al conjunto de datos del archivo de destino code/python-packages/mosaic, mientras que los archivos locales se utilizaron como fuente para los datos copiados dentro del propio ActivePaper. Por lo tanto, una referencia de copia sirve únicamente para documentación; no es necesario tener una copia del archivo referenciado. Volviendo a los tipos de conjuntos de datos. Hay algunos más que no aparecieron en las primeras líneas de aptool ls -l, así que veamos algunas de las líneas restantes: text 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 Probablemente pueda adivinar qué significa text.
Y file es exactamente lo que es un archivo en el mundo Unix: una secuencia de bytes, sin ninguna interpretación particular asociada a ellos. Más adelante verá cómo se puede extraer dicho archivo.
El significado de data es quizás menos obvio, en particular cómo se diferencia de un file. La respuesta es que data es un conjunto de datos HDF5 arbitrario, caracterizado por un espacio de datos y un tipo de datos. Piense en ello como un array si lo prefiere; de hecho, es bastante similar. Eso deja dummy, que es un conjunto de datos inexistente.
Más precisamente, un conjunto de datos que ya no existe. Es un conjunto de datos que fue generado por un calclet y luego eliminado explícitamente (usando aptool dummy ...) para reducir el tamaño del archivo. Si desea inspeccionarlo o ejecutar cualquiera de los calclets que lo leen, primero debe regenerarlo volviendo a ejecutar el calclet.
Así que hagámoslo: bash aptool update -v Esto actualiza todo en el ActivePaper que necesite actualización: conjuntos de datos dummy, pero también conjuntos de datos obsoletos, es decir, aquellos que son más antiguos que la versión actual del calclet que los produjo. La opción -v hace que la salida sea detallada, indicándole qué calclets se ejecutan y por qué. Prepárese para esperar un rato; en mi máquina, la operación tarda unos ocho minutos.
Podemos ver que el tamaño del archivo ha aumentado significativamente: bash ls -l -rw-r--r-- 1 hinsen staff 540352636 Oct 23 14:54 lysozyme_diffusion.ap Además, los conjuntos de datos que antes eran dummy ahora son reales: bash aptool ls -l data/coordinate_trajectories/rotation_laboratory_frame_1 2013-10-23/14:45:29 data data/coordinate_trajectories/rotation_laboratory_frame_1 ## Extracción de los gráficos Si observa la salida completa de aptool ls -l, notará un par de archivos PDF bajo documentation.
Para verlos, extráigalos a archivos reales: bash aptool checkout documentation Esto también le proporcionará el README, ya que extrae todo lo que hay en el grupo HDF5 documentation a un directorio local llamado, como habrá adivinado, documentation. El grupo documentation en un ActivePaper está destinado a datos para humanos; por lo general, no se utiliza como entrada para los cálculos. Tenga en cuenta que, por supuesto, puede extraer archivos individuales, por ejemplo: bash aptool checkout documentation/README.txt El comando checkout extrae solo aquellos conjuntos de datos que son más nuevos que el archivo correspondiente en el disco, si este ya existe.
Por lo tanto, puede editar los archivos extraídos sin que sean sobrescritos. Veremos esto en acción inmediatamente cuando trabajemos con el código. ## Extracción y modificación del código A continuación, echemos un vistazo a todo el código
Cree un portafolio de datos, proyecto por proyecto
Rutas de ciencia de datos basadas en proyectos con una terminal guiada y conjuntos de datos reales