Salta al contenuto principale
ActivePapers Archivia i tuoi dati come documenti ricalcolabili: ogni risultato pubblicato può essere rieseguito, verificato e preservato.

Alcuni link in questo sito sono link di affiliazione: se acquisti tramite questi, potremmo ricevere una commissione senza alcun costo aggiuntivo per te. Questo non influisce mai sui nostri consigli. Consulta la nostra informativa sugli affiliati per i dettagli. Informativa sulle affiliazioni.

Tutorial di ActivePapers

Edizione Python Edizione JVM Edizione Pharo Blog … libreria —> Tutorial di ActivePapers Questo breve tutorial mostra come ispezionare il contenuto di un ActivePaper estrarre codice e documentazione (inclusi i grafici) modificare i parametri del calcolo modificare il codice rieseguire i calcoli creare un ActivePaper da zero Il file di esempio per questo tutorial può essere scaricato da Figshare. È anche una buona idea consultare la descrizione sul sito di Figshare. Non è necessario comprendere cosa faccia o perché, ma se siete interessati, sentitevi liberi di leggere l’articolo che descrive il lavoro, il quale riguarda il calcolo dei tensori di diffusione traslazionale e rotazionale per una proteina in soluzione a partire da una traiettoria di Dinamica Molecolare.

Copiate il file ActivePaper scaricato in una directory vuota. Aprite una finestra di shell e spostatevi in quella directory. Quando digitate ls -l dovreste vedere qualcosa simile a: -rw-r--r-- 1 hinsen staff 148133188 Sep 26 16:21 lysozyme_diffusion.ap Ispezione del contenuto aptool ls produce un lungo elenco di dataset, a cominciare da: 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 Ma come fa aptool a sapere quale file ActivePaper volete esaminare?

Ebbene, se nella directory corrente c’è un solo file con estensione .ap, sarà quello scelto. Ed ecco perché è una buona idea utilizzare una directory separata per ogni progetto ActivePaper. Se per qualche motivo non desiderate farlo, potete passare esplicitamente il nome del file ActivePaper: aptool ls -p lysozyme_diffusion.ap Potete ottenere ulteriori informazioni usando aptool ls -l, che restituisce: 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 più molte altre righe simili.

La prima colonna mostra la data e l’ora dell’ultima modifica per ciascun dataset. La seconda colonna indica il tipo di dataset. L’elenco sopra contiene due dei tipi relativi al codice eseguibile: calclet e module.

Ce n’è un terzo non presente in questo elenco: importlet. Un module è esattamente ciò che vi aspettereste come programmatore Python: un file di codice sorgente Python da importare in altro codice Python.

I calclet e gli importlet sono le due varianti di script fornite da ActivePapers. Il tipo più comune è il calclet, uno script Python con diritti limitati: non può eseguire alcuna operazione di I/O al di fuori del file ActivePaper in cui è contenuto, il che significa che non può accedere né a file né a risorse di rete. Queste restrizioni garantiscono la riproducibilità (tutti i dati di input sono garantiti essere presenti nell’ActivePaper) e proteggono l’utente da bug e codice dannoso. Tuttavia, significano anche che i calclet non possono essere utilizzati per importare dati nell’ActivePaper. È qui che entrano in gioco gli importlet: possono utilizzare qualsiasi funzionalità Python e accedere a qualsiasi risorsa.

Correlato: — Percorsi di data science a progetto con terminale guidato e dataset reali.

Ciò significa anche che non dovreste eseguire gli importlet di qualcun altro senza averli prima esaminati. La pagina [[Calclets]] spiega come scrivere calclet e importlet.

C’è un ulteriore tipo di dataset nell’elenco sopra: il reference, che serve a riferirsi a dataset presenti in altri file ActivePaper. Un riferimento è composto da due parti: un riferimento al file e il nome del dataset all’interno di quel file. Il riferimento al file può essere un DOI, per un file pubblicato, o un nome di file locale. Ovviamente i nomi di file locali non hanno senso sul computer di qualcun altro, quindi i riferimenti locali sono un po’ come gli importlet: documentano da dove provengono i dati, ma non li rendono disponibili.

