Przejdź do głównej treści
ActivePapers Przechowuj dane jako dokumenty przeliczalne – dzięki temu każdy opublikowany wynik można ponownie uruchomić, zweryfikować i zachować.

Niektóre linki na tej stronie są linkami afiliacyjnymi: jeśli dokonasz zakupu za ich pośrednictwem, możemy otrzymać prowizję bez żadnych dodatkowych kosztów dla Ciebie. Nie wpływa to jednak na nasze rekomendacje. Szczegóły znajdziesz w naszej polityce afiliacyjnej. Deklaracja afiliacyjna.

Samouczek ActivePapers

Edycja Python Edycja JVM Edycja Pharo Blog … biblioteka —> Samouczek ActivePapers Ten krótki samouczek pokazuje, jak: przeglądać zawartość pliku ActivePaper wyodrębniać kod i dokumentację (w tym wykresy) modyfikować parametry obliczeń zmieniać kod ponownie uruchamiać obliczenia tworzyć plik ActivePaper od podstaw Plik przykładowy dla tego samouczka można pobrać z serwisu Figshare. Warto również zapoznać się z opisem dostępnym na stronie Figshare.

Nie musisz rozumieć, co dokładnie robi ten przykład ani dlaczego, ale jeśli jesteś zainteresowany, możesz przeczytać artykuł naukowy opisujący tę pracę, który dotyczy obliczania tensorów dyfuzji postępowej i obrotowej dla białka w roztworze na podstawie trajektorii dynamiki molekularnej. Skopiuj pobrany plik ActivePaper do pustego katalogu. Otwórz okno terminala i przejdź do tego katalogu. Po wpisaniu polecenia ls -l powinieneś zobaczyć coś podobnego do: -rw-r—r— 1 hinsen staff 148133188 Sep 26 16:21 lysozyme_diffusion.ap Przeglądanie zawartości Polecenie aptool ls generuje długą listę zbiorów danych, zaczynając od: 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 Ale skąd aptool wie, który plik ActivePaper ma wyświetlić?

Jeśli w bieżącym katalogu znajduje się tylko jeden plik z rozszerzeniem .ap, narzędzie automatycznie wybiera właśnie jego. Dlatego warto używać osobnego katalogu dla każdego projektu ActivePaper. Jeśli z jakiegoś powodu nie chcesz stosować tej zasady, możesz jawnie podać nazwę pliku ActivePaper: aptool ls -p lysozyme_diffusion.ap Więcej informacji uzyskasz, używając polecenia aptool ls -l, które zwraca: 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 oraz wiele kolejnych linii podobnych do powyższych.

Pierwsza kolumna przedstawia datę i godzinę ostatniej modyfikacji każdego zbioru danych. Druga kolumna określa typ zbioru danych. Powyższa lista zawiera dwa typy dotyczące kodu wykonywalnego: calclet i module.

Istnieje jeszcze jeden typ, którego nie ma na tej liście – importlet. Moduł (module) to dokładnie to, czego spodziewałby się programista Pythona: plik źródłowy Pythona przeznaczony do importowania przez inny kod Pythona.

Calclety i importlety to dwie odmiany skryptów oferowanych przez ActivePapers. Najczęstszym typem jest calclet – skrypt Pythona o ograniczonych uprawnieniach: nie może wykonywać operacji wejścia/wyjścia poza plikiem ActivePaper, w którym się znajduje, co oznacza, że nie ma dostępu ani do plików systemowych, ani do zasobów sieciowych. Ograniczenia te zapewniają reprodukowalność (wszystkie dane wejściowe są gwarantowanie zawarte w pliku ActivePaper) oraz chronią użytkownika przed błędami i złośliwym kodem.

Powiązane: — Ścieżki analizy danych oparte na projektach z terminalem z przewodnikiem i rzeczywistymi zbiorami danych.

Oznaczają one jednak również, że calclety nie mogą służyć do importowania danych do pliku ActivePaper. Tutaj z pomocą przychodzą importlety: mogą wykorzystywać dowolne funkcje Pythona i uzyskiwać dostęp do dowolnych zasobów.

Oznacza to także, że nie należy uruchamiać cudzych importletów bez wcześniejszego ich przeanalizowania. Strona [[Calclets]] wyjaśnia, jak tworzyć calclety i importlety. Na powyższej liście występuje jeszcze jeden typ zbioru danych: reference (odniesienie), który służy do wskazywania zbiorów danych znajdujących się w innych plikach ActivePaper. Odniesienie składa się z dwóch części: wskazania pliku oraz nazwy zbioru danych wewnątrz tego pliku.

Wskazanie pliku może być identyfikatorem DOI (dla opublikowanego pliku) lub lokalną nazwą pliku. Oczywiste jest, że lokalne nazwy plików nie mają sensu na komputerze innego użytkownika, więc odniesienia lokalne działają podobnie jak importlety: dokumentują źródło danych, ale nie udostępniają ich bezpośrednio. Przyjrzyjmy się odniesieniom w naszym pliku ActivePaper: aptool refs Znajdujemy jeden identyfikator DOI i dziesięć odniesień lokalnych: 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 Identyfikator DOI odnosi się do biblioteki pyMosaic w wersji 0.1.1, zdeponowanej w serwisie Figshare.

