[TensorFlow] 이미지 분류 신경망 Start

BioinformaticsAndMe










[TensorFlow] 케라스를 이용한 이미지 분류


: TensorFlow 2.0 에서 수행되는 기본적인 이미지 분류 신경망 학습 과정

: 티셔츠/바지/운동화 등의 10개 카테고리 이미지(Fashion MNIST 데이터셋)를 분류하기 위한 뉴럴 네트워크 모델

: 고수준 API인 케라스(tf.keras) 사용 




1. 파이썬 라이브러리 로딩


: 이미지 분류에 사용되는 파이썬 라이브러리 로딩

# '__future__' : python 2에서 python 3 문법 사용 가능 from __future__ import absolute_import, division, print_function, unicode_literals, unicode_literals # 텐서플로우 및 케라스 라이브러리 임포트 import tensorflow as tf from tensorflow import keras # 넘파이 및 matplotlib 라이브러리 임포트 import numpy as np import matplotlib.pyplot as plt

# 텐서플로우 버전 확인 print(tf.__version__)

2.0.0




2. Fashion MNIST 데이터셋


: 이미지 분류의 재료가 되는 Fashion MNIST 데이터셋

ㄱ) 10개 카테고리와 7만개의 흑백 이미지로 구성

ㄴ) 각 이미지는 낮는 해상도로 개별 옷 품목을 나타냄

: 이미지 분류 뉴럴 네트워크 모델링에 6만개의 이미지를 사용

: 만들어진 네트워크의 이미지 분류 정확도를 평가하기 위해, 나머지 1만개 이미지 사용

# Fashion MNIST 데이터셋은 텐서플로우에서 쉽게 로딩 가능

# load_data() 함수로 넘파이 배열을 반환 fashion_mnist = keras.datasets.fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

#train_images, train_labels 배열은 모델 학습에 사용될 Training set #test_images, test_labels 배열은 모델 테스트에 사용될 Test set

Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz 32768/29515 [=================================] - 0s 0us/step Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz 26427392/26421880 [==============================] - 1s 0us/step Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz 8192/5148 [===============================================] - 0s 0us/step Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz 4423680/4422102 [==============================] - 0s 0us/step

: 모든 이미지는 28x28 픽셀의 넘파이 배열 (픽셀 값은 0~255)

: Label은 0~9의 정수 배열 (옷 이미지의 클래스를 나타냄, 각 이미지는 1개 Label에 매핑됨)

# 데이터셋에 클래스 이름이 없으므로, 나중에 이미지를 출력하기 위해 별도의 변수를 생성

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']




3. 데이터 점검


: 모델 훈련 전, Training/Test 데이터셋 구조 확인하기

# Traning set 확인 (60000개 이미지, 28x28 픽셀)

train_images

(60000, 28, 28)

# Training set의 각 Label은 0~9 정수

train_labels

array([9, 0, 0, ..., 3, 0, 5], dtype=uint8)

# Test set 확인 (10000개 이미지, 28x28 픽셀)

test_images.shape

(60000, 28, 28)

# Test set의 각 Label은 0~9 정수

test_labels

array([9, 2, 1, ..., 8, 1, 5], dtype=uint8)




4. 데이터 전처리


: 모델 훈련 전, 정확한 모델링을 위한 데이터셋 전처리

# 픽셀 값의 범위가 0~255 라는 것을 확인

plt.figure() plt.imshow(train_images[0]) plt.colorbar() plt.grid(False) plt.show()

# Training/Test set 모두 255로 나누어, 범위값을 0~1 사이로 표준화

train_images = train_images / 255.0

test_images = test_images / 255.0

# 데이터 포맷 확인을 위해, Training set에서 처음 25개 이미지 및 클래스를 출력

plt.figure(figsize=(10,10)) for i in range(25): plt.subplot(5,5,i+1) plt.xticks([]) plt.yticks([]) plt.grid(False) plt.imshow(train_images[i], cmap=plt.cm.binary) plt.xlabel(class_names[train_labels[i]])

plt.show()




5. 모델 층(Layer) 설정


: 신경망 기본 구성 요소인 층(Layer)을 생성하고 연결

# keras.layers.Flatten로 첫번째 층 생성 후, 두 개의 keras.layers.Dense 층에 연결

model = keras.Sequential([ keras.layers.Flatten(input_shape=(28, 28)), keras.layers.Dense(128, activation='relu'), keras.layers.Dense(10, activation='softmax') ])

#keras.layers.Flatten - 이미지에 있는 픽셀의 행을 펼쳐서 일렬로 배열(28*28=784 픽셀의 1차원 배열 변환) #keras.layers.Dense - 마지막 층은 10개 노드의 Softmax 층으로 10개 클라스 중 하나에 속할 확률을 출력(전체 합=1)