Esaminiamo i riferimenti nel nostro ActivePaper: aptool refs Troviamo un DOI e dieci riferimenti locali: 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 Il DOI si riferisce alla libreria pyMosaic, versione 0.1.1, depositata su Figshare. I file locali sono le traiettorie di simulazione analizzate nell’ActivePaper.

Vale la pena dare un'occhiata: — Un abbonamento per certificati Python e di scienza dei dati supportati dall'università.

Otteniamo alcune informazioni aggiuntive su questi riferimenti: 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 così via per gli altri nove file di input. Questo mostra che il DOI viene utilizzato in un collegamento al dataset code/python-packages/mosaic del file di destinazione, mentre i file locali sono stati usati come fonte per i dati copiati nell’ActivePaper stesso.

Un riferimento di copia serve quindi solo a scopo documentativo; non è necessario avere una copia del file referenziato. Torniamo ai tipi di dataset. Ce ne sono alcuni altri che non apparivano nelle prime righe di aptool ls -l, quindi diamo un’occhiata ad alcune delle righe rimanenti: 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 Probabilmente potete intuire cosa significhi text.

E file è semplicemente ciò che un file è nel mondo Unix: una sequenza di byte, senza alcuna interpretazione particolare associata. Vedremo più avanti come un tale file possa essere estratto. Il significato di data è forse meno ovvio, in particolare come si differenzia da un file. La risposta è che data è un dataset HDF5 arbitrario, caratterizzato da uno spazio dati e da un tipo di dato.

Pensatelo come a un array, se preferite; in realtà è piuttosto simile. Rimane dummy, che è un dataset inesistente. Più precisamente, un dataset che non esiste più. È un dataset generato da un calclet e poi rimosso esplicitamente (usando aptool dummy ...) per ridurre le dimensioni del file.

Se desiderate ispezionarlo o eseguire uno dei calclet che lo leggono, dovete prima rigenerarlo rieseguendo il calclet. Quindi facciamo proprio questo: aptool update -v Questo aggiorna tutto nell’ActivePaper che necessita di aggiornamento: dataset dummy, ma anche dataset obsoleti, ovvero dataset più vecchi della versione corrente del calclet che li ha prodotti. L’opzione -v rende il processo verboso, indicando quali calclet vengono eseguiti e perché. Preparatevi ad aspettare un po’; sulla mia macchina, l’operazione richiede circa otto minuti.

Possiamo vedere che la dimensione del file è aumentata significativamente: ls -l -rw-r--r-- 1 hinsen staff 540352636 Oct 23 14:54 lysozyme_diffusion.ap Inoltre, i dataset precedentemente dummy sono ora reali: aptool ls -l data/coordinate_trajectories/rotation_laboratory_frame_1 2013-10-23/14:45:29 data data/coordinate_trajectories/rotation_laboratory_frame_1 Estrazione dei grafici Se osservate l’output completo di aptool ls -l, noterete alcuni file PDF sotto documentation. Per visualizzarli, estrateli in file reali: aptool checkout documentation Questo vi procurerà anche il README, poiché estrae tutto nel gruppo HDF5 documentation in una directory locale chiamata, avete indovinato, documentation.

Correlato: — Una ricca biblioteca tecnica di libri, video e corsi di informatica scientifica.

Il gruppo documentation in un ActivePaper è destinato ai dati per gli umani; in generale, non viene utilizzato come input per i calcoli. Notate che ovviamente potete effettuare il checkout di singoli file, ad esempio: aptool checkout documentation/README.txt Il comando checkout estrae solo quei dataset che sono più recenti del corrispondente file su disco, se quest’ultimo esiste già. Potete quindi modificare i file estratti senza che vengano sovrascritti.

Vedremo questo in azione immediatamente quando lavoreremo con il codice. Estrazione e modifica del codice Successivamente, diamo un’occhiata a tutto il codice


Impara Python codificando nel tuo browser

Corsi interattivi di Python e scienza dei dati codificati direttamente nel browser