[TensorFlow1.0] 인공신경망 (Artificial neural network) 기초 Start

BioinformaticsAndMe










1. 인공신경망 (Artificial Neural Network;ANN)


: 인공신경망(ANN)은 인간의 뇌를 묘사한 기계학습 예측 모델

→ 인공적인 신경망인 뉴런으로 구성되어, 입력값을 받아 계산 수행

: 인공신경망은 최근 딥러닝의 도약으로 그 성능이 재조명되고 활발하게 사용되는 중

: 인공신경망 종류

ㄱ) Perceptron(퍼셉트론) - 각 노드의 가중치 합이 0보다 크면 활성화되는 기본적인 인공신경망 알고리즘

ㄴ) Convolutional Neural Network(CNN) - 시신경 구조를 모방한 인공신경망 알고리즘

ㄷ) Recurrent Neural Network(RNN) - 뉴런 출력이 다시 입력으로 재귀하는 연결 구조의 인공신경망 알고리즘


#INPUT LAYER(입력층) - 외부 데이터를 입력하는 입구 노드

#HIDDEN LAYER(은닉층) - 노드 사이를 연결하고, 결과를 노드로 전달

#OUTPUT LAYER(출력층) - 최종 결과를 내보내는 출구 노드





2. [TensorFlow] 텐서플로우 인공신경망 기초


# '__future__' : python 2에서 python 3 문법 사용 가능

from __future__ import absolute_import, division, print_function

# 케라스, 넘파이 라이브러리 임포트 from tensorflow.keras import layers , models , optimizers , losses , initializers import numpy as np



ㄱ) Input 1개, Output 1개 인공신경망

# 그래프 생성

# initializers.Constant(2)는 weight값을 default 2로 지정 input_node = layers.Input(shape = (1,) ) output_node = layers.Dense( units = 1 , kernel_initializer = initializers.Constant(2))(input_node) # 모델 생성 model = models.Model( inputs = input_node , outputs = output_node )

# 샘플 1개를 생성된 모델로 출력

x = np.asarray([[10]]) model.predict(x)

array([[20.]], dtype=float32)

# 샘플 3개를 생성된 모델로 출력

x = np.asarray([[1],[2],[10]]) model.predict(x)

array([[ 2.], [ 4.], [20.]], dtype=float32)



ㄴ) Input 2개, Output 2개 인공신경망


# 그래프 생성

input_node = layers.Input(shape = (2,) ) output_node = layers.Dense( units = 2 , kernel_initializer = initializers.Constant(2))(input_node)

# 모델 생성 model = models.Model( inputs = input_node , outputs = output_node )

# 샘플 1개를 생성된 모델로 출력

x = np.asarray([[10 , 2]]) model.predict(x)

array([[24., 24.]], dtype=float32)

# 샘플 4개를 생성된 모델로 출력

x = np.asarray([[10 , 2],[2 , 4],[10 , 5],[22,11]]) model.predict(x)

array([[24., 24.], [12., 12.], [30., 30.], [66., 66.]], dtype=float32)



ㄷ) Input 2개, Hidden 2개, Output 1개 인공신경망

# 그래프 생성

input_node = layers.Input(shape = (2,) ) hidden_node = layers.Dense( units = 2 , kernel_initializer = initializers.Constant(2))(input_node) output_node = layers.Dense( units = 1 , kernel_initializer = initializers.Constant(3))(hidden_node)


# 모델 생성 model = models.Model( inputs = input_node , outputs = output_node )

# 샘플 1개를 생성된 모델로 출력

x = np.asarray([[10 , 2]]) model.predict(x)

array([[144.]], dtype=float32)

# 샘플 4개를 생성된 모델로 출력

x = np.asarray([[10 , 2],[2 , 4],[10 , 5],[22,11]]) model.predict(x)

array([[144.], [ 72.], [180.], [396.]], dtype=float32)





3. [TensorFlow] 활성함수 (relu vs softmax)


relu 활성함수

- 노드 결과값이 음수면 0을 내보냄

- 마지막이 아닌 레이어에 사용


 softmax 활성함수

- 입력값을 0~1사이 값으로 표준화하여 출력

- 출력값들의 총합은 항상 1

- 마지막 레이어 Output이 2개 이상일 경우, 마지막 레이어에 사용


# relu 활성함수 모델링

input_node2 = layers.Input(shape = (2,) ) output_node2 = layers.Dense( units = 1 , activation = 'relu' , kernel_initializer = initializers.Constant(1))(input_node2) model2 = models.Model( inputs = input_node2 , outputs = output_node2 )


# 예제 데이터 data = [[ 1 ,-3], [ 3 , -9], [ 10, 0], [ -8 ,10], [ 0 , -1]] data = np.array(data)


# relu 활성함수 예제 결과 res2 = model2.predict(data) print(res2)

[[ 0.] [ 0.] [10.] [ 2.] [ 0.]]





#Reference

1) https://namu.wiki/w/%EC%9D%B8%EA%B3%B5%EC%8B%A0%EA%B2%BD%EB%A7%9D