6. 모델 컴파일(Compile)


ㄱ) Optimizer - 데이터와 손실 함수 기반으로 모델 업데이트 방법을 결정

ㄴ) Loss function - 훈련 동안의 모델 오차를 측정 (모델이 올바른 학습을 하도록 이 함수를 최소화)

ㄷ) Metrics - 훈련 단계와 테스트 단계를 모니터링 (아래는 올바르게 분류된 이미지 비율인 정확도를 사용)

# 모델 훈련에 필요한 설정을 컴파일 과정에서 추가

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])




7. 모델 훈련


1) Training set을 모델에 주입 (train_images 및 train_labels 배열)

2) 모델이 이미지와 레이블을 매핑하는 방법을 학습

3) Test set에 대한 모델의 예측 생성 (test_images 및 test_labels 배열)

# model.fit 함수로 모델이 학습되면서 손실과 정확도 지표 출력 model.fit(train_images, train_labels, epochs=5)

Train on 60000 samples Epoch 1/5 60000/60000 [==============================] - 5s 85us/sample - loss: 0.6054 - accuracy: 0.8128 Epoch 2/5 60000/60000 [==============================] - 5s 85us/sample - loss: 0.5179 - accuracy: 0.8242 Epoch 3/5 60000/60000 [==============================] - 5s 85us/sample - loss: 0.5379 - accuracy: 0.8268 Epoch 4/5 60000/60000 [==============================] - 5s 84us/sample - loss: 0.5429 - accuracy: 0.8281 Epoch 5/5 60000/60000 [==============================] - 5s 86us/sample - loss: 0.5362 - accuracy: 0.8312 <tensorflow.python.keras.callbacks.History at 0x7f59c40b9668>




8. 정확도(Accuracy) 평가


: Test set으로 모델의 성능을 비교

: 과적합(Overfitting)으로 인해, Test set이 Training set보다 정확도가 낮음

# model.evaludate 함수로 Test set 정확도 평가 test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2) print('\n테스트 정확도:', test_acc)

10000/1 - 0s - loss: 0.5376 - accuracy: 0.7879 테스트 정확도: 0.7879




9. 예측(Prediction) 실행


학습된 모델을 사용하여, 이미지에 대한 예측이 가능

: Test set에 있는 각 이미지의 Label 예측

# 첫번째 예측으로 10개의 옷 품목에 상응하는 모델의 신뢰도가 배열로 보여짐 predictions = model.predict(test_images)

predictions[0]

array([0. , 0. , 0. , 0. , 0. , 0.1025838 , 0. , 0.10969254, 0. , 0.78772366], dtype=float32)

# 가장 높은 신뢰도를 가진 레이블 확인 np.argmax(predictions[0])

9    #모델은 해당 이미지를 앵클 부츠(class_name[9])로 예측

# 예측이 정확한지 테스트 레이블 확인 test_labels[0]

9    #정답

# 이미지 클래스를 예측하여 그래프/신뢰도를 출력하는 함수 정의 def plot_image(i, predictions_array, true_label, img): predictions_array, true_label, img = predictions_array[i], true_label[i], img[i] plt.grid(False) plt.xticks([]) plt.yticks([]) plt.imshow(img, cmap=plt.cm.binary) predicted_label = np.argmax(predictions_array) if predicted_label == true_label: color = 'blue' else: color = 'red' plt.xlabel("{} {:2.0f}% ({})".format(class_names[predicted_label], 100*np.max(predictions_array), class_names[true_label]), color=color) def plot_value_array(i, predictions_array, true_label): predictions_array, true_label = predictions_array[i], true_label[i] plt.grid(False) plt.xticks([]) plt.yticks([]) thisplot = plt.bar(range(10), predictions_array, color="#777777") plt.ylim([0, 1]) predicted_label = np.argmax(predictions_array) thisplot[predicted_label].set_color('red') thisplot[true_label].set_color('blue')

# 올바른 예측은 파란색, 잘못 예측은 빨강색

# 숫자는 예측 레이블의 신뢰도 퍼센트 num_rows = 5 num_cols = 3 num_images = num_rows*num_cols plt.figure(figsize=(2*2*num_cols, 2*num_rows)) for i in range(num_images): plt.subplot(num_rows, 2*num_cols, 2*i+1) plot_image(i, predictions, test_labels, test_images) plt.subplot(num_rows, 2*num_cols, 2*i+2) plot_value_array(i, predictions, test_labels) plt.show()

