GEO 는 전 세계 실험실이 원자료를 맡겨 두는 공공 도서관입니다. 접근번호 하나면 누구나 꺼내 볼 수 있어요.
논문을 읽을 때 우리가 보는 것은 대개 저자가 계산해 놓은 결론입니다.
그림 6에 막대가 그려져 있고 "p < 0.001" 이라고 적혀 있죠.
그런데 그 막대는 저자의 계산입니다. 우리가 다시 확인하려면
계산이 아니라 계산 이전의 재료가 필요해요.
그 재료를 맡아 두는 곳이 미국 NCBI 의 GEO(Gene Expression Omnibus)입니다.
많은 학술지가 "원자료를 GEO 에 올리지 않으면 논문을 싣지 않는다"는 규칙을 두고 있어서,
논문의 재료는 대부분 여기 있습니다. 무료이고, 로그인도 필요 없습니다.
접근번호(accession) 읽는 법
📦
GSE285342
GSE = 연구 하나 전체 (Series)
🧪
GSM…
GSM = 샘플 하나 (Sample)
🏷️
GPL…
GPL = 측정 장비 (Platform)
우리가 쓸 번호는 GSE285342 입니다. 논문의 Fig 6 을 만든 바로 그 실험이에요.
GEO 의 파일 주소는 규칙이 있어서, 번호만 알면 주소를 조립할 수 있습니다.
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE285nnn/GSE285342/suppl/GSE285342_LLC1_cnt_DDX54.tsv.gz
└ 뒤 세 자리를 nnn 으로 ┘
이 강의 페이지에는 파일이 미리 놓여 있어서 if 문의 else 쪽으로 갑니다.
PythonRuns in your browser
🎮 접근번호로 주소를 조립해 보기
번호를 바꾸면 주소가 어떻게 달라지는지, 캐시가 있을 때와 없을 때
코드가 어느 길로 가는지 눌러서 확인해 보세요.
GEO 주소 조립기 — 접근번호 → 다운로드 주소 → 캐시 판단
Loading…
내려받은 파일의 속을 잠깐 들여다봅시다.
압축 파일이지만 파이썬은 gzip 모듈로 바로 읽을 수 있어요.
표가 아니라 '탭으로 나뉜 글자 줄'이라는 것을 눈으로 확인합니다.
PythonRuns in your browser
🤔 Check yourself
GEO 접근번호 GSE285342 에서 GSE 가 뜻하는 것은?
AnswerGSE = Series, 연구 하나에 딸린 샘플 전체 묶음입니다. 그 안의 샘플 하나하나는 GSM… 번호를 따로 가집니다.
🤔 Check yourself
파일 이름의 cnt 가 우리에게 왜 반가운 신호일까요?
Answercnt = count, 원시 개수입니다. 저자가 손대기 전의 재료라서, 정규화부터 통계까지 우리 손으로 다시 할 수 있습니다 — 그래야 독립 재현입니다.
🤔 Check yourself
if not os.path.exists(cache): 를 빼면 어떤 일이 생길까요?
Answer 캐시 검사가 없으면 실행할 때마다 다시 내려받습니다. 느릴 뿐 아니라 공개 서버에 불필요한 부담을 주고, 파일이 중간에 바뀌면 계산 결과까지 달라질 수 있습니다.