2) https://ko.wikipedia.org/wiki/%EC%9D%B8%EA%B3%B5_%EC%8B%A0%EA%B2%BD%EB%A7%9D

3) 2019년도 유전체 분석 분야 재직*연구자 전문교육

4) https://www.sciencedirect.com/science/article/pii/B9780128015599000065

5) https://m.blog.naver.com/wideeyed/221021710286





[TensorFlow1.0] 인공신경망 (Artificial neural network) 기초 End

BioinformaticsAndMe

[Python] 파이썬 반복문 Start

BioinformaticsAndMe







0. 파이썬 반복문 (Python Loop)


: 파이썬 반복문에는 'FOR Loop' 및 'WHILE loop'가 존재

1) FOR 루프 - 리스트/튜플/딕셔너리 등의 시퀀스 집합을 반복

2) WHILE 루프 - 참인 조건 상황에서 거짓으로 될때까지 반복





1. FOR 반복문


# for 반복문 기본 형태

fruits = ["apple", "banana", "cherry"] for x in fruits: print(x)

apple banana cherry

# 문자열은 각각의 문자를 요소로 인식하여 반복

for x in "banana":   print(x)

b a n a n a

# break 문으로 모든 항목을 반복하기 전 루프 중지

fruits = ["apple", "banana", "cherry"] for x in fruits: print(x) if x == "banana":

break        #banana 항목이 들어오면, for 반복문을 중단하고 루프 밖으로 나옴

apple banana

# continue 문으로 반복문의 현재 항목을 건너뛰고 계속 루프 진행

fruits = ["apple", "banana", "cherry"] for x in fruits: if x == "banana": continue        #banana 항목이 들어오면, banana를 건너뛰고 계속해서 루프 수행

print(x)

apple cherry

# 아래의 range 함수는 2부터 30전까지(~29) 출력하도록 세팅

# 단, 세번째 매개변수를 3으로 입력하여 +3씩 루프를 지정

for x in range(2, 30, 3): print(x)

2 5 8 11 14 17 20 23 26 29

# for 반복문에 실행할 명령이 없을 때, pass 문을 사용하여 오류를 피함 (단지, 아무것도 출력되지 않음)

for x in [0, 1, 2]: pass







2. WHILE 반복문


# while 반복문 기본 형태 (조건이 True를 유지할 때까지 루프)

i = 1 while i < 6: print(i)

1 2 3 4 5

# break 문으로 조건이 True인 경우에도 루프 중단

i = 1 while i < 6: print(i) if (i == 3): break i += 1

1

2

3

# continue 문으로 반복문의 현재 항목을 건너뛰고 계속 루프 진행

# for 반복문에서 사용되는 특수 함수들은 거의 대부분 while 반복문에서도 동일하게 사용됨

i = 0 while i < 6: i += 1 if i == 3: continue

print(i)

1 2 4 5 6






#Reference

1) https://www.w3schools.com/python/python_for_loops.asp

2) https://www.w3schools.com/python/python_while_loops.asp

3) https://www.datacamp.com/community/tutorials/loops-python-tutorial

4) https://www.techbeamers.com/python-for-loop/

5) https://www.techbeamers.com/python-while-loop/





[Python] 파이썬 반복문 End

BioinformaticsAndMe

'Python' 카테고리의 다른 글

[Python] 표준 입력 (User Input)  (0) 2019.12.12
[Python] 파이썬 함수 (Function)  (0) 2019.12.05
[Python] 파이썬 조건문  (0) 2019.11.21
[Python] 사전(Dictionary)  (0) 2019.11.05
[Python] 리스트(List)  (0) 2019.10.30

[BIG 4] 헬스케어 생태계 Start

BioinformaticsAndMe







헬스케어 생태계


: 빅데이터/인공지능/클라우드 등의 여러 신기술이 보건의료 분야에 동시다발적으로 유입되고 있음

*빅데이터 - 대용량의 헬스케어 데이터 생성 및 표준화

*인공지능 - 머신러닝, 딥러닝 분석을 통한 의료적 가치 도출

*클라우드 - 데이터의 공간적 한계 탈피 및 유동적인 공동 연구

: 의료기관/환자/보험자로 한정된 과거의 생태계를 지나,

다양한 글로벌기업/스타트업 참여를 통해, 헬스케어 생태계가 한계없이 확장 중

: 개인의 건강/생활/환경 데이터 전반을 기반하여, 개인 최적화된 의료서비스 제공하는 비즈니스 모델 창출







1. 마이크로소프트 (Microsoft)


: 마이크로소포트는 'Health Vault'를 통해, 고객들은 본인 및 가족의 건강 데이터를 수집하고 의료기관과 연계하여 공유

: 알레르기/당뇨병/심장병 등 광범위한 질환을 관리할 수 있는 300개 이상의 애플리케이션을 제공

: 혈압계/체중계 등 70개 이상의 의료 관련 기기 접속 지원