# 한 개의 이미지 예측을 테스트하기 위해, Test set에서 이미지 선택 img = test_images[0] # tf.keras 모델은 한 개의 이미지만 사용할 때에도 배치 추가 img = (np.expand_dims(img,0)) # 입력된 이미지에 대한 예측 실행 predictions_single = model.predict(img) plot_value_array(0, predictions_single, test_labels) _ = plt.xticks(range(10), class_names, rotation=45)

# model.predict 함수는 2차원 넘파이 배열을 반환하므로 첫 번째 이미지 예측을 선택 np.argmax(predictions_single[0])

9    #모델은 해당 이미지를 앵클 부츠(class_name[9])로 예측






#Reference

1) https://www.tensorflow.org/tutorials/keras/classification

2) https://colab.research.google.com/github/tensorflow/docs/blob/master/site/ko/tutorials/keras/classification.ipynb#scrollTo=2tRmdq_8CaXb

3) https://towardsdatascience.com/multi-label-classification-and-class-activation-map-on-fashion-mnist-1454f09f5925





[TensorFlow] 이미지 분류 신경망 End

BioinformaticsAndMe

(공고) 특허청 일반직공무원 6급(심사관) 경력경쟁채용시험 공고.pdf

(붙임1) 채용예정 직위별 응시자격 요건(직무기술서).pdf

(붙임2) 서류제출 안내문 및 제출서식.hwp

특허청 6급(심사관) 경력경쟁채용시험 설명회 계획.pdf










생물정보학, 유전체, Bioinformatics, 공무원, 특허청



#특허청 채용 홈페이지

https://www.gojobs.go.kr/frameMenu.do?url=apmList.do&menuNo=3


[Blockchain] 블록체인과 헬스케어 (3) Start

BioinformaticsAndMe







블록체인과 헬스케어


: 블록체인 기술의 발견은 헬스케어 제공자들이 상호운용적으로 안전하게 의료 정보를 공유할 수 있는 장을 만듦

: 의료 헬스케어와 블록체인 각각의 정의와 상호 관계를 이해하기 위해 아래 링크 참조

[Blockchain] 블록체인과 헬스케어 (1)

[Blockchain] 블록체인과 헬스케어 (2)


: 아래 포스팅은 블록체인을 헬스케어 산업에 적용한 3개의 기업을 소개

1) Gem

2) Robomed Network

3) MedRec






1. Gem


: Gem은 2017년 9월 자연재해와 관련된 질병통제센터(CDC)와 협력으로 Gem health를 시작함

: Gem Health는 블록체인으로 건강관리 제공자가 환자 데이터를 공유할 수 있는 공유ID 시스템 구축을 목표

: 접근 권한이 가진 의료인과 환자만이 자료 접근이 가능

: 또한, 약물 공급망관리/사용자기반 보험 등 다양한 분야에서 활용할 수 있는 하나의 공유ID 체계 구축하고자 함

: 이를 위해 Gem Health는 어떤 데이터 저장소나 블록체인 네트워크에서도 접근 가능한 GemOS를 개발

: GemOS 구현을 통해, 블록체인과 건강 데이터 사이의 상호 운용의 가능성을 보여줌






2. Robomed Network


: 의료 서비스 제공자와 환자 사이의 스마트계약 기반으로 연결된 분산 의료 네트워크

: 의료 과정이 아닌, 치료 결과에 기반해서 의료수가를 지불하는 시스템

: 러시아 및 두바이에서 출시되어 환자 9천명, 서비스 3만개 규모를 갖춘 것으로 공개

: 치료 결과 중심으로 공공 의료보험 지급방식의 변화를 지원







3. MedRec


: 미국 MIT에서는 MedRec이라는 이더리움 블럭체인 기반의 의료 데이터 관리 시스템 개발

: MedRec은 여러 기관/의사/연구원이 만들어낸 의료 데이터를 환자 본인을 포함하여 가족들의 정보까지 안전하게 저장

: 분산 DB 기술로 범용적인 의료데이터 연구개발을 위해 쓰임

: 이 시스템을 사용하여 의사와 환자 간에 발생하는 민감 정보를 중앙통제없이 안전하게 관리







#Reference

1) https://enterprise.gem.co/health/

2) https://www.cbinsights.com/research/healthcare-blockchain-startups-medicine/?utm_campaign=drips_digital-health&utm_source=hs_automation&utm_medium=email&utm_content=61538751&_hsenc=p2ANqtz-_WTOVanDRyX0P7rAvzHKKdfRpg3IIzEJRD6Jed7H6B6w7m0JlGO7lxeHqjtv-ZI7sGin1-w_mZRjk2bBPZ2IUO2UHU1qsKTq-pI7I0KVVTCI7o0Ms&_hsmi=61538751

