דלג לתוכן הראשי
ActivePapers שמרו את הנתונים שלכם כמסמכים הניתנים לחישוב מחדש — כך שניתן יהיה להריץ, לאמת ולשמר כל תוצאה שפורסמה.

חלק מהקישורים באתר זה הם קישורי שותפים: רכישה דרכם עשויה להניב לנו עמלה ללא עלות נוספת עבורכם. הדבר אינו משפיע על ההמלצות שלנו. לפרטים נוספים, עיינו בהצהרת השותפים שלנו. גילוי שותפים.

מדריך ל-ActivePapers

מהדורת Python מהדורת JVM מהדורת Pharo בלוג … ספרייה —> מדריך ל-ActivePapers מדריך קצר זה מראה כיצד לבחון את התוכן של ActivePaper, לחלץ קוד ותיעוד (כולל תרשימים), לשנות פרמטרים של החישוב, לשנות את הקוד, להריץ חישובים מחדש וליצור ActivePaper מאפס.

ניתן להוריד את קובץ הדוגמה עבור מדריך זה מ-Figshare. מומלץ גם לעיין בתיאור באתר Figshare. אין צורך להבין מה הקובץ עושה ומדוע, אך אם אתם מתעניינים, אתם מוזמנים לעיין במאמר המתאר את העבודה, העוסק בחישוב טנזורי הדיפוזיה הטרנסלציונית והרוטציונית של חלבון בתמיסה מתוך מסלול דינמיקה מולקולרית.

אנא העתיקו את קובץ ה-ActivePaper שהורדתם לתיקייה ריקה. פתחו חלון מעטפת (shell) ועברו לתיקייה זו. כאשר תקלידו ls -l, עליכם לראות משהו דומה ל:

-rw-r--r-- 1 hinsen staff 148133188 Sep 26 16:21 lysozyme_diffusion.ap

בחינת התוכן

הפקודה aptool ls מפיקה רשימה ארוכה של ערכות נתונים (datasets), המתחילה ב:

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

אך כיצד aptool יודע באיזה קובץ ActivePaper מדובר? ובכן, אם ישנו רק קובץ אחד עם הסיומת .ap בתיקייה הנוכחית, זהו הקובץ שייבחר. זו הסיבה שכדאי להשתמש בתיקייה נפרדת לכל פרויקט ActivePaper. אם מסיבה כלשהי אינכם רוצים לעשות זאת, ניתן להעביר את שם קובץ ה-ActivePaper באופן מפורש:

aptool ls -p lysozyme_diffusion.ap

ניתן לקבל מידע נוסף באמצעות aptool ls -l, שמניב:

קשורים: — קורסים אינטראקטיביים של Python ומדעי נתונים אתה מקודד ישירות בדפדפן.

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

ועוד שורות רבות נוספות כאלו. העמודה הראשונה מציגה את התאריך והשעה של השינוי האחרון עבור כל ערכת נתונים. העמודה השנייה מציגה את סוג ערכת הנתונים. הרשימה לעיל מכילה שניים מהסוגים המשמשים לקוד executable: calclet ו-module. ישנו סוג שלישי שאינו מופיע ברשימה זו: importlet.

module הוא בדיוק מה שמתכנת Python היה מצפה לו: קובץ קוד מקור ב-Python שנועד להיות מיובא על ידי קוד Python אחר. Calclets ו-importlets הם שני הגרסאות של סקריפטים המסופקים על ידי ActivePapers. הסוג הנפוץ ביותר הוא ה-calclet, שהוא סקריפט Python עם הרשאות מוגבלות: הוא אינו יכול לבצע פעולות קלט/פלט (I/O) מחוץ לקובץ ה-ActivePaper שבו הוא כלול, כלומר הוא אינו יכול לגשת neither לקבצים ולא למשאבי רשת. מגבלות אלו מבטיחות שחזוריות (כל נתוני הקלט נמצאים בוודאות בתוך ה-ActivePaper) ומגינות על המשתמש מפני באגים וקוד זדוני. עם זאת, משמעות הדבר היא גם ש-calclets לא ניתן להשתמש בהם כדי לייבא נתונים לתוך ה-ActivePaper. כאן נכנסים לתמונה ה-importlets: הם יכולים להשתמש בכל תכונת Python ולגשר לכל משאב. משמעות הדבר היא גם שאין להריץ importlets של אחרים לפני שבחנתם אותם. הדף [[Calclets]] מסביר כיצד לכתוב calclets ו-importlets.

ישנו סוג נוסף של ערכת נתונים ברשימה לעיל: ה-reference, המשמש להפניה לערכות נתונים בקבצי ActivePaper אחרים. הפניה (reference) מורכבת משני חלקים: הפניה לקובץ, ושם ערכת הנתונים בתוך קובץ זה. הפניית הקובץ יכולה להיות DOI, עבור קובץ שפורסם, או שם קובץ מקומי. כמובן ששמות קבצים מקומיים אין להם משמעות במחשב של אדם אחר, כך שהפניות מקומיות דומות במקצת ל-importlets: הן מתעדות מאיפה מגיעים הנתונים, אך לא הופכות אותם לזמינים.