: 마이크로소프트는 법적으로 위반되지 않는 한에서 의료 데이터를 클라우드에 저장하고 활용할 수 있는 방안을 모색 중





2. 아마존 (Amazon)


: 아마존은 거대 유통망과 데이터를 이용한 헬스케어 시장 진입

: 감기 판별 및 응급실 예약 등의 실생활 의료 관련 모듈을 알렉사 인공지능 스피커에 도입

*https://bioinformaticsandme.tistory.com/40

: 2018년 온라인 약국 사업자인 필팩(PillPack)을 인수하여 제약, 의료 분야 진출

*https://bioinformaticsandme.tistory.com/17





3. 애플 (Apple)


: 애플은 모바일 앱으로 사용자의 운동량 데이터 등 건강 정보를 저장 및 관리하는 플랫폼 제공

*HealthKit(2014) - 아이폰을 비롯한 다양한 장비에 장착된 센서로부터 헬스 데이터 측정치를 모을 수 있는 플랫폼

*ResearchKit(2015) - 연구자들이 애플 제품 사용자를 대상으로 의학 임상 시험을 진행할 수 있는 플랫폼

*CareKit(2016) - 환자가 직접 건강상태를 확인하고, 필요에 따라 치료 프로그램 개발에 활용할 수 있는 플랫폼

: 애플 건강 기록은 HL7(High Level Seven) API와 FHIR(Fast Healthcare Interoperability Resources) 산업표준을 사용

: 애플은 미국 내 분산된 전자의무기록 등의 의료데이터를 수집/관리/공유하는 플랫폼을 보유한 'Glimpse'를 인수




4. 구글 (Google;Alphabet)


: 구글의 모회사인 알파벳은 2013년부터 2017년까지 186건의 헬스케어 특허 출원

: 구글 리서치 부서인 구글 AI는 최근 몇 년간의 예측 및 분석을 통해 환자들의 병원 방문 감소 방법을 연구

: 병리학자들이 AI 알고리즘으로 의료 영상에서 유방암을 감지하는 연구 프로젝트에 착수

: 구글 클라우드의 Google Genomics는 병원/대학/연구기관에서 유전체 정보를 분석/저장/공유를 가능하게 함










#Reference

1) http://www.nvp.co.kr/news/articleView.html?idxno=123430

2) http://www.greened.kr/news/articleView.html?idxno=66456

3) http://news.kotra.or.kr/user/globalAllBbs/kotranews/album/2/globalBbsDataAllView.do?dataIdx=172410

4) https://www.stepi.re.kr/module/publishDownFile.jsp?categCd=A0502&ntNo=140

5) https://www.medigatenews.com/news/1350864688

6) https://dailybw.com/2019/05/17/apple-amazon-google-microsoft-and-mozilla-release-patches-for-zombieload-chip-flaws/

7) https://venturebeat.com/2014/11/04/with-the-launch-of-the-microsoft-band-healthvault-moves-behind-the-scenes/

8) https://www.apple.com/kr/researchkit/

9) https://www.businessinsider.com/alphabet-amazon-apple-and-microsofts-influence-in-healthcare-2018-7





[BIG 4] 헬스케어 생태계 End

BioinformaticsAndMe



발효 (Fermentation) Start

BioinformaticsAndMe







0. 발효 (Fermentation)


: 발효는 산소 없이 당을 분해해서 에너지를 얻는 대사 과정

: 세포에 산소 공급이 중단되면 전자전달계가 멈추기에, NADH 및 FADH2 산화를 할 수 없음

→ 미토콘드리아 기질의 NAD+, FAD 고갈

→ TCA 회로까지 멈춰, 미토콘드리아 에너지 대사 중단


: 미토콘드리아 대사가 중단되면, 세포는 해당 과정으로 에너지를 얻음

→ 해당 과정에서 생긴 NADH를 NAD+로 재산화하지 못하면 해당과정까지 멈춤

: 혐기성 조건에서 NAD+로 재산화가 필요함

→ NADH의 전자를 피루브산/아세트알데하이드로 전달해, 환원 상태의 에탄올(Ethanol) 및 젖산(Lactate)을 생성하는 발효 진행





1. 알코올 발효 (Ethanol Fermentation)


: 산소가 희박한 상태에서 효모(Yeast)가 포도당을 분해하여, 에탄올/이산화탄소를 생성하는 과정

: 효모는 산소가 부족할 때 알코올 발효를 진행하지만, 산소가 풍부할 때는 유산소 발효 또한 가능함

: 2에탄올, 2CO2, 2ATP 생성
: 술, 이산화탄소, 빵 제조에 사용


2. 젖산 발효 (Lactic Acid Fermentation)


: 산소가 희박한 상태에서 근육 세포(Muscle cell)가 포도당을 분해하여 젖산을 생성하는 과정

: 근육에 젖산이 축적되어 통증을 유발
: 2젖산, 2ATP 생성
: 김치, 요구르트, 치즈 제조에 사용







#Reference

1) https://ko.wikipedia.org/wiki/%EB%B0%9C%ED%9A%A8