3) http://www.irsglobal.com/bbs/rwdboard/14028

4) http://www.khiss.go.kr/fileDownload?titleId=9067&fileId=2&fileDownType=C&paramMenuId=MENU00305

5) https://medium.com/robomed

6) http://www.startuptoday.kr/news/articleView.html?idxno=27406

7) https://medrec.media.mit.edu/

8) https://www.joinc.co.kr/w/man/12/blockChain/about





[Blockchain] 블록체인과 헬스케어 (3) End

BioinformaticsAndMe



[Python] 파이썬 함수 (Function) Start

BioinformaticsAndMe







파이썬 함수 (Python Function)


: 파이썬 함수는 호출할 때만 실행되는 코드 단위

: 매개변수를 포함한 데이터를 함수를 통해 전달 가능

: 중복되는 스크립트를 줄여, 프로그램의 가독성을 높여줌






1. 함수(function) 만들기


: 파이썬 function을 만들기 위해서, 'def' 키워드로 선언을 해줘야함

# my_function 함수 만들기

def my_function(): print("Hello from a function")

# my_function 함수 호출

my_function()

Hello from a function




2. 함수 매개변수(parameter)


: 입력된 정보가 매개변수(parameter)를 통해 함수에 전달됨

*매개변수(parameter) - 입력된 정보가 저장되는 변수

# fname 매개변수를 사용한 함수 만들기

def my_function(fname): print(fname + " Refsnes")

# 아래 입력된 정보들은 함수의 매개변수로 인지되어 호출

my_function("Emil") my_function("Tobias") my_function("Linus")

Emil Refsnes Tobias Refsnes Linus Refsnes

# 입력된 정보없이 함수를 호출하면, default로 지정된 값이 출력됨

def my_function(country = "Norway"): print("I am from " + country) my_function("Sweden") my_function("India") my_function() my_function("Brazil")

I am from Sweden I am from India I am from Norway I am from Brazil




3. 함수 return


: 파이썬 함수 내에 사용되는 'return'은 결과값을 반환하기 위해 사용됨

# return을 통해, 연산 결과를 반환

def my_function(x): return 5 * x print(my_function(3)) print(my_function(5)) print(my_function(9))

15 25 45





#Reference

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

2) https://www.askpython.com/python/python-functions





[Python] 파이썬 함수 (Function) End

BioinformaticsAndMe

'Python' 카테고리의 다른 글

[Python] File Handling  (0) 2019.12.17
[Python] 표준 입력 (User Input)  (0) 2019.12.12
[Python] 파이썬 반복문  (0) 2019.11.28
[Python] 파이썬 조건문  (0) 2019.11.21
[Python] 사전(Dictionary)  (0) 2019.11.05



Job Description

Agilent's Diagnostics and Genomics Group is seeking an enthusiastic, people-oriented Pre-/Post-Sales Field Applications Scientist (FAS) to provide wet-lab, data analysis, and technical education for our genomics workflow solutions in translational research and clinical laboratory environments. The primary role of this position is to partner with the sales organization and serve as the scientific/technical expert to help drive sales and provide support for new and existing customers.

Significant technical expertise in Next-Generation Sequencing (NGS) applications and bioinformatics is required. This includes, but is not limited to, DNA/RNA sample quality control, target enrichment panel design, preparation of sequencing libraries, and deep expertise in NGS data analysis for the purpose of supporting variant interpretation. Familiarity with the regulatory and diagnostics needs of the clinical laboratory environment is preferred.

As the primary technical liaison between our customers and our field sales team, the pre- and post-sales responsibilities for this FAS role include:

  • Maintaining up-to-date knowledge of clinical genomics trends, laboratory methods, technologies and data analysis techniques. Subject matter expert for practical implementation.
  • Providing scientific/technical consultation to customers in partnership with the sales team
  • Working with key opinion leaders (KOLs) to develop targeted SureSelect panels for Cancer and human inherited diseases, facilitating success from clinical research through to Clinical Routine.
  • Providing remote and/or on-site troubleshooting for NGS results, including sequencing quality metrics, data analysis pipelines, and the associated workflow variables (wet lab, sample QC, filters, etc) that could impact NGS results.
  • Competently delivering scientific/technical presentations and training to external customers, internal personnel, and at marketing events/conferences.
  • Maintaining close alignment with local sales partners, management, R&D and product marketing to communicate voice-of-customer feedback.
  • Proactively partnering with sales and technical support teams to ensure customer support needs are achieved in a timely manner
  • Ensuring that post-sales applications support enquiries and complaints are documented and logged according to regulatory and quality policies.