חביב הקוראים: — מסלולי מדעי נתונים מבוססי פרויקט עם מסוף מודרך ומערכי נתונים אמיתיים.

הבה נבחן את ההפניות ב-ActivePaper שלנו:

aptool refs

אנו מוצאים DOI אחד ועשר הפניות מקומיות:

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

ה-DOI מתייחס לספריית pyMosaic, גרסה 0.1.1, כפי שהופקדה ב-Figshare. הקבצים המקומיים הם מסלולי הסימולציה שעוברים ניתוח ב-ActivePaper.

הבה נקבל מידע נוסף על הפניות אלו:

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

וכך הלאה עבור תשעת קבצי הקלט האחרים. זה מראה שה-DOI משמש כקישור לערכת הנתונים code/python-packages/mosaic בקובץ היעד, בעוד שהקבצים המקומיים שימשו כמקור לנתונים שהועתקו לתוך ה-ActivePaper עצמו. הפניית העתקה (copy reference) משמשת אפוא רק לתיעוד; אין צורך להחזיק עותק של הקובץ המפונה.

חזרה לסוגי ערכות הנתונים. ישנם עוד כמה סוגים שלא הופיעו בשורות הראשונות של aptool ls -l, אז הבה נביט בכמה מהשורות הנותרות:

קשורים: — ספרייה טכנית עמוקה של ספרי מחשוב מדעיים, סרטונים והדרכה חיה.

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

ככל הנראה ניתן לנחש מה משמעות text. ו-file הוא בדיוק מה שקובץ הוא בעולם Unix: רצף של בתים, ללא פרשנות ספציפית הצמודה אליהם. בהמשך נראה כיצד ניתן לחלץ קובץ כזה. המשמעות של data אולי פחות ברורה, במיוחד כיצד היא שונה מ-file. התשובה היא ש-data היא ערכת נתוני HDF5 שרירותית, המאופיינת במרחב נתונים (data space) ובסוג נתונים (data type). חשבו על זה כמערך (array) אם תרצו; למעשה זה די קרוב לכך.

נותר dummy, שהיא ערכת נתונים שאינה קיימת. ליתר דיוק, ערכת נתונים שכבר אינה קיימת. זוהי ערכת נתונים שנוצרה על ידי calclet, ואז הוסרה במפורש (באמצעות aptool dummy ...) כדי להקטין את גודל הקובץ. אם ברצונכם לבחון אותה, או להריץ את אחד ה-calclets הקוראים אותה, עליכם תחילה ליצור אותה מחדש על ידי הרצת ה-calclet שוב.

אז הבה נעשה זאת:

שווה להסתכל: — מנוי אחד לקבלת תעודות Python ומדעי נתונים מגובים באוניברסיטה.

aptool update -v

פעולה זו מעדכנת הכל ב-ActivePaper שדורש עדכון: ערכות נתונים מסוג dummy, אך גם ערכות נתונים מיושנות (stale datasets), כלומר ערכות נתונים ישנות יותר מהגרסה הנוכחית של ה-calclet שיצר אותן. האפשרות -v הופכת את הפלט למפורט (verbose); היא מודיעה לכם אילו calclets מורצים ומדוע. היכונו להמתין זמן מה; במחשב שלי, הפעולה אורכת כשמונה דקות.

אנו יכולים לראות שגודל הקובץ גדל משמעותית:

ls -l
-rw-r--r-- 1 hinsen staff 540352636 Oct 23 14:54 lysozyme_diffusion.ap

יתרה מזו, ערכות הנתונים שהיו בעבר מסוג dummy הן כעת אמיתיות:

aptool ls -l data/coordinate_trajectories/rotation_laboratory_frame_1
2013-10-23/14:45:29 data data/coordinate_trajectories/rotation_laboratory_frame_1

חילוץ התרשימים

אם תביטו בפלט המלא של aptool ls -l, תשימו לב למספר קבצי PDF תחת documentation. כדי לצפות בהם, חלצו אותם לקבצים אמיתיים:

aptool checkout documentation

פעולה זו תביא לכם גם את ה-README, שכן היא מחלצת את כל מה שנמצא בקבוצת HDF5 בשם documentation לתיקייה מקומית הנקראת, ניחשתם נכון, documentation. קבוצת התיעוד (documentation) ב-ActivePaper מיועדת לנתונים המיועדים לבני אדם; בדרך כלל היא אינה משמשת כקלט לחישובים.

שימו לב שניתן כמובן לבצע checkout לקבצים בודדים, למשל:

aptool checkout documentation/README.txt

פקודת checkout מחלצת רק את ערכות הנתונים שהן חדשות יותר מהקובץ התואם על הדיסק, אם הוא כבר קיים. כך ניתן לערוך קבצים שחולצו מבלי שייכתבו מחדש. נראה זאת בפעולה מיד כאשר נעבוד עם הקוד.

חילוץ ושינוי הקוד

כעת, הבה נביט בכל הקוד


להרוויח תעודות מאוניברסיטאות אמיתיות

מנוי אחד לקבלת תעודות Python ומדעי נתונים מגובים באוניברסיטה