2) http://study.zum.com/book/13906

3) http://magdalene-project.org/alcohol-fermentation/

4) https://fermentationinformation.weebly.com/

5) https://www.quora.com/What-are-the-by-products-made-during-the-process-of-fermentation





발효 (Fermentation) End

BioinformaticsAndMe



'Biology' 카테고리의 다른 글

난할 (Cleavage)  (0) 2019.12.09
뉴런 (Neuron)  (0) 2019.12.02
멘델의 유전법칙 (Mendelian inheritance)  (0) 2019.11.21
마이크로RNA (miRNA)  (0) 2019.11.18
조직 (Tissue)  (0) 2019.11.12




붙임

 

세부 교육과정()

 

o 기본과정

교시

시간

내용

강사

1

1교시

10:00 ~ 11:50

- Real World Evidence와 보건의료 데이터

- 임상 데이터를 활용한 연구 설계

장동진 교수

2교시

3교시

13:00 ~ 13:50

- 파이썬 실행 및 환경설정

이선정 강사

4교시

14:00 ~ 15:50

- 파이썬 프로그래밍 기초

5교시

6교시

16:00 ~ 17:50

- 파이썬 데이터분석 및 시각화

7교시

2

1교시

10:00 ~ 10:50

- 의료 인공지능의 혁신과 미래

김재권 교수

2교시

11:00 ~ 11:50

- 의료 인공지능 프로그래밍 실습 1

3교시

13:00 ~ 13:50

- 의료 인공지능 프로그래밍 실습 2

4교시

14:00 ~ 15:50

- DACS (Document Archiving and Communication System)

김동민 강사

5교시

6교시

16:00 ~ 16:50

- FITT (From Image To Text)

7교시

17:00 ~ 17:50

- DACS/FITT 및 데이터 분석 실습


[Dialysis] 인공투석 Start

BioinformaticsAndMe






0. 인공투석 (Artificial dialysis)


: 인공적으로 체액의 염 균형을 유지하고 혈액중의 노폐물을 제거하여, 깨끗한 혈액을 다시 체내에 공급하는 방법

: 투석액의 용질 농도에 따라, 체액과의 물질 교환이 이루어짐

- 단백질은 반투막을 통과하지 못하고, 노폐물들은 확산되어 제거됨

- 투석액의 조성에 따라 이온, 당 등의 확산을 조절 가능

- 레닌, 비타민D 등은 따로 투여해야 함

: 인공투석에는 혈액투석과 복막투석의 두 가지 방법이 존재
1) 혈액투석(Hemodialysis)

2) 복막투석(Peritoneal dialysis)






1. 혈액투석 (Hemodialysis)


: 환자 혈액을 투석기(인공신장기)에 통과시켜 반투막 여과한 다음, 이 혈액을 다시 환자 혈관에 넣어주는 방법

: 항응고제인 헤파린을 투여해서 혈액 응고를 막음

: 말기 신부전환자에 주로 사용





2. 복막투석 (Peritoneal dialysis)


: 투석액을 복막강 속에 넣어서 복막을 반투막으로 활용해 여과하는 방법

: 복막투석은 환자 혈액이 여과되는 동안 일상생활에 지장을 주지 않음

: 혈액투석에 비해 노폐물을 걸러내는 기능이 떨어지고, 복막염에 취약함







# DIALYSIS(투석) 과정










#Reference
1) https://ko.wikipedia.org/wiki/%EC%9D%B8%EA%B3%B5%ED%88%AC%EC%84%9D
2) https://terms.naver.com/entry.nhn?docId=1174627&cid=40942&categoryId=32763
3) https://www.renalfellow.org/2018/12/06/lets-talk-about-peritoneal-dialysis-post-4-not-drain-pain-but-infusion-pain/
4) https://www.nikkiso.com/products/medical/dialysis.html
5) https://www.aboutkidshealth.ca/Article?contentid=44&language=English
6) https://www.youtube.com/watch?v=EU2skU3bgS8




[Dialysis] 인공투석 End

BioinformaticsAndMe

'Technology' 카테고리의 다른 글

[Gene cloning] 유전자클로닝  (0) 2019.12.10
[Intrauterine Insemination] 인공수정  (0) 2019.12.03
[ELISA] 효소결합면역흡착검사  (0) 2019.11.18
[Cloning] 생명 복제  (0) 2019.11.13
[Mircoarray] DNA 미세배열  (0) 2019.11.05

겸상적혈구빈혈증 (Sickle cell anemia) Start

BioinformaticsAndMe







1. 겸상적혈구빈혈증 (Sickle cell anemia)


: 겸상적혈구빈혈증(=낫모양적혈구빈혈증;겸형적혈구빈혈증)은 적혈구가 낫모양으로 바뀌어 악성빈혈을 일으키는 유전병

: 헤모글로빈 β-글로빈 단백질의 글루탐산(CTC)이 발린(CAC)으로 변환되어, 적혈구 막의 유연성이 감소함