Qualifications
  • Master's degree (Ph.D. preferred) in Bioinformatics, Genetics, Genomics, Biochemistry, Molecular Biology, or equivalent biological field. 1-3 years of Post-doctoral experience is desirable.
  • Deep expertise in the NGS laboratory workflow, targeted gene panel design and NGS data analysis using various software tools.
  • Minimum of 3-5 years of practical laboratory experience in a Molecular Biology field. Direct experience working in Cancer translational research and/or clinical laboratories preferred.
  • Excellent oral and written communication skills, including strong interpersonal and organizational skills. English speaking skills required.
  • Must be able to work well independently and as part of an integrated/cross-functional team.
  • Requires flexibility in working hours and availability to travel for business ~20-30%.




#한국 애질런트테크놀로지스 채용 홈페이지

https://recruiting.adp.com/srccar/public/RTI.home?r=5000549805706&c=2167807&d=External&rb=INDEED&sid=364#/

이산분포 (Discrete distribution) Start

BioinformaticsAndMe







이산 확률 분포 (Discrete probability distribution)


: 이산확률분포(이산분포)란 불연속한 데이터에 기반한 이산확률변수 확률분포

*확률 변수가 취하는 값들이 유한하고 셀 수 있을 때, 이에 대응하는 확률분포

: 이산분포에는 이항/기하/초기하/포아송/음이항 분포들이 존재함


# 이산분포의 대표적인 3개 분포

1) 이항분포(Binomial distribution)

2) 초기하분포(Hypergeometric distribution)

3) 포아송분포(Poisson distribution)






1. 이항분포 (Binomial distribution)


: n번의 독립 베르누이 시행에서 성공 확률이 p일 때의 확률 분포

*베르누이 시행(Bernoulli trial) - 반복된 실험에서 '성공(Binary 1) 또는 실패(Binary 0)'의 두 가지 경우만 나오는 시행

: 이항분포는 n이 커질수록 점점 폭이 좁아지며 정규분포에 가까워짐

*n=1의 이항분포는 베르누이 분포라 불림


#예제) 많은 인구의 5%가 쌍꺼풀 갖고 있고, 무작위로 100명을 선택하는 상황

→ 이 분포는 n=100이고,  p=0.05인 이항분포






2. 초기하분포 (Hypergeometric distribution)


: 비복원추출에서 N개 중에 K를 원하고, n번 추출했을때 원하는 k개가 뽑힐 확률 분포

*각 시행이 비복원 추출이며, 시행 결과가 두 가지인 확률분포

: 초기하분포는 한정된 population에서의 샘플링으로 생겨남


#예제) 초기하분포에 근거한 Fisher's Exact Test를 수행한 영상 (m&m 초콜릿을 예로 쉽게 설명)





3. 포아송분포 (Poisson distribution)


: 일정한 시간/공간 내에서 발생하는 사건 횟수에 따른 확률분포

: 포아송분포의 특징

ㄱ) 주어진 시간에 일어난 사건 횟수는 다른 시간에 일어난 사건 횟수와 독립적임

ㄴ) 매우 짧은 시간 영역에서, 둘 이상의 결과가 일어날 확률은 무시 가능

ㄷ) 매우 짧은 시간 영역에서, 시간의 길이와 사건이 한 번 발생할 확률은 비례함


#예제) 공장 생산 부품 중 불량품 발생이 하루 평균 6개의 포아송분포를 따를 때,
하루 동안 공장에서 생산되는 불량품이 8 개 이상인 확률 구하기
→ 하루 평균 6개인 포아송분포로, 불량품이 8개 이상일 확률은 0.25585









#Reference

1) https://medium.com/analytics-vidhya/probability-distributions-444e7babf2e1

2) https://rfriend.tistory.com/99

3) https://namu.wiki/w/%ED%99%95%EB%A5%A0%20%EB%B6%84%ED%8F%AC

4) http://pel.smuc.ac.kr/phpbb/download/file.php?id=151&sid=e776e487c74deb0ebe100c7ac0256ee1

5) https://terms.naver.com/entry.nhn?docId=3338096&cid=47324&categoryId=47324

6) https://present5.com/ef-507-quantitative-methods-for-economics-and-finance-3/

7) https://towardsdatascience.com/understanding-bernoulli-and-binomial-distributions-a1eef4e0da8f

8) https://ko.wikipedia.org/wiki/%EC%9D%B4%ED%95%AD_%EB%B6%84%ED%8F%AC

9) https://ko.wikipedia.org/wiki/%EC%B4%88%EA%B8%B0%ED%95%98%EB%B6%84%ED%8F%AC

