ActivePapers-tutorial
Python-editie JVM-editie Pharo-editie Blog … bibliotheek —> ActivePapers-handleiding Deze korte handleiding laat zien hoe u de inhoud van een ActivePaper kunt inspecteren code en documentatie (inclusief grafieken) kunt extraheren parameters van de berekening kunt wijzigen de code kunt aanpassen berekeningen opnieuw kunt uitvoeren een ActivePaper helemaal vanaf nul kunt maken Het voorbeeldbestand voor deze handleiding kan worden gedownload van Figshare. Het is ook een goed idee om de beschrijving op de Figshare-site te bekijken.
U hoeft niet te begrijpen wat het doet of waarom, maar als u geïnteresseerd bent, kunt u gerust het artikel over dit werk raadplegen. Daarin wordt beschreven hoe de translationele en rotationele diffusietensors voor een eiwit in oplossing worden berekend op basis van een Molecular Dynamics-trajectorie. Kopieer het gedownloade ActivePaper-bestand naar een lege map. Open een terminalvenster en ga naar die map.
Wanneer u ls -l typt, zou u iets als het volgende moeten zien: -rw-r—r— 1 hinsen staff 148133188 Sep 26 16:21 lysozyme_diffusion.ap De inhoud inspecteren aptool ls produceert een lange lijst met datasets, beginnend met 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 Maar hoe weet aptool welk ActivePaper-bestand u wilt bekijken?
Welnu, als er slechts één bestand met de extensie .ap in de huidige map staat, is dat het bestand dat wordt gebruikt. Daarom is het een goed idee om voor elk ActivePaper-project een aparte map te gebruiken. Als u dit om welke reden dan ook niet wilt doen, kunt u de naam van het ActivePaper-bestand expliciet opgeven: aptool ls -p lysozyme_diffusion.ap U kunt meer informatie verkrijgen met aptool ls -l, wat het volgende oplevert: 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 plus nog veel meer regels zoals deze.
De eerste kolom toont de datum en tijd van de laatste wijziging voor elke dataset. De tweede kolom toont het type van de dataset. De bovenstaande lijst bevat twee van de typen voor uitvoerbare code: calclet en module.
Er is een derde type dat niet in deze lijst voorkomt: importlet. Een module is precies wat u als Python-programmeur zou verwachten: een Python-broncodebestand dat door andere Python-code kan worden geïmporteerd. Calclets en importlets zijn de twee varianten van scripts die door ActivePapers worden aangeboden. Het meest voorkomende type is de calclet, een Python-script met beperkte rechten: het kan geen I/O-bewerkingen uitvoeren buiten het ActivePaper-bestand waarin het zich bevindt.
Gerelateerd: — Projectgebaseerde datawetenschapspaden met een begeleide terminal en echte datasets.
Dit betekent dat het toegang heeft noch tot bestanden noch tot netwerkmiddelen. Deze beperkingen waarborgen reproduceerbaarheid (alle invoergegevens zijn gegarandeerd in het ActivePaper aanwezig) en beschermen de gebruiker tegen bugs en kwaadaardige code.
Ze betekenen echter ook dat calclets niet kunnen worden gebruikt om gegevens in het ActivePaper te importeren. Daar komen importlets om de hoek kijken: zij kunnen elke Python-functie gebruiken en toegang krijgen tot elke resource. Dat betekent ook dat u importlets van anderen niet moet uitvoeren zonder ze eerst te inspecteren. De pagina [[Calclets]] legt uit hoe u calclets en importlets schrijft.
Er is nog één datasettype in de bovenstaande lijst: de reference (referentie), die dient om te verwijzen naar datasets in andere ActivePaper-bestanden. Een referentie bestaat uit twee delen: een verwijzing naar het bestand en de naam van de dataset binnen dat bestand. De bestandsverwijzing kan een DOI zijn voor een gepubliceerd bestand, of een lokale bestandsnaam.
Een kijkje waard: — Eén abonnement voor door de universiteit ondersteunde Python- en data-science-certificaten.
Lokale bestandsnamen hebben uiteraard geen betekenis op de computer van iemand anders, dus lokale referenties lijken een beetje op importlets: ze documenteren waar de gegevens vandaan komen, maar maken ze niet beschikbaar. Laten we eens kijken naar de referenties in ons ActivePaper: aptool refs We vinden één DOI en tien lokale referenties: 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 De DOI verwijst naar de pyMosaic-bibliotheek, versie 0.1.1, zoals gedeponeerd op Figshare.
De lokale bestanden zijn de simulatietrajectories die in het ActivePaper worden geanalyseerd. Laten we wat meer informatie over deze referenties opvragen: 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 en zo verder voor de andere negen invoerbestanden.
Hieruit blijkt dat de DOI wordt gebruikt in een link naar de dataset code/python-packages/mosaic van het doelbestand, terwijl de lokale bestanden als bron dienden voor gegevens die in het ActivePaper zelf zijn gekopieerd. Een kopieer-referentie dient dus alleen voor documentatie; het is niet nodig om een kopie van het gerefereerde bestand te hebben. Terug naar de datasettypen. Er zijn er nog een paar die niet verschenen in de eerste regels van aptool ls -l.
Laten we daarom enkele van de resterende regels bekijken: 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 U kunt waarschijnlijk wel raden wat text betekent. En file is precies wat een bestand is in de Unix-wereld: een reeks bytes, zonder enige specifieke interpretatie eraan verbonden.
Later zult u zien hoe zo’n bestand kan worden geëxtraheerd. De betekenis van data is misschien minder duidelijk, vooral hoe het verschilt van een bestand. Het antwoord is dat data een willekeurige HDF5-dataset is, gekenmerkt door een data space en een datatype. Zie het als een array; het komt daar in feite dicht bij in de buurt.
Dan blijft dummy over, wat een niet-bestaande dataset is. Preciezer gezegd: een dataset die niet langer bestaat. Het is een dataset die door een calclet is gegenereerd en vervolgens expliciet is verwijderd (met aptool dummy ...) om de bestandsgrootte te verkleinen.
Als u deze wilt inspecteren of een van de calclets wilt uitvoeren die deze inlezen, moet u deze eerst regenereren door de calclet opnieuw uit te voeren. Laten we dit dus doen: aptool update -v Hiermee wordt alles in het ActivePaper bijgewerkt dat更新 nodig heeft: dummy-datasets, maar ook verouderde datasets, oftewel datasets die ouder zijn dan de huidige versie van de calclet die ze heeft geproduceerd. De optie -v maakt het uitvoerig; het vertelt u welke calclets worden uitgevoerd en waarom.
Bereid u voor om even te wachten; op mijn machine duurt deze bewerking ongeveer acht minuten. We kunnen zien dat de bestandsgrootte aanzienlijk is toegenomen: ls -l -rw-r—r— 1 hinsen staff 540352636 Oct 23 14:54 lysozyme_diffusion.ap Bovendien zijn de voormalige dummy-datasets nu echte datasets geworden: aptool ls -l data/coordinate_trajectories/rotation_laboratory_frame_1 2013-10-23/14:45:29 data data/coordinate_trajectories/rotation_laboratory_frame_1 De grafieken extraheren Als u kijkt naar de volledige uitvoer van aptool ls -l, zult u een paar PDF-bestanden onder documentation opmerken.
Om ze te bekijken, extraheert u ze naar echte bestanden: aptool checkout documentation Hiermee haalt u ook de README binnen, aangezien alles in de HDF5-groep documentation wordt geëxtraheerd naar een lokale map die, u raadt het al, documentation heet. De documentatiegroep in een ActivePaper is bedoeld voor gegevens die voor mensen bestemd zijn; deze wordt over het algemeen niet gebruikt als invoer voor berekeningen. Merk op dat u natuurlijk ook individuele bestanden kunt uitchecken, bijvoorbeeld: aptool checkout documentation/README.txt De checkout-opdracht extraheert alleen die datasets die nieuwer zijn dan het overeenkomstige bestand op de schijf, als dat al bestaat.
U kunt geëxtraheerde bestanden dus bewerken zonder dat ze worden overschreven. We zullen dit direct in actie zien wanneer we met de code aan de slag gaan. De code extraheren en aanpassen Laten we vervolgens eens kijken naar alle code
Leer Python door in uw browser te coderen
Interactieve Python- en datascience-cursussen die u rechtstreeks in de browser codeert