: 낫 모양으로 바뀐 적혈구는 서로 엉겨붙어 모세혈관을 막고 악성빈혈을 유발

: 보통 어린 시절부터 증상을 보이기 시작하며, 아프리카와 중앙아메리카 지역에 빈번한 유전병





2. 겸상적혈구빈혈증 특징


: 11번 상염색체 열성질환

: 말라리아 유행의 아프리카에서는 겸상적혈구빈혈증을 이형접합으로 가진 것이 생존에 유리

: 말라리아가 환경압으로 작용하므로, 집단 내에 이형접합 비율이 높음

: 겸상적혈구빈혈증 기대수명은 남성 42년, 여성 48년





3. 겸상적혈구빈혈증 증상

ㄱ) 혈관막힘위기(Vaso-occlusive crisis)

- 수족증후군(Hand foot syndrome) 또는 지염(Dactylitis)

- 뼈 및 관절 주변에 극심한 통증 및 종창

- 폐렴과 비슷한 증세를 보이며, 흉통/호흡곤란/저산소증을 동반

- 창백함/피로감/숨이참 등의 극심한 빈혈 증상


ㄴ) 용혈성빈혈(Hemolytic anemia)

- 용혈로 인해 혈색소가 급격히 감소함

- 황달(Jaundice) 및 담석(Cholelithiasis)이 매우 흔하게 보임


ㄷ) 합병증

- 뇌경색: 뇌로 가는 혈류 감소로 발생

- 면역기능저하: 비장기능 장애로 발생

- 반복적인 감염

- 임신성공률 감소 및 유산위험성 증가 




4. 겸상적혈구빈혈증 치료


1) 페니실린 항생제 투여

2) 빈혈을 예방을 위한 엽산(Folic acid) 보충제 복용

3) 건강한 혈액으로 교체하기 위한 교환 수혈

4) FDA 허가된 약제인 수산화요소(Hydroxyurea) 투여로 혈관막힘위기 빈도 감소

5) 골수 이식(Bone marrow transplant)






#Reference

1) http://www.snuh.org/health/encyclo/view/9/2/4.do

2) https://namu.wiki/w/%EA%B2%B8%EC%83%81%20%EC%A0%81%ED%98%88%EA%B5%AC%20%EC%A6%9D%ED%9B%84%EA%B5%B0

3) http://health.cdc.go.kr/health/HealthInfoArea/HealthInfo/View.do?idx=10190

4) https://ko.wikipedia.org/wiki/%EA%B2%B8%ED%98%95_%EC%A0%81%ED%98%88%EA%B5%AC_%EB%B9%88%ED%98%88%EC%A6%9D

5) https://www.scientificanimations.com/malaria-loses-sickle-cell-battle/

6) https://askananthropologist.asu.edu/genetic-fight-against-infection

7) https://aderonkebamidele.com/sickle-cell-disease-signs-symptoms/

8) https://www.healthcake.com/cake/731192acfce2439b8373237e44a04c13





겸상적혈구빈혈증 (Sickle cell anemia) End

BioinformaticsAndMe

[R] 생존분석(Survival analysis) Start

BioinformaticsAndMe





#생존분석에 대한 개념적 설명은 아래 포스팅 참조

https://bioinformaticsandme.tistory.com/223





1. 생존분석 라이브러리 로딩


: 생존분석에 필요한 패키지(survival, survminer) 및 데이터프레임 관리 패키지(dplyr) 로딩

: 참고로, 패키지 설치 에러에는 여러 이유가 있겠으나, 일반적으로 R 최신 버전 상태에서 패키지를 설치하면 해결됨

*아래 튜토리얼은 'R version 3.6.1 (2019-07-05)'에서 수행됨

# 패키지 인스톨 후, 로딩

install.packages(c('survival', 'survminer', 'dplyr'))

library(survival) library(survminer) library(dplyr)




2. 예제 데이터셋 로딩


: 난소암(Ovarian cancer) 데이터를 생존분석의 예제로 사용

# glimpse 함수로 난소암 데이터의 내용/구조/타입을 파악 data(ovarian) glimpse(ovarian)

Observations: 26
Variables: 6
$ futime <dbl> 59, 115, 156, 421, 431, 448, 464, 475, 477, 563, 638,... #생존 시간
$ fustat <dbl> 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0,... #Censored data 여부
$ resid.ds <dbl> 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 2, 1,... #종양 퇴행
$ age <dbl> 72.3315, 74.4932, 66.4658, 53.3644, 50.3397, 56.4301,... #환자 나이 $ rx <dbl> 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1,... #치료 요법

$ ecog.ps <dbl> 1, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1,... #환자 전신 활성도(ECOG)

# 데이터 Labeling ovarian$rx <- factor(ovarian$rx, levels = c("1", "2"), labels = c("A", "B")) ovarian$resid.ds <- factor(ovarian$resid.ds, levels = c("1", "2"), labels = c("no", "yes")) ovarian$ecog.ps <- factor(ovarian$ecog.ps, levels = c("1", "2"), labels = c("good", "bad")) # 히스토그램으로 나이 데이터 분포 확인 hist(ovarian$age)