10) http://godrag77.blogspot.com/2011/07/poisson-distribution.html

11) https://www.youtube.com/watch?v=udyAvvaMjfM





이산분포 (Discrete distribution) End

BioinformaticsAndMe

'Statistics' 카테고리의 다른 글

신뢰구간 (Confidence Interval)  (0) 2019.12.17
분위수 (Quantile)  (0) 2019.12.11
생존 분석 (Survival analysis)  (1) 2019.11.25
분산 분석 (ANOVA)  (0) 2019.11.04
Z-검정 (Z-test)  (0) 2019.10.28

[R] 파이차트(Pie plot) Start

BioinformaticsAndMe







1. R pie chart


: R에는 파이 차트를 그릴 수 있는 '내장 함수 pie'가 존재

# 기본 pip 차트 apple <- c(10,20,30,40) pct <- round(apple/sum(apple)*100, 1)        # 비율 값 지정 lab <- paste(pct,"%") pie(apple, init.angle=90, col=rainbow(length(apple)), label=lab)        # init.angle 옵션은 파이 차트의 시작 각도 지정

legend("topright", ,c("1주","2주","3주","4주"), cex=0.8, fill=rainbow(length(apple)) )





2. ggplot2 파이 차트


: R에서 제공하는 기본 pie 함수는 시각적/기능적 한계를 가지므로, ggplot2 함수로 성능 확장

# 예제 데이터 생성 df <- data.frame( group = c("Male", "Female", "Child"), value = c(25, 25, 50) ) head(df)

group value
1 Male 25
3 Child 50
2 Female 25

# ggplot2 로딩 후, barplot 그리기 library(ggplot2) bp<- ggplot(df, aes(x="", y=value, fill=group))+ geom_bar(width = 1, stat = "identity") bp

# Pie chart 그리기 pie <- bp + coord_polar("y", start=0) pie

# Pie chart 색상 지정 pie + scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))

# Pie chart 팔레트 색상 사용 pie + scale_fill_brewer(palette="Blues") + theme_minimal()






#Reference

1) http://www.sthda.com/english/wiki/ggplot2-pie-chart-quick-start-guide-r-software-and-data-visualization







[R] 파이차트(Pie plot) End

BioinformaticsAndMe



'R' 카테고리의 다른 글

[R] ggplot2  (0) 2019.12.16
[R] 상자그림(Box plot)  (0) 2019.12.10
[R] 생존분석(Survival analysis)  (0) 2019.11.25
[R] 히스토그램(Histogram)  (0) 2019.11.18
[R] Excel 읽기/쓰기  (0) 2019.11.05

[Intrauterine Insemination] 인공수정 Start

BioinformaticsAndMe







1. 인공수정 (Intrauterine Insemination;IUI)


: 인공수정(자궁 내 수정;Intrauterine Insemination;IUI)은 수정을 촉진하기 위해, 여성 자궁 안에 정자를 직접 주입하는 불임 치료 방법

*정자를 채취하고 활동성을 강화하여, 직접 자궁에 투여함(체내인공수정)

: IUI 과정으로 여성의 나팔관(수란관)에 도달하는 정자수를 늘리고 수정 가능성을 높임

: IUI를 통한 임신율은 3개월 내에 50%, 6개월 내에 90% 정도로 알려짐

: 보통 4회까지 시행으로 임신되지 않으면, 시험관 아기 시술(In Vitro Fertilization-Embryo Transfer;IVF) 진행

*시험관아기시술(체외인공수정) - 과배란 난자 채취 후, 시험관에서 정자와 수정시켜 포배기까지 키워 자궁에 착상시킴




2. 인공수정 이유


ㄱ) 정자수가 적거나 활동성이 떨어진 경우

ㄴ) 원인불명 불임(Unexplained infertility)

ㄷ) 자궁내막증 관련 불임(Endometriosis-related infertility)

ㄹ) 자궁경부 불임(Cervical factor infertility)

ㅁ) 배란요인 불임(Ovulatory factor infertility)

ㅂ) 정액 알러지(Semen allergy)

ㅅ) 사정 부전(Ejaculation dysfunction)


#IUI 인공수정은 아래 환자들에게 추천되지 않음

1) 나팔관(수란관)에 중증 질환을 가진 여성

2) 골반 감염 병력을 가진 여성

3) 심각한 자궁내막증을 가진 여성





3. 인공수정 위험


: IUI는 비교적 간단하고 안전한 방법이지만, 간혹 합병증의 부작용을 보임

a) Infection - 시술 과정에서 발생하는 감염의 위험