Warto zobaczyć: — Jedna subskrypcja wspieranych przez uniwersytet certyfikatów Python i Data Science.

Pliki lokalne to trajektorie symulacyjne analizowane w tym pliku ActivePaper. Uzyskajmy więcej informacji o tych odniesieniach: 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 i tak dalej dla pozostałych dziewięciu plików wejściowych. Wynika z tego, że identyfikator DOI jest używany jako łącze do zbioru danych code/python-packages/mosaic w pliku docelowym, natomiast pliki lokalne posłużyły jako źródło danych skopiowanych bezpośrednio do wnętrza pliku ActivePaper.

Odniesienie typu „copy” (kopia) pełni zatem wyłącznie funkcję dokumentacyjną – nie ma potrzeby posiadania kopii referencjonowanego pliku. Wróćmy do typów zbiorów danych.

Istnieje kilka dodatkowych typów, które nie pojawiły się w pierwszych liniach wyniku polecenia aptool ls -l, więc przyjrzyjmy się kilku kolejnym wierszom: 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 Prawdopodobnie domyślasz się, co oznacza typ text. Typ file odpowiada temu, czym jest plik w świecie Uniksa: sekwencją bajtów bez żadnej szczególnej interpretacji.

Później zobaczysz, jak można wyodrębnić taki plik. Znaczenie typu data może być mniej oczywiste, szczególnie różnica między nim a typem file. Odpowiedź brzmi: data to dowolny zbiór danych HDF5, charakteryzujący się przestrzenią danych i typem danych.

Można o nim myśleć jak o tablicy – w rzeczywistości jest bardzo podobny. Pozostaje typ dummy, który oznacza nieistniejący zbiór danych. Dokładniej rzecz biorąc, zbiór danych, który już nie istnieje. Jest to zbiór wygenerowany wcześniej przez calclet, a następnie celowo usunięty (za pomocą polecenia aptool dummy ...) w celu zmniejszenia rozmiaru pliku.

Jeśli chcesz go przeglądać lub uruchomić którykolwiek z calcletów, które go odczytują, musisz najpierw ponownie go wygenerować, uruchamiając odpowiedni calclet. Zróbmy to teraz: aptool update -v Polecenie to aktualizuje wszystko w pliku ActivePaper, co wymaga aktualizacji: zbiory dummy, ale także zbiory nieaktualne (stale), czyli takie, które są starsze niż obecna wersja calcleta, który je wygenerował. Opcja -v włącza tryb szczegółowy (verbose), informując, które calclety są uruchamiane i dlaczego.

Powiązane: — Obszerna biblioteka techniczna zawierająca książki naukowo-komputerowe, filmy i szkolenia na żywo.

Przygotuj się na chwilę oczekiwania; na moim komputerze operacja ta trwa około ośmiu minut. Możemy zauważyć, że rozmiar pliku znacznie wzrósł: ls -l -rw-r—r— 1 hinsen staff 540352636 Oct 23 14:54 lysozyme_diffusion.ap Co więcej, formerly zbiory dummy są teraz rzeczywistymi zbiorami danych: aptool ls -l data/coordinate_trajectories/rotation_laboratory_frame_1 2013-10-23/14:45:29 data data/coordinate_trajectories/rotation_laboratory_frame_1 Wyodrębnianie wykresów Jeśli przejrzysz pełny wynik polecenia aptool ls -l, zauważysz kilka plików PDF znajdujących się w grupie documentation.

Aby je wyświetlić, wyodrębnij je do rzeczywistych plików: aptool checkout documentation Polecenie to wyodrębni również plik README, ponieważ ekstrahuje wszystkie elementy należące do grupy HDF5 o nazwie documentation do lokalnego katalogu o tej samej nazwie – zgadłeś – documentation. Grupa documentation w pliku ActivePaper przeznaczona jest dla danych skierowanych do ludzi; zazwyczaj nie jest używana jako dane wejściowe do obliczeń.

Oczywiście możesz również wyodrębnić pojedyncze pliki, np.: aptool checkout documentation/README.txt Polecenie checkout wyodrębnia tylko te zbiory danych, które są nowsze niż odpowiadające im pliki na dysku (jeśli takie już istnieją). Dzięki temu możesz edytować wyodrębnione pliki bez ryzyka, że zostaną nadpisane. Zaraz zobaczysz to w action podczas pracy z kodem. Wyodrębnianie i modyfikowanie kodu Następnie przyjrzyjmy się całemu kodowi


Ucz się języka Python, kodując w przeglądarce

Interaktywne kursy Python i data science, które kodujesz bezpośrednio w przeglądarce