# 위 이항분포 히스토그램 결과에 근거하여, '50 years' 기준의 두 그룹으로 나눔 ovarian <- ovarian %>% mutate(age_group = ifelse(age >=50, "old", "young")) ovarian$age_group <- factor(ovarian$age_group)




3. Kaplan-Meier(카플란-마이어) 생존분석


# Surv 함수로 Survival object 생성 (Survival object는 survfit 함수에 인식되도록 특정칼럼을 컴파일한 형태)

# surv_object 결과의 '+' 표시는 Censored data를 의미

surv_object <- Surv(time = ovarian$futime, event = ovarian$fustat) surv_object
[1] 59 115 156 421+ 431 448+ 464 475 477+ 563 638 [12] 744+ 769+ 770+ 803+ 855+ 1040+ 1106+ 1129+ 1206+ 1227+ 268 [23] 329 353 365 377+

# survfit 함수를 통해, Kaplan-Meier 곡선 Fitting

fit1 <- survfit(surv_object ~ rx, data = ovarian) summary(fit1)
Call: survfit(formula = surv_object ~ rx, data = ovarian)
rx=A time n.risk n.event survival std.err lower 95% CI upper 95% CI 59 13 1 0.923 0.0739 0.789 1.000 115 12 1 0.846 0.1001 0.671 1.000 156 11 1 0.769 0.1169 0.571 1.000 268 10 1 0.692 0.1280 0.482 0.995 329 9 1 0.615 0.1349 0.400 0.946 431 8 1 0.538 0.1383 0.326 0.891 638 5 1 0.431 0.1467 0.221 0.840
rx=B time n.risk n.event survival std.err lower 95% CI upper 95% CI 353 13 1 0.923 0.0739 0.789 1.000 365 12 1 0.846 0.1001 0.671 1.000 464 9 1 0.752 0.1256 0.542 1.000 475 8 1 0.658 0.1407 0.433 1.000 563 7 1 0.564 0.1488 0.336 0.946

# ggsurvplot 함수로 생존분석 결과 시각화 (추가로 p value 표시)

# 그래프 내에 있는 수직바는 Censored data를 의미함

ggsurvplot(fit1, data = ovarian, pval = TRUE)

# resid.ds 기준으로 나뉜 두 그룹의 생존분석은 p-value가 약 0.05로 유의한 결과를 냄

fit2 <- survfit(surv_object ~ resid.ds, data = ovarian) ggsurvplot(fit2, data = ovarian, pval = TRUE)




4. Cox proportional hazards model (콕스 비례위험모델)


: Hazard Ratio(HR)는 상대적 위험도이므로, 그 위험비는 항상 reference에 대한 특정값임

: HR>1(사망 위험 증가), HR<1(사망 위험 감소)

: 아래 그림에서 0.25는 Treatment B를 받은 환자들이 Treatment A를 받은 환자들에 비해 사망률이 0.25배 감소했다는 의미

*Treatment A는 reference로 사용됨

# coxph 및 ggforest 함수를 통해, Hazard ratio 결과 출력 fit.coxph <- coxph(surv_object ~ rx + resid.ds + age_group + ecog.ps, data = ovarian) ggforest(fit.coxph, data = ovarian)





#생존분석에 대한 개념적 설명은 아래 포스팅 참조

https://bioinformaticsandme.tistory.com/223





#Reference

1) http://www.gums.ac.ir/Upload/Modules/Contents/asset68/Medical%20Statistic%20Made%20Easy.pdf

2) https://www.datacamp.com/community/tutorials/survival-analysis-R#fourth

3) https://ko.wikipedia.org/wiki/%EC%83%9D%EC%A1%B4%EB%B6%84%EC%84%9D

4) https://namu.wiki/w/%EC%83%9D%EC%A1%B4%20%EB%B6%84%EC%84%9D

5) https://www.partek.com/webinar/survival-analysis-with-partek-genomics-suite-software/

6) https://ko.wikipedia.org/wiki/%EC%A4%91%EB%8F%84%EC%A0%88%EB%8B%A8

7) https://ko.wikipedia.org/wiki/%EB%A1%9C%EA%B7%B8%EC%88%9C%EC%9C%84%EB%B2%95

8) https://www.youtube.com/watch?v=czQ3l0QXxnA

9) https://rexsoft.org/?page_id=485

10) http://www.e-urol-sci.com/viewimage.asp?img=UrolSci_2018_29_5_223_240363_t6.jpg





[R] 생존분석(Survival analysis) End

BioinformaticsAndMe



'R' 카테고리의 다른 글

[R] 상자그림(Box plot)  (0) 2019.12.10
[R] 파이차트(Pie plot)  (0) 2019.12.03
[R] 히스토그램(Histogram)  (0) 2019.11.18
[R] Excel 읽기/쓰기  (0) 2019.11.05
[R] Merge  (0) 2019.10.30

생존 분석 (Survival analysis) Start

BioinformaticsAndMe