b) Spotting - 자궁 내 카테터 삽입시 질 출혈 발생

c) OHSS -  Ovarian hyperstimulation syndrome(난소과자극 증후군)

d) Multiple pregnancy - 과배란 유도 부작용으로 쌍둥이(Twins) 임신 확률 증가



#쌍둥이(Twins)

1) 일란성 쌍둥이(Identical twins)

- 한 개 수정란이 발생 과정 중에 나뉘어서 각각의 배아로 발달하는 경우

- 유전자가 서로 완벽하게 일치함


2) 이란성 쌍둥이(Fraternal twins)

- 두 개 난자가 동시에 배란되어 수정되는 경우

- 유전적으로 동일할 확률이 극도로 낮음









# IUI 인공수정 과정











#Reference
1) https://americanpregnancy.org/getting-pregnant/intrauterine-insemination/
2) https://www.mayoclinic.org/tests-procedures/intrauterine-insemination/about/pac-20384722
3) https://post.naver.com/viewer/postView.nhn?volumeNo=11366434&memberNo=1895169
4) https://namu.wiki/w/%EC%9D%B8%EA%B3%B5%EC%88%98%EC%A0%95
5) https://terms.naver.com/entry.nhn?docId=927764&cid=51007&categoryId=51007
6) https://smgwomenshealth.sg/doctors-guide/fertility/iui/
7) https://www.invitra.com/en/problems-of-artificial-insemination/
8) https://www.pinterest.cl/pin/379287599840668175/
9) https://www.youtube.com/watch?v=qCdIiLLF0vw




[Intrauterine Insemination] 인공수정 End

BioinformaticsAndMe

'Technology' 카테고리의 다른 글

[Chromatography] 크로마토그래피  (0) 2019.12.16
[Gene cloning] 유전자클로닝  (0) 2019.12.10
[Dialysis] 인공투석  (0) 2019.11.26
[ELISA] 효소결합면역흡착검사  (0) 2019.11.18
[Cloning] 생명 복제  (0) 2019.11.13

뉴런 (Neuron) Start

BioinformaticsAndMe







1. 뉴런 (Neuron)


: 뉴런(=신경세포)은 신경계와 신경조직을 구성하는 기본 세포

: 신경계의 모든 작용은 뉴런 간의 상호작용으로 인해 이루어짐

*시냅스 구조를 통해 신호를 주고 받음

: 뉴런은 나트륨/칼륨 채널 등의 이온 통로로 전기적 신호를 전달

: 인간 대뇌 피질에만 약 100억개의 뉴런이 존재





2. 뉴런 구조


ㄱ) 신경세포체(Cell body)

- 신경세포의 중심으로 세포핵과 세포소기관들이 존재

- 대부분의 단백질들이 합성됨

- 뉴런에 양분을 공급하고 물질 대사를 조절


ㄴ) 수상돌기(Dendrites)

- 여러 가지로 뻗어나와있어, 많은 자극 신호를 수용함

- 다른 세포들의 정보를 받아 수용기 전위를 발생시킴

- 수상돌기 끝에 Polyribosome이 필수 단백질들을 합성


ㄷ) 축삭(Axon)

- 세포체로부터 아주 길게 뻗어나가는 부분

- 축삭이 시작되는 축삭둔덕에서 활동 전위로 발생시켜, 긴 돌기 구조를 따라 다른 세포로 전달함

- 축삭 말단에는 미토콘드리아와 신경 전달 물질로 채워진 소낭들이 존재


ㄹ) 수초(Myelin sheath)

- 일종의 절연체로 전기신호가 새어나가는 것을 막음

- 수초가 형성되면 정보전달속도가 빨라짐


ㅁ) 랑비에르결절(Nodes of Ranvier)

- 수초가 감싸지 않아 축삭이 노출된 부분






3. 뉴런 종류


: 말초신경에 감각뉴런/운동뉴런, 중추신경에 연합뉴런이 존재

1) 감각뉴런(구심성뉴런;Sensory neuron)

- 감각 신호를 받아들이는 신경으로 말초 신경계를 구성함

- 감각기에서 전신의 감각 정보들을 받아 중추 신경계로 전달함

- 신경세포체가 세포의 중간에 위치함


2) 연합뉴런(개재뉴런;Interneuron)

- 뇌와 척수의 중추 신경계 대부분을 구성하는 뉴런

- 감각뉴런과 운동뉴런을 연결

- 축삭 돌기가 길지 않아 수초가 없음


3) 운동뉴런(원심성뉴런;Motor neuron)

- 몸의 여러 부위로 명령을 보내는 신경으로 말초 신경계를 구성함

