ActivePapers 튜토리얼
Python 에디션 JVM 에디션 Pharo 에디션 블로그 … 라이브러리 —> ActivePapers 튜토리얼 이 짧은 튜토리얼에서는 다음 방법을 소개합니다. ActivePaper 의 내용 검사 코드 및 문서화 자료 (플롯 포함) 추출 계산 매개변수 수정 코드 수정 계산 재실행 처음부터 ActivePaper 생성하기 이 튜토리얼의 예제 파일은 Figshare 에서 다운로드할 수 있습니다.
Figshare 사이트의 설명을 함께 살펴보는 것도 좋습니다. 파일이 무엇을 수행하는지, 왜 그런지를 이해하지 않아도 무방하지만, 관심이 있다면 관련 논문을 읽어보셔도 됩니다. 해당 논문은 분자 동역학 궤적에서 용액 내 단백질의 병진 및 회전 확산 텐서를 계산하는 작업을 다룹니다. 다운로드한 ActivePaper 파일을 빈 디렉터리에 복사하세요. 셸 창을 열고 해당 디렉터리로 이동합니다. ls -l 을 입력하면 다음과 유사한 내용이 표시되어야 합니다. -rw-r—r— 1 hinsen staff 148133188 Sep 26 16:21 lysozyme_diffusion.ap 내용 검사 aptool ls 를 실행하면 데이터세트 목록이 길게 출력되며, 그 시작 부분은 다음과 같습니다. 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 을 사용하면 더 자세한 정보를 얻을 수 있습니다.
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 그리고 이와 유사한 줄이 많이 더 이어집니다. 첫 번째 열은 각 데이터세트의 마지막 수정 날짜와 시간을 나타냅니다. 두 번째 열은 데이터세트의 유형을 보여줍니다. 위 목록에는 실행 가능 코드에 해당하는 두 가지 유형인 calclet 과 module 이 포함되어 있습니다. 이 목록에는 나타나지 않지만 세 번째 유형으로 importlet 이 있습니다. 모듈은 Python 프로그래머라면 예상하듯 다른 Python 코드에서 가져와 사용할 Python 소스 코드 파일입니다.
쇼핑하는 경우: — 브라우저에서 직접 코딩하는 대화형 Python 및 데이터 과학 과정.
Calclet 과 importlet 은 ActivePapers 가 제공하는 스크립트의 두 가지 변형입니다. 가장 일반적인 유형은 calclet 으로, 제한된 권한을 가진 Python 스크립트입니다. 자신이 포함된 ActivePaper 파일 외부에서는 어떤 입출력 (I/O) 도 수행할 수 없으며, 따라서 파일이나 네트워크 리소스에 접근할 수 없습니다. 이러한 제한은 재현성을 보장하고 (모든 입력 데이터가 ActivePaper 내에 있음이 보장됨) 사용자를 버그나 악성 코드로부터 보호합니다. 하지만 이로 인해 calclet 은 ActivePaper 로 데이터를 가져오는 데 사용할 수 없습니다. 이때 importlet 이 등장합니다. importlet 은 모든 Python 기능을 사용하고 모든 리소스에 접근할 수 있습니다. 즉, 타인의 importlet 을 먼저 검토하지 않고 실행해서는 안 된다는 의미이기도 합니다. [[Calclets]] 페이지에서 calclet 과 importlet 을 작성하는 방법을 확인할 수 있습니다. 위 목록에는 또 다른 데이터세트 유형인 reference 가 있습니다. 이는 다른 ActivePaper 파일 내의 데이터세트를 참조하는 역할을 합니다. 참조는 두 부분으로 구성됩니다. 파일에 대한 참조와 해당 파일 내의 데이터세트 이름입니다. 파일 참조는 게시된 파일의 경우 DOI 일 수 있으며, 로컬 파일명일 수도 있습니다. 당연히 로컬 파일명은 다른 사람의 컴퓨터에서는 의미가 없으므로, 로컬 참조는 importlet 과 약간 유사합니다. 데이터 출처를 문서화하지만 실제로 데이터를 제공하지는 않는 것입니다. 우리 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 는 Figshare 에 게재된 pyMosaic 라이브러리 버전 0.1.1 을 위한 것입니다. 로컬 파일들은 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 자체로 복사된 데이터의 소스로 사용되었음을 알 수 있습니다. 따라서 복사 참조는 단순히 문서화 목적으로만 사용되며, 참조된 파일의 사본을 실제로 보유할 필요는 없습니다. 다시 데이터세트 유형으로 돌아가 보겠습니다. 앞서 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 은 유닉스 세계에서의 파일 그대로입니다. 특별한 해석이 붙지 않은 바이트 시퀀스입니다. 나중에 이러한 파일을 추출하는 방법을 살펴보겠습니다. data 의 의미는 다소 덜 명확할 수 있으며, 특히 파일과 어떻게 다른지가 궁금할 수 있습니다. 답은 data 가 임의의 HDF5 데이터세트라는 점입니다. 데이터 공간과 데이터 유형으로 특징지어지며, 원하는 경우 배열이라고 생각해도 무방합니다. 실제로 매우 유사합니다. 마지막으로 dummy 가 남았는데, 이는 존재하지 않는 데이터세트입니다. 더 정확히 말하면 더 이상 존재하지 않는 데이터세트입니다. calclet 에 의해 생성되었다가 파일 크기를 줄이기 위해 명시적으로 제거된 ( aptool dummy ... 사용) 데이터세트입니다. 이를 검사하거나 이를 읽는 calclet 을 실행하려면 먼저 calclet 을 재실행하여 다시 생성해야 합니다. 그러니 한번 실행해 보겠습니다. aptool update -v 이 명령은 ActivePaper 내에서 업데이트가 필요한 모든 것을 업데이트합니다. dummy 데이터세트뿐만 아니라 stale 데이터세트, 즉 이를 생성한 calclet 의 현재 버전보다 오래된 데이터세트도 포함됩니다. -v 옵션은 상세 모드로, 어떤 calclet 이 왜 실행되는지 알려줍니다. 잠시 기다릴 준비를 하세요. 제 기계에서는 이 작업에 약 8 분이 소요됩니다. 파일 크기가 크게 증가했음을 확인할 수 있습니다. 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 의 전체 출력을 보면 documentation 아래에 몇 개의 PDF 파일이 있음을 알 수 있습니다. 이를 확인하려면 실제 파일로 추출해야 합니다. aptool checkout documentation 이 명령은 README 도 함께 가져옵니다.
HDF5 그룹 documentation 의 모든 내용을 documentation 라는 이름의 로컬 디렉터리로 추출하기 때문입니다. ActivePaper 의 documentation 그룹은 인간이 읽기 위한 데이터를 위한 것이며, 일반적으로 계산의 입력으로는 사용되지 않습니다. 물론 개별 파일도 체크아웃할 수 있습니다. 예를 들어: aptool checkout documentation/README.txt checkout 명령은 디스크에 이미 존재하는 경우, 해당 파일보다 새로운 데이터세트만 추출합니다. 따라서 추출된 파일을 편집해도 덮어쓰이지 않습니다. 이 기능은 곧 코드를 다루면서 직접 확인하게 될 것입니다. 코드 추출 및 수정 다음으로 모든 코드를 살펴보겠습니다.
브라우저에서 코딩하여 Python을 배우세요
브라우저에서 직접 코딩하는 대화형 Python 및 데이터 과학 과정