#생존분석에 대한 R 분석 예제는 아래 포스팅 참조

https://bioinformaticsandme.tistory.com/224




1. 생존 분석


: 생존 분석(Survival analysis)은 '생명체 관찰시작~사망'에 이르는 생존시간을 추정하는 통계적 분석법

*사망을 특정한 사건(Event)으로 볼 때, 생존분석에서 사건은 '사망/퇴원/출산' 등 다양한 지표가 될 수 있음

: 생존 분석을 통해, 시간에 따른 인구집단의 특이 변화를 직관적으로 확인 가능

: Censored data(절단 자료)가 누락되지 않고, 생존 분석에 함께 사용됨 

ㄱ) Censoring(중도절단) - 데이터의 측정값이나 관찰치가 부분적으로만 알려진 상태

 Uncensored data는 정확한 생존기간을 파악할 수 있는 온전한 데이터

ㄴ) Right censoring - 연구 종료 전 기타 이유로 사망하거나(연구종료전 교통사고사망),

       연구가 만료된 경우(임상종료후에도 생존)

ㄷ) Left censoring - 연구 시작 전 위험군에 있었던 특정 시점을 모르는 경우(연구시작전 질환을보유)

     측정한 생존 시간보다 실제 생존 시간이 길어짐





2. Kaplan-Meier 추정방법


: Kaplan-Meier(카플란-마이어) 추정방법은 관찰 시간에 따라 사건이 발생한 시점의 사건 발생률을 계산하는 생존 분석 방법

*미국 통계학자 폴 마이어와 에드워드 카플란에 의해 개발된 생존 함수 추정법

: Kaplan-Meier 분석은 일반적으로 아래와 같은 'Survival plot'으로 제시됨

# 위 점선은 20년에서, 전체 환자 그룹의 36%가 여전히 생존해 있음을 의미


# 위 점선은 20년에서, 여성 그룹의 46% and 남성 그룹의 18%가 여전히 생존해 있음을 의미

# 두 집단 사이의 유의한 차이를 검정하기 위해, 'Log-Rank test(로그순위법)' 또는 'Wilcoxon test(윌콕슨검정)'을 사용





3. 로그순위법 (Log-Rank test)


: 로그순위법(Log-Rank test)는 두 집단의 생존률을 비교하는 비모수적 가설 검정법

1) 두 집단을 합한 전체 집단을 관찰 기간 순으로 배열

2) 사건(Event)이 발생한 구간들에 대해, 집단별로 각 구간의 사망 기대빈도 계산

3) 귀무가설로 두 집단의 위험함수가 동일하다고 설정

4) 두 집단의 생존률 비교





4. 콕스 비례위험모형 (Cox’s proportional hazard model)


: 콕스 비례위험모형(Cox’s proportional hazard model;Cox regression model)은 시간과 사건(Event) 사이의 예측 회귀 모형을 만드는 통계법

*흡연여부/몸무게와 같은 관측치(설명변수)와 사망(사건) 사이의 관계를 정립하기 위해 사용됨

: Kaplan-Meier 분석은 타겟하는 특성 외의 다른 요인들을 통제할 수 없다는 점에서 한계

→Cox 비례위험모형 사용

: Cox 비례위험모형은 다양한 관측치들을 동시에 통제하여, 사건 발생에 미치는 영향을 분석하는 다변량 분석법

: 관측치는 서로 독립적이며, Hazard Ratio(HR;위험비)는 시간에 관계없이 일정하다는 비례위험가정이 필요

*HR>1 - 사망 위험 증가

*HR<1 - 사망 위험 감소







#생존분석에 대한 R 분석 예제는 아래 포스팅 참조

https://bioinformaticsandme.tistory.com/224






#Reference

1) http://www.gums.ac.ir/Upload/Modules/Contents/asset68/Medical%20Statistic%20Made%20Easy.pdf

2) https://www.datacamp.com/community/tutorials/survival-analysis-R#fourth

3) https://ko.wikipedia.org/wiki/%EC%83%9D%EC%A1%B4%EB%B6%84%EC%84%9D

4) https://namu.wiki/w/%EC%83%9D%EC%A1%B4%20%EB%B6%84%EC%84%9D

5) https://www.partek.com/webinar/survival-analysis-with-partek-genomics-suite-software/

6) https://ko.wikipedia.org/wiki/%EC%A4%91%EB%8F%84%EC%A0%88%EB%8B%A8

7) https://ko.wikipedia.org/wiki/%EB%A1%9C%EA%B7%B8%EC%88%9C%EC%9C%84%EB%B2%95

8) https://www.youtube.com/watch?v=czQ3l0QXxnA

9) https://rexsoft.org/?page_id=485

10) http://www.e-urol-sci.com/viewimage.asp?img=UrolSci_2018_29_5_223_240363_t6.jpg





생존 분석 (Survival analysis) End

BioinformaticsAndMe

'Statistics' 카테고리의 다른 글