- 중추 신경계의 명령을 효과기들로 전달해서 반응을 일으킴

- 다양한 정보 처리를 위해 많은 수상돌기를 가짐









#Reference

1) https://training.seer.cancer.gov/anatomy/nervous/tissue.html

2) https://namu.wiki/w/%EB%89%B4%EB%9F%B0

3) https://ko.wikipedia.org/wiki/%EC%8B%A0%EA%B2%BD_%EC%84%B8%ED%8F%AC

4) https://www.medicalnewstoday.com/articles/320289.php

5) https://www.apsubiology.org/anatomy/2010/2010_Exam_Reviews/Exam_3_Review/CH_11_Types_of_Neurons.htm





뉴런 (Neuron) End

BioinformaticsAndMe



'Biology' 카테고리의 다른 글

RNA 종류 (Types of RNA)  (0) 2019.12.12
난할 (Cleavage)  (0) 2019.12.09
발효 (Fermentation)  (0) 2019.11.27
멘델의 유전법칙 (Mendelian inheritance)  (0) 2019.11.21
마이크로RNA (miRNA)  (0) 2019.11.18

비스테로이드 항염증제 (NSAID) Start

BioinformaticsAndMe







1. 비스테로이드 항염증제 (Non-Steroidal Anti-Inflammatory Drug;NSAID;NAID)


: NSAID는 마약성 진통제와 스테로이드를 제외한 비스테로이드 소염제

: 진통/해열/항염증/혈관조절/혈소판기능조절 등에 흔히 사용되는 약물

: 1899년 Aspirin 판매 시작부터 현재까지, NSAID는 세계적으로 가장 많이 처방된 약제

: NSAID는 경구약/주사제/외용제 등 다양한 제형으로 일상에서 널리 사용됨





2. NSAID 작용 기전


: NSAID는 염증을 유발하는 프로스타글란딘 생성효소인 COX(Cyclooxygenase)를 억제

→ Arachidonic acid(아라키돈산)로부터 Prostaglandin(프로스타글란딘) 합성을 억제

: Prostaglandin은 다시 Thromboxane(트롬복산), Prostacycline(프로스타사이클린) 등으로 변화하고 NSAID는 이를 저해함

*아이코사노이드 호르몬 - 프로스타글란딘(PG), 트롬복산(TB), 류코트리엔(LT), 프로스타사이클린(PC)

         - 불안정한 구조의 지방산 유도체로 국부 호르몬으로 작용함

: COX는 COX1, COX2, COX3 등으로 나뉘며, 인간에서는 COX1, COX2가 존재하는 것으로 알려짐
ㄱ) COX1 - 혈액응고와 위점막 보호에 관련된 효소 (아스피린으로 억제)
ㄴ) COX2 - 혈관확장 등의 염증작용에 관련된 효소 (아스피린, 셀레콕시브로 억제)
ㄷ) COX3 - 뇌의 시상하부에 작용할 것으로 추측 (아세트아미노펜;타이레놀로 억제)





3. NSAID 부작용


ㄱ) 위장 - 무증상 위점막 손상/속쓰림/소화불량/위 출혈/십이지장 궤양 등의 위장 부작용

ㄴ) 신장 - NSAIDs 사용으로 인한 PG 합성 억제로 신사구체 여과 감소 및 부종 등의 부작용

ㄷ) 간장 - 간독성 발생이 높으며, 경우에 따라 담즙정체황달의 발병 가능성 증가

ㄹ) 심혈관계 - COX-2 억제제와 비선택적 NSAIDs는 심혈관계 위험성을 높임








#Reference

1) https://namu.wiki/w/NSAID

2) https://synapse.koreamed.org/Synapse/Data/PDFData/0119JKMA/jkma-61-367.pdf

3) https://www.dowa.co/aspirin-tablets-500-mg

4) https://docplayer.net/22933762-Non-steroidal-antiinflammatory-nsaids-r-b-janani-buddhika-dept-of-health-sciences-the-open-university-of-sri-lanka.html

5) https://www.verywellhealth.com/best-anti-inflammatory-medication-2548734

6) http://www.monews.co.kr/news/articleView.html?idxno=99635





비스테로이드 항염증제 (NSAID) End

BioinformaticsAndMe

'Medicine' 카테고리의 다른 글

뇌척수 약물투여방법  (0) 2021.01.30
페닐케톤뇨증 (Phenylketonuria)  (0) 2019.12.21
겸상적혈구빈혈증 (Sickle cell anemia)  (0) 2019.11.26
[Medical terminology] 의학용어2  (0) 2019.11.01
[Medical terminology] 의학용어1  (0) 2019.10.31

+ Recent posts