분위수 (Quantile)  (0) 2019.12.11
이산분포 (Discrete distribution)  (0) 2019.12.04
분산 분석 (ANOVA)  (0) 2019.11.04
Z-검정 (Z-test)  (0) 2019.10.28
경향분석 (Cochran-Armitage Trend test)  (0) 2019.10.22



http://www.ksbb.or.kr/conference/edu_workshop/sub04.html


 

1. 교육 목적

 

생물공학 연구자들에게 기계학습의 원리와 종류 및 자신에게 맞는 기계 학습 알고리즘을 스스로 선택할 수 있도록 하고 대표적인 기계학습 프로그램인 python 기반 keras 라이브러리를 이용하여 튜토리얼을 진행함으로써, 실제로 생물공학 연구와 접목하여 기계학습을 구동해볼 수 있는 기회를 마련하고자 함.

 


2. 교육 개요

 

(교육명) 생물공학 × 기계학습

() 20191219() ~ 20()

(장소) 한국과학기술회관 중회의실 (서울시 강남구)

(주최) 한국생물공학회

(개설과정) (이론 교육) 2회 과정 (실습 교육) 2회 진행

(등록기간) 2019. 10. 16() ~ 11. 22() 마감

(대 상) 바이오 분야 재직·연구자, 대학원생

(준비물) Docker, Keras, TensorFlow 등 기계학습 프로그래밍 언어가

설치된 노트북 혹은 휴대용 기기 (실습에 필요)

(주의사항) Docker, Keras, TensorFlow 등 응용 프로그램의 설치법은

워크샵 전 안내를 통해 공지할 예정

 


3. 교육 신청 방법

 

(신청방법) 온라인으로 교육 신청서 제출 및 등록비 납부

(등록비) 일반 200,000/ 학생 150,000

(제공) 교육 자료집, 석식 제공, 조식 제공, 교육장 출입증, 수료증

 

 

4. 과정안내 및 문의

 

강의가 정시에 시작되오니 강의 시작 10분 전까지 입실을 완료해주십시오

수료조건: 해당 과정 교육시간의 80% 이상 수강 시 수료됩니다.

(문의처) 한국생물공학회 Tel 02-557-2526, e-mail : ksbb@ksbb.or.kr

 


5. 프로그램

날짜 (요일)

시간

발표자

 

강의제목

2019. 12. 19

11:00~12:30

 

 

등록

12:30~13:20

김재광 교수

 

이론교육 1

Basic Machine Learning

 

13:30~14:20

김재광 교수

 

이론교육 2

Neural Networks

14:20~14:40

 

 

Coffee break

14:40~16:10

김하성 박사

 

튜토리얼 1

DockerKeras를 활용한 기계학습 실습 (1)

16:10~16:30

 

 

휴식 및 개별 토론

16:30~18:00

김하성 박사

 

튜토리얼 1

DockerKeras를 활용한 기계학습 실습 (2)

18:00~20:00

 

 

정리 및 석식

2019. 12. 20

09:00~10:30

박대찬 교수

 

튜토리얼 2

DNA 서열에 대한 Keras 실전 연습 (1)

10:30~10:50

 

 

휴식 및 개별 토론

10:50~12:20

박대찬 교수

 

튜토리얼 2

DNA 서열에 대한 Keras 실전 연습 (2)

12:20~12:40

 

 

설문 및 질의 응답

 

 

 

6. 이론교육

1

2019. 12. 19 ()

 

김재광 교수

12:30~13:20

Basic Machine Learning

내용 요약

-Introduction to Machine Learning

-k-NN

-Linear Regression

-Model Analysis (Overfitting,Generalization,Cross Validation)

 

2

2019. 12. 19 ()

 

김재광 교수

13:30~14:20

Neural Networks

내용 요약

-Artificial Neural Networks (Math for NN, Neural Networks 1,2,3)

-Convolutional Neural Networks (Convolutional Neural Netowrk 1,2,3)

 

  

7. 튜토리얼 교육

1

2019. 12. 19 ()

 

김하성 박사

14:40~18:00

DockerKeras를 활용한 기계학습 실습

요약

- 컨테이너기반 플랫폼 Docker 사용법 소개 및 이미지 설치

       - 원활한 실습을 위해 사전 (환경) 설정 필수 

       (윈도우 10이상, 노트북 BIOS hardware virtualization 사용 설정,64bt 프로세서, 4G RAM 이상, https://docs.docker.com/docker-for-windows/install/)

- python Keras 소개

- 바이오데이터 (DNA 서열, mRNA 발현, 단백질 활성 정량화) 소개

- Keras를 이용한 classification regression 실습

- Keras를 이용한 CNN 실습

 

2

2019. 12. 20 ()

 

박대찬 교수

09:00~12:40

DNA 서열에 대한 Keras 실전 연습

요약

Practical primer on CNN in genomics: From DNA sequences to Keras

CNN practice using Keras for engineering of regulatory DNA sequences: Learning from yeast screening experiments in synthetic biology

 

 


http://www.ksbb.or.kr/conference/edu_workshop/sub04.html

 

 



+ Recent posts