[TensorFlow] RNN 기반의 텍스트 분류 Start

BioinformaticsAndMe









[TensorFlow] RNN을 이용한 텍스트 분류


: TensorFlow 2.0 에서 수행되는 RNN(순환신경망) 기반의 텍스트 분류 신경망 학습 과정

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

: IMDB Large Movie Review Dataset 영화 리뷰 데이터 사용

ㄱ) '긍정 리뷰는 1, 부정 리뷰는 0'으로 표시된 레이블 및 리뷰에 대한 텍스트로 구성된 데이터

ㄴ) 25000개 Training 데이터 및 25000개 Testing 데이터를 보유




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


: 텍스트 분류에 사용되는 파이썬 라이브러리 로딩

# '__future__' : python 2에서 python 3 문법 사용 가능 from __future__ import absolute_import, division, print_function, unicode_literals # 텐서플로우 및 데이터셋 라이브러리 임포트 import tensorflow_datasets as tfds import tensorflow as tf

# 시각화를 위한 matplotlib 라이브러리 임포트 import matplotlib.pyplot as plt def plot_graphs(history, string): plt.plot(history.history[string]) plt.plot(history.history['val_'+string], '') plt.xlabel("Epochs") plt.ylabel(string) plt.legend([string, 'val_'+string]) plt.show()




2. 인풋 프로세스 설정


: Training을 위한 Input 데이터 및 파이프라인 설정

# 데이터셋 다운로드

dataset, info = tfds.load('imdb_reviews/subwords8k', with_info=True, as_supervised=True) train_dataset, test_dataset = dataset['train'], dataset['test']

Downloading and preparing dataset imdb_reviews (80.23 MiB) to /root/tensorflow_datasets/imdb_reviews/subwords8k/0.1.0... Dl Completed... 1/|/100% 1/1 [00:04<00:00, 4.94s/ url] Dl Size... 80/|/100% 80/80 [00:04<00:00, 16.31 MiB/s] Dataset imdb_reviews downloaded and prepared to /root/tensorflow_datasets/imdb_reviews/subwords8k/0.1.0. Subsequent calls will reuse this data.

# 데이터셋 info에는 인코딩 정보가 담기며, 컴퓨터가 인식하는 단어수 출력

encoder = info.features['text'].encoder

print ('Vocabulary size: {}'.format(encoder.vocab_size))

Vocabulary size: 8185

# 'Hello TensorFlow' 인코딩하기

sample_string = 'Hello TensorFlow.' encoded_string = encoder.encode(sample_string) print ('Encoded string is {}'.format(encoded_string)) original_string = encoder.decode(encoded_string) print ('The original string: "{}"'.format(original_string))

Encoded string is [4025, 222, 6307, 2327, 4043, 2120, 7975] The original string: "Hello TensorFlow."

# 예외 처리를 위한 가정 설정문(assert) 사용

assert original_string == sample_string # 인코드된 정보 확인 for index in encoded_string: print ('{} ----> {}'.format(index, encoder.decode([index])))

4025 ----> Hell 222 ----> o 6307 ----> Ten 2327 ----> sor 4043 ----> Fl 2120 ----> ow 7975 ----> .

# Training을 위한 데이터 준비

BUFFER_SIZE = 10000        #Buffer size: 1 epoch 되는 데이터 수 BATCH_SIZE = 64             #Batch size: 1 step에서 사용되는 데이터 수


train_dataset = train_dataset.shuffle(BUFFER_SIZE) train_dataset = train_dataset.padded_batch(BATCH_SIZE, train_dataset.output_shapes) test_dataset = test_dataset.padded_batch(BATCH_SIZE, test_dataset.output_shapes)




3. 모델 생성


: 입/출력을 시퀀스 단위로 처리하고 순환적으로 주고 받는 RNN 모델 생성

# 텍스트를 숫자로 변환하는 Word embedding에서, Layer는 단어마다 하나의 Vector로 저장

model = tf.keras.Sequential([ tf.keras.layers.Embedding(encoder.vocab_size, 64), tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64)), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(1, activation='sigmoid') ])

# 케라스 모델을 컴파일하여, Training 과정 configure

model.compile(loss='binary_crossentropy', optimizer=tf.keras.optimizers.Adam(1e-4), metrics=['accuracy'])




4. 모델 Training


# model.fit 함수로 모델이 학습되면서 손실과 정확도 지표 출력

history = model.fit(train_dataset, epochs=10, validation_data=test_dataset,

validation_steps=30)

Epoch 1/10 391/391 [==============================] - 937s 2s/step - loss: 0.6472 - accuracy: 0.6030 - val_loss: 0.0000e+00 - val_accuracy: 0.0000e+00 Epoch 2/10 391/391 [==============================] - 994s 3s/step - loss: 0.3484 - accuracy: 0.8593 - val_loss: 0.3369 - val_accuracy: 0.8505 Epoch 3/10 391/391 [==============================] - 988s 3s/step - loss: 0.2492 - accuracy: 0.9074 - val_loss: 0.3119 - val_accuracy: 0.8698 Epoch 4/10 391/391 [==============================] - 986s 3s/step - loss: 0.2091 - accuracy: 0.9244 - val_loss: 0.3093 - val_accuracy: 0.8693 Epoch 5/10 391/391 [==============================] - 987s 3s/step - loss: 0.1793 - accuracy: 0.9371 - val_loss: 0.3262 - val_accuracy: 0.8693 Epoch 6/10 391/391 [==============================] - 988s 3s/step - loss: 0.1595 - accuracy: 0.9454 - val_loss: 0.3674 - val_accuracy: 0.8708 Epoch 7/10 391/391 [==============================] - 996s 3s/step - loss: 0.1450 - accuracy: 0.9516 - val_loss: 0.3684 - val_accuracy: 0.8672 Epoch 8/10 391/391 [==============================] - 987s 3s/step - loss: 0.1432 - accuracy: 0.9529 - val_loss: 0.4392 - val_accuracy: 0.7958 Epoch 9/10 391/391 [==============================] - 982s 3s/step - loss: 0.1345 - accuracy: 0.9560 - val_loss: 0.3832 - val_accuracy: 0.8542 Epoch 10/10 391/391 [==============================] - 990s 3s/step - loss: 0.1104 - accuracy: 0.9657 - val_loss: 0.4369 - val_accuracy: 0.8547

# model.evaludate 함수로 Test set 정확도 평가 test_loss, test_acc = model.evaluate(test_dataset) print('Test Loss: {}'.format(test_loss)) print('Test Accuracy: {}'.format(test_acc))

391/391 [==============================] - 192s 491ms/step - loss: 0.4446 - accuracy: 0.8577 Test Loss: 0.44456175211674115 Test Accuracy: 0.8576800227165222

# 패딩(padding) - 모델 입력으로 사용하기 위해, 모든 샘플 길이를 동일하게 맞추는 작업

# 보통 0을 넣어서 길이가 다른 샘플들의 길이를 맞춰줌

def pad_to_size(vec, size): zeros = [0] * (size - len(vec)) vec.extend(zeros) return (vec)

# 예측도 함수 정의 (prediction이 0.5이상은 리뷰 positive, 0.5이하는 리뷰 negative)

def sample_predict(sentence, pad): encoded_sample_pred_text = encoder.encode(sample_pred_text) if pad: encoded_sample_pred_text = pad_to_size(encoded_sample_pred_text, 64) encoded_sample_pred_text = tf.cast(encoded_sample_pred_text, tf.float32) predictions = model.predict(tf.expand_dims(encoded_sample_pred_text, 0)) return (predictions)

# 패딩 작업없이 Sample text 분류 sample_pred_text = ('The movie was cool. The animation and the graphics ' 'were out of this world. I would recommend this movie.') predictions = sample_predict(sample_pred_text, pad=False) print (predictions)

[[0.5275577]]        #Positive

# 패딩 작업으로 Sample text 분류 sample_pred_text = ('The movie was cool. The animation and the graphics ' 'were out of this world. I would recommend this movie.') predictions = sample_predict(sample_pred_text, pad=True) print (predictions)

[[0.57966185]]        #Positive

# 모델의 정확도값 시각화 plot_graphs(history, 'accuracy')

# 모델의 손실값 시각화 plot_graphs(history, 'loss')





#Reference

1) https://www.tensorflow.org/tutorials/text/text_classification_rnn

2) https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/text/text_classification_rnn.ipynb#scrollTo=hw86wWS4YgR2

3) https://wikidocs.net/24586

4) https://towardsdatascience.com/implementation-of-rnn-lstm-and-gru-a4250bf6c090

5) https://wikidocs.net/32105





[TensorFlow] RNN 기반의 텍스트 분류 End

BioinformaticsAndMe



#인실리코젠 인턴십 지원

人CoINTERNSHIP_지원서_2019.doc (102 KB)



#인실리코젠 인턴십 지원 홈페이지

https://insilicogen.com/blog/333








RNA 종류 (Types of RNA) Start

BioinformaticsAndMe







다양한 RNA


1) mRNA (messenger RNA; 전령 RNA)

2) rRNA (ribosomal RNA; 리보솜 RNA)

3) tRNA (transfer RNA; 운반 RNA)

4) snRNA (small nuclear RNA; 소형 핵 RNA)

5) snoRNA (small nucleolar RNA; 소형 인 RNA)

6) aRNA (antisense RNA; 안티센스 RNA)

7) miRNA (micro RNA; 마이크로 RNA)

8) siRNA (small interfering RNA; 소형 방해 RNA)

9) piRNA (piwi interacting RNA; piwi 결합 RNA)




1. mRNA (messenger RNA; 전령 RNA)


: DNA 유전 정보를 담은 일종의 설계도 역할을 하는 RNA

*원핵생물 - 1개 mRNA에 여러 개의 번역 정보가 담김 (다시스트론성;Polycistronic)

*진핵생물 - 1개 mRNA에 1개의 번역 정보가 담김 (단일시스트론성;Monocistronic) 

: 1차 전사체를 합성하면서 mRNA 가공이 동시에 일어남 (진핵생물)

: mRNA 가공 → Capping/Tailing/Splicing/RNAediting

ㄱ) 5` Capping (모자 씌우기)

- 모자 형성 효소들이 RNA 합성효소2의 C-terminal domain에 붙어서 합성

- mRNA가 분해되지 않도록 안정화

- mRNA가 핵에서 세포질로 나가도록 조절

- 40s 소단위체의 결합 자리를 제공하여 번역 개시 지원


ㄴ) 3` Tailing (꼬리 달기)

- 꼬리 형성 효소들이 RNA 합성효소2의 C-terminal domain에 붙어서 합성

- mRNA 3`말단의 AAUAAA 서열을 인식하여, 아데닌 염기들을 주형 가닥없이 연장

- mRNA가 분해되지 않도록 안정화

- Poly A 꼬리 길이에 따라 번역량이 조절


ㄷ) Splicing (스플라이싱;이어붙이기)

- mRNA의 인트론을 제거하고 엑손만을 이어붙이는 과정

- Spliceosome 복합체 → 인트론 5`말단의 GU, 3`말단의 AG를 인식해서 올가미모양으로 제거 (핵)

- 자가 스플라이싱 → 스플라이솜 복합체 도움없이 자체적으로 제거 과정을 수행


ㄹ) RNA editing (RNA 편집)

- mRNA의 특정 염기를 다른 염기로 치환하거나, 특정 염기 서열을 Insertion/Deletion

- ApoB 유전자는 소장에서 RNA 편집이 일어나지만, 간에서는 RNA 편집이 발생하지 않음




2. rRNA (ribosomal RNA; 리보솜 RNA)


: 리보솜을 구성하는 RNA로 단백질 번역에 관여

: rRNA는 세포핵 속의 인에서 주로 전사됨

*RNA합성효소1 - 인 내에서 28S/18S/5.8S rRNA 전사

*RNA합성효소3 - 인 밖에서 5S rRNA 전사

: 핵공을 통해 들어온 리보솜 단백질과 결합하여, 40S/60S 소단위체를 형성

: 다시 핵공을 통해 세포질로 빠져 나옴

: 리보솜 소단위체의 rRNA는 mRNA 개시 코돈 인식부위




3. tRNA (transfer RNA; 운반 RNA)


: 단백질 합성에 관여하는 RNA

: mRNA 코돈에 대응하는 안티코돈을 지니며, 동시에 꼬리에는 안티코돈에 대응하는 아미노산을 지님

: tRNA는 RNA합성효소3를 통해, 핵에서 전사된 후 세포질로 나옴

: tRNA는 자체적으로 염기를 변형하고, 내부적으로 스플라이싱을 수행함




4. snRNA (small nuclear RNA; 소형 핵 RNA)


: 핵 내의 mRNA를 스플라이싱하는 RNA

: 스플라이소좀(Spliceosome) 복합체를 이룸



5. snoRNA (small nucleolar RNA; 소형 인 RNA)


: 핵에서 RNA 변형을 일으키는 RNA

: 전구 rRNA의 메틸화




6. aRNA (antisense RNA; 안티센스 RNA)


: 단백질 번역을 조절하는 RNA




7. miRNA (micro RNA; 마이크로 RNA)


: 유전자 발현을 억제하는 RNA

: mRNA와 상보적으로 결합해 세포 내 발현 조절




8. siRNA (small interfering RNA; 소형 방해 RNA)


: RNA 간섭(Interferance)에 관여하는 20~25nt RNA

: 특정 단백질의 생산을 억제함으로써 유전자 발현을 방해




9. piRNA (piwi-interacting RNA; piwi 결합 RNA)


: piwi 단백질과 함께 RNA-단백질 복합체를 이루는 26~31nt RNA

: 동물세포에서 발현되어 유전자 침묵/정자형성 과정에 관여함








#Reference

1) https://ko.wikipedia.org/wiki/RNA

2) https://namu.wiki/w/RNA

3) https://ko.wikipedia.org/wiki/PiRNA

4) https://www.researchgate.net/figure/RNA-processing-begins-with-the-addition-of-a-5-cap-and-a-3-polyrA-tail-to-the_fig2_280392530

5) https://www.semanticscholar.org/paper/The-process-of-RNA-editing-in-plant-mitochondria.-Takenaka-Verbitskiy

6) https://bioinformaticsandme.tistory.com/214

7) https://socratic.org/questions/57dc05817c0149755d006025

8) http://hyperphysics.phy-astr.gsu.edu/hbase/Organic/trna.html

9) https://royalsocietypublishing.org/doi/10.1098/rsob.170073

10) https://en.wikipedia.org/wiki/Small_interfering_RNA





RNA 종류 (Types of RNA) End

BioinformaticsAndMe



'Biology' 카테고리의 다른 글

체온조절 (Thermoregulation)  (0) 2019.12.18
진핵세포 구조 (Eukaryote structure)  (0) 2019.12.18
난할 (Cleavage)  (0) 2019.12.09
뉴런 (Neuron)  (0) 2019.12.02
발효 (Fermentation)  (0) 2019.11.27

[Python] 표준 입력 (User Input) Start

BioinformaticsAndMe







파이썬 표준 입력 (Python Input function)


: 파이썬은 사용자에게 임의의 정보를 입력하도록 요청할 수 있는 Input function이 존재

: 표준 입력 방법은 'Python3' 및 'Python2'에서 서로 다름




1. 파이썬 3 표준 입력


: 파이썬 3는 Input() 메소드 사용

# 유저 이름 입력받기

username = input("Enter username:") print("Username is: " + username)

Enter username: Gold Username is: Gold




2. 파이썬 2 표준 입력


: 파이썬 2는 raw_Input() 메소드 사용

# 유저 이름 입력받기

username = raw_input("Enter username:") print("Username is: " + username)

Enter username: Silver Username is: Silver





#Reference

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

2) https://pynative.com/python-input-function-get-user-input/





[Python] 표준 입력 (User Input) End

BioinformaticsAndMe

'Python' 카테고리의 다른 글

[Python] PyMongo 설치  (0) 2020.01.02
[Python] File Handling  (0) 2019.12.17
[Python] 파이썬 함수 (Function)  (0) 2019.12.05
[Python] 파이썬 반복문  (0) 2019.11.28
[Python] 파이썬 조건문  (0) 2019.11.21

AI 기반 신약후보물질 발굴 기업 Start

BioinformaticsAndMe







AI 기반 신약후보물질 발굴 기업


1) GSK (GlaxoSmithKline;글락소스미스클라인;영국)

2) Atomwise (아톰와이즈;미국)

3) Numerate (뉴머레이트;미국)

4) Johnson & Johnson (존슨앤드존슨;미국)

5) Just Biotherapeutics (미국)

6) e-Therapeutics (영국)

7) Cloud Pharmaceuticals (미국)
8) Berg (미국)

9) Recursion Pharmaceuticals (미국)

10) Accutar Biotech (미국)





1. GSK (GlaxoSmithKline;글락소스미스클라인;영국)


: 제약사 보유 데이터 및 Public DB 데이터를 통합하여 신약 후보 물질 발굴

: Biogene/EMBL-EBI/GSK/Sanger/Takeda 등의 13개의 DB에 기반하여, 유전체와 질환의 관계를 규명한 Open Targets DB 개발

: 제약사 보유 데이터 및 Open Targets DB 기반의 Semi-supervised learning으로, 신규 약물 후보 마커 발굴

https://www.gsk.com/



2. Atomwise (아톰와이즈;미국)


: 딥러닝 기술로 분자들의 화학/생물학적 반응을 예측하여, 주요 질병에 대한 치료 신약을 동정할 수 있는 아톰넷(AtomNet) 개발

: 아톰넷을 통해, 단지 하루 만에 에볼라에 효과적인 신약후보 2개 발굴

: 아톰넷은 하루 백만 개 이상의 화합물을 시뮬레이션하고, 천만 가지 화합물을 조합 및 테스트함

https://www.atomwise.com/




3. Numerate (뉴머레이트;미국)


: ADME(Absorption/Distribution/Metabolism/Excretion)와 약물 독성을 예측하는 모델 개발 플랫폼 제공

: 약물의 3D shape와 Electrostatics을 통해 약물 효과를 DNN 모델링

: 독성을 예측하고 관련된 패스웨이/메타정보를 제공

http://www.numerate.com/




4. Johnson & Johnson (존슨앤드존슨;미국)


: 약물 화학 구조 데이터 및 Cell line 약물 반응 screening 데이터를 통합하여 인풋 데이터로 사용

: Compound의 용량별 assay 데이터 기반의 multi-task learning을 통해, 신약 후보 Compound 발굴

: 모든 Compound assay 데이터와 Cell line 약물 반응 microscopy 이미지를 통합

https://www.jnj.com/




5. Just Biotherapeutics (미국)


: 공개된 데이터 DB인 LabKey Biologics를 통해, 전처리 및 기계학습 적용 가능한 형태의 데이터 제공

: Lead optimization/Lead selection/Auto capture 등이 가능한 Abacus 플랫폼 서비스 제공

: Justruct라 불리는 public 3D macromolecular structure 오픈 소스 코드 제공

http://www.justbiotherapeutics.com/




6. e-Therapeutics (영국)


: Protein-Protein interaction/Pan-Omics information/Compound-protein signature DB 및 문헌 정보들을 통합한 네트워크 기반 분석 플랫폼 보유

: Molecules 및 Phenotypes 사이의 연관 관계를 이용한 네트워크 생성

: Combinatorial impact analysis/Compound impact ranking/Compound footprint matching 정보 제공



7. Cloud Pharmaceuticals (미국)


: 약물 관련 데이터를 통합하여 빅데이터화한 in-silico platform 제공

: Quantum Molecular Design 시스템을 통해 새로운 약물 디자인 설계

: Duke 대학의 Inverse Design 기술 독점 라이선스 및 Binding energy를 이용하여 chemical space를 찾음




8. Berg (미국)


: 다양한 약물 관련 리소스를 통합하여 분석 가능한 AI 분석 툴 제공

: 환자 중심 데이터 간의 상호 관련성에 기반하여 분석

: 분석 플랫폼 bAIcis 제공




9. Recursion Pharmaceuticals (미국)


: Cellular image와 compound efficient data의 AI 모델링에 기반한 암 신약 후보 물질의 반응 예측

: Cellular image data를 Phenomics signatures로 변환하여, 인공지능에 적용하는 것이 핵심 기술

: Healthy cell/Diseased cell 데이터를 이용한 약물 효과 예측



10. Accutar Biotech (미국)


: 약물 구조를 QSAR를 통해 Fingerprint 형식의 데이터 인공지능을 적용하여, 임상 가능하고 효과적인 신규 약물 후보 발굴

: 약물 구조를 1D/2D/3D/4D 형태의 Descripoter 데이터로 변환하여 인공지능에 적용

: Chemical hashed fingerprints 방법으로 약물 구조 데이터를 변환하여 인공지능 및 기계학습에 적용

: https://www.accutarbio.com/





#Reference

1) https://www.forbes.com/sites/yiannismouratidis/2018/12/16/the-rising-star-companies-in-ai-drug-development/

2) https://www.digitaltrends.com/cool-tech/artificial-intelligence-inventing-drugs/

3) https://www.gsk.com/

4) https://www.atomwise.com/

5) http://www.numerate.com/

6) https://www.jnj.com/

7) http://www.justbiotherapeutics.com/

8) https://www.etherapeutics.co.uk/

9) http://www.cloudpharmaceuticals.com/

10) https://www.berghealth.com/about/

11) https://www.recursionpharma.com/

12) https://www.accutarbio.com/





AI 기반 신약후보물질 발굴 기업 End

BioinformaticsAndMe



'Drug Discovery' 카테고리의 다른 글

진통제 분류  (0) 2021.01.30
CADD(Computer-Aided Drug Design)_v2  (0) 2019.05.21
Ligand 라이브러리 for CADD  (0) 2018.09.05
Ligand 데이터베이스  (0) 2018.09.03
Cloud Drug discovery  (0) 2018.08.15

분위수 (Quantile) Start

BioinformaticsAndMe







분위수 (Quantile)


: 자료 크기 순서에 따른 위치값

: 정규분포를 크게 벗어나거나, 산포가 큰 상황에서 분위수가 대푯값으로 사용됨

: 주로 사용되는 분위수는 100분위수(백분위수), 10분위수(십분위수), 4분위수(사분위수)





1. 백분위수 (Percentile)


: 크기 순서로 나열한 자료를 100등분했을 때, x%인 관측값

: x 분위값이란 자료값 중 x%가 그 값 보다 작거나 같게 되는 값

→ 70%에 상응하는 x 분위값 = 70 percentile

→ 50%에 상응하는 x 분위값 = 50 percentile = 중앙값(Median) = Q2

: 아래 예는 키 순서로 정렬했을 때, 본인 키보다 적거나 같은 사람들이 80% 존재하는 상황

→ 따라서, 본인의 위치는 80 percentile





2. 사분위수 (Quartile)


: 크기 순서로 나열한 자료를 4등분하는 관측값

→ Q1 = 1사분위수 = 25 percentile = Lower quartile

→ Q2 = 2사분위수 = 50 percentile = 중앙값(Median)

→ Q3 = 3사분위수 = 75 percentile = Upper quartile

→ Q4 = 4사분위수 = 100 percentile


: 사분위수범위(Interquartile range;IQR) = Q3 - Q1 = 전체 자료의 50%를 포함하는 범위





# 분위수 개념을 간단하게 설명하는 동영상








#Reference

1) http://www.ktword.co.kr/word/abbr_view.php?m_temp1=1937

2) https://www.mathsisfun.com/data/percentiles.html

3) http://my.ilstu.edu/~gjin/hsc204-hed/Module-5-Summary-Measure-2/Module-5-Summary-Measure-26.html

4) https://namu.wiki/w/%ED%86%B5%EA%B3%84%ED%95%99

5) https://namu.wiki/w/%EB%8C%80%ED%91%AF%EA%B0%92?from=%EC%A4%91%EC%95%99%EA%B0%92#s-4

6) https://www.youtube.com/watch?v=IFKQLDmRK0Y






분위수 (Quantile) End

BioinformaticsAndMe

'Statistics' 카테고리의 다른 글

중심극한정리 (Central limit theorem)  (1) 2020.01.03
신뢰구간 (Confidence Interval)  (0) 2019.12.17
이산분포 (Discrete distribution)  (0) 2019.12.04
생존 분석 (Survival analysis)  (1) 2019.11.25
분산 분석 (ANOVA)  (0) 2019.11.04

[R] 상자그림(Box plot) Start

BioinformaticsAndMe







1. 상자그림(Box plot)


: 상자그림은 특정한 수치 값을 기반으로 그려진, 자료 특성이 요약된 그래프

: 사분위수범위(Inter-Quartile Range;IQR) = Q1~Q3 = 상자그림몸통

: 중앙값(Median) = 상자그림몸통가운데선 = Q2(두번째사분위수)

: 최댓값(Maximum) = 위쪽 수염의 끝부분 (수염은 상자그림몸통 끝에 수직을 이룬 선)

: 최솟값(Minimum) = 아래쪽 수염의 끝부분

: 이상점(Outlier) = 최대최소를 벗어난 값 = 울타리(Fence) 바깥의 값 (Fence는 IQR x 1.5로 지정)

: 상자그림은 정규분포와 흡사

: 전체 분포 범위의 50%가 상자그림몸통에 포함됨

: 상자그림을 통해, 데이터의 분포를 확인하고 이상점을 처리하기 쉬움





2. R 상자그림 예제


# 뉴욕의 공기 퀄리티 예제 로딩

str(airquality)

'data.frame': 153 obs. of 6 variables: $ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ... $ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ... $ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ... $ Temp : int 67 72 74 62 56 66 65 59 61 69 ... $ Month : int 5 5 5 5 5 5 5 5 5 5 ... $ Day : int 1 2 3 4 5 6 7 8 9 10 ...

# 오존값으로 박스플롯 그리기

boxplot(airquality$Ozone)

# 상자그림 파라미터 지정

boxplot(airquality$Ozone,      main = "Mean ozone in parts per billion at Roosevelt Island",      xlab = "Parts Per Billion",     ylab = "Ozone",      col = "orange",     border = "brown",     horizontal = TRUE,        #수평 상자그림     notch = TRUE             #Notch(파인 형태) 상자그림 )

# 다중 상자그림 boxplot(Temp~Month,             data=airquality,             main="Different boxplots for each month",             xlab="Month Number",             ylab="Degree Fahrenheit",             col="orange",             border="brown" )





#아래 링크에서 'R 기본상자그림' 및 'ggplot2 상자그림'의 다양한 스크립트를 제공

https://www.r-graph-gallery.com/boxplot.html






#Reference

1) https://www.datamentor.io/r-programming/box-plot/

2) https://www.r-graph-gallery.com/boxplot.html

3) https://namu.wiki/w/%EC%83%81%EC%9E%90%20%EC%88%98%EC%97%BC%20%EA%B7%B8%EB%A6%BC







[R] 상자그림(Box plot) End

BioinformaticsAndMe



'R' 카테고리의 다른 글

[R] Circos plot  (0) 2019.12.30
[R] ggplot2  (0) 2019.12.16
[R] 파이차트(Pie plot)  (0) 2019.12.03
[R] 생존분석(Survival analysis)  (0) 2019.11.25
[R] 히스토그램(Histogram)  (0) 2019.11.18

[Gene cloning] 유전자클로닝 Start

BioinformaticsAndMe








1. 유전자클로닝 (DNA클로닝;유전자재조합기술)


: 관심 있는 유전자 절편을 벡터에 삽입 후, 세포에 주입하여 발현시키는 유전자재조합 기술 (Recombinant DNA technology)

: 쉽게 말해, 타겟하는 유전자의 동일한 사본을 세포 내에 보관하고 증폭하는 기술

: 형질전환된 생물에서 특정 유전자를 발현시켜 유용한 물질을 대량 생산할 수 있음

→ 인간 인슐린 유전자를 E. coli 박테리아에서 발현시켜 당뇨병 환자를 위한 인슐린 대량 생산





2. 유전자클로닝 준비


ㄱ) 제한효소 (Restriction enzyme)

- 타겟하는 특정 염기 서열을 인식하여, 인산다이에스터 결합(Phosphodiester linkage)을 끊는 효소
- 핵산내부가수분해효소(Endonuclease)
- 제한효소는 회문구조(Palindrome)이라는 특이 서열을 인식함
*점착성말단(Sticky end): 이중 가닥 중 한 가닥이 돌출된 형태
*무딘말단(Blunt end): 이중 가닥 전체가 수직으로 절단된 형태


ㄴ) DNA연결효소 (DNA Ligase)

- 인접한 DNA 사슬의 3′말단과 5′말단을 인산다이에스터 결합으로 연결하는 효소
- DNA의 복제/재조합 등에 관여
- 보조인자로 NAD 또는 ATP가 필요


ㄷ) 운반체 (Vector)

- 관심이 있는 DNA 절편을 세포에 도입하기 위한 매개체 DNA
- 일반적으로 플라스미드(Plasmid)를 사용
- 운반체가 되기 위한 조건
A. 복제원점: 복제가 될 수 있도록 복제원점 서열을 지님
B. 선택마커: 배지에서 살아길 필수 유전자를 지님 (암피실린내성유전자)
C. Multicloning site: 다양한 제한효소 인식 자리들의 염기 서열을 지님




3. 유전자클로닝 과정


1) 유전자를 자르고 이어붙이기

- 관심 있는 유전자 서열을 PCR로 증폭함

- 제한효소를 통해, 벡터 플라스미드의 Multicloning site 확보

- DNA연결효소를 통해, 플라스미드와 타겟유전자 서열 연결


2) 박테리아 형질전환 및 선별

- 절편이 연결된 벡터 플라스미드를 박테리아에 주입 (형질전환)

*열충격(Heat shock), 전기천공법(Electroporation)

항생제가 놓인 고체배지에 박테리아를 뿌려서 플라스미드를 지닌 균주만 선택 (콜로니 선별)


3) 단백질(결과물) 대량 생산

- 플라스미드를 지닌 콜로니를 계속해서 성장시킴

- 성장한 박테리아는 주입된 유전자를 과발현하여 단백질 생산

*Gene → mRNA → Protein






# DNA cloning 과정









#Reference
1) https://www.scienceall.com/%EC%9C%A0%EC%A0%84%EC%9E%90%ED%81%B4%EB%A1%9C%EB%8B%9Dgene-cloning/
2) http://www.dynebio.co.kr/yc/bbs/download.php?bo_table=data1&wr_id=10&no=0
3) https://www.khanacademy.org/science/biology/biotech-dna-technology/dna-cloning-tutorial/a/overview-dna-cloning
4) https://www.researchgate.net/figure/Type-of-DNA-ends-generated-by-restriction-enzymes-Representative-examples-of-restriction_fig1_315873372
5) https://terms.naver.com/entry.nhn?docId=1592227&cid=50314&categoryId=50314
6) https://www.youtube.com/watch?v=MIfDx417SDs




[Gene cloning] 유전자클로닝 End

BioinformaticsAndMe

과민반응 (Hypersensitivity reaction)

Start

BioinformaticsAndMe

 

 

 

 

 

 

과민반응 (Hypersensitivity reaction)


특정 항원에 대한 과도한 면역 반응으로 조직 손상 등의 여러 증세들을 보임

: 과민반응은 보통 4가지로 분류

1) 제 1형 과민반응 (Type Ⅰ Hypersensitivity Reaction)

2) 제 2형 과민반응 (Type Ⅱ Hypersensitivity Reaction)

3) 제 3형 과민반응 (Type Ⅲ Hypersensitivity Reaction)

4) 제 4형 과민반응 (Type Ⅳ Hypersensitivity Reaction)

: Ⅰ/Ⅱ/Ⅲ형은 항체가 관여하는 체액성면역, Ⅳ형은 T 림프구와 대식세포가 관여하는 세포매개면역

 

 

 

 

1. 제 1형 과민반응 (Type Ⅰ Hypersensitivity Reaction)


: 알레르기 항원에 대한 방어 기작으로 IgE 항체가 분비되어 증상을 유발 (알러지 반응)

: 분비된 IgE 항체는 비반세포/호염구 표면에 Fc 수용체에 결합

→ 비반세포/호염구 내 저장된 히스타민 등의 과립 물질들이 세포 밖으로 분비됨

→ 혈관확장/투과성증가/세기관지수축/호흡장애/아토피

항히스타민제/코르티솔/에피네프린 투여를 통해 과민반응 완화 및 회복

 

 

 

2. 제 2형 과민반응 (Type  Hypersensitivity Reaction)


: 세포표면에 있는 항원에 대해 IgG 또는 IgM 항체가 결합해 발생하는 과민 반응

: 항체가 붙어 보체를 활성화하거나, ADCC(Antibody Dependent Cellular Cytotoxicity)로 표적세포 파괴

: 적아세포증(신생아 용혈성 질환)은 2형 알러지의 예

 

 

 

3. 제 3형 과민반응 (Type  Hypersensitivity Reaction)


: 세포 밖에서 생성된 항원-항체 면역 복합체가 혈관으로 이동하다가, 여과장기(신장) 또는 혈관벽에 부착해 보체 활성화

: 다핵백혈구는 병변 부위의 면역 복합체를 흡수하고 깨지면서, 배출된 여러 단백질 분해효소가 주위 조직 파괴

: 혈청병, 사구체신염, 과민성 폐렴

 

 
 

4. 제 4형 과민반응 (Type  Hypersensitivity Reaction)


: 기억 T세포가 피하 조직에 머물러 있다가 같은 항원에 노출됐을 때, 여러 사이토카인을 분비해 조직 파괴

: 몇 시간 내 발생하는 다른 과민반응과 다르게, 항원에 노출된 후 며칠이 지나서 나타나는 지연과민반응

: Th1(T helper 1) 세포가 대식세포를 활성화하여 과도한 분해 과립 분비

: 결핵, 나병, 접촉성 피부염 

 

 

 
 

 

#Reference

1) http://m.nhis.or.kr/comWeb/wo/b/wcba04.html?dissArmyCd=C86CE41D90&title=%EA%B3%BC%EB%AF%BC%EB%B0%98%EC%9D%91%EC%9D%98%20%EC%A2%85%EB%A5%98%20%3E%20%EC%95%8C%EB%A0%88%EB%A5%B4%EA%B8%B0(%EC%9D%BC%EB%B0%98)

2) https://namu.wiki/w/%EC%95%8C%EB%A0%88%EB%A5%B4%EA%B8%B0

3) https://ko.wikipedia.org/wiki/%EA%B3%BC%EB%AF%BC%EB%B0%98%EC%9D%91

4) https://www.thoughtco.com/types-of-hypersensitivity-reactions-4172957

5) https://www.quora.com/Why-doesnt-erythroblastosis-fetalis-happen-in-first-pregnancy

6) https://www.slideshare.net/ariyantoharsono/serum-sickness-22519087

 

 

 

 

과민반응 (Hypersensitivity reaction)

 End

BioinformaticsAndMe

'Medicine > IMP' 카테고리의 다른 글

폐렴(Pneumonia) 종류  (0) 2022.04.23
호흡곤란(숨참) 감별진단  (0) 2022.03.23
기관지 천식 (bronchial asthma)  (0) 2021.07.18
COPD (만성 폐쇄성 폐질환)  (0) 2021.07.18
폐쇄성 폐질환 vs 제한성 폐질환  (0) 2019.12.15

난할 (Cleavage) Start

BioinformaticsAndMe







1. 난할 (Cleavage)


: 난할(Cleavage)은 생물 발생학 초기단계에서, 연속적으로 빠르게 분할하는 수정란의 세포분열을 의미

: 수정된 배아는 모계 유래 mRNA 또는 단백질 조절에 의해 세포 분열을 진행

: 일종의 체세포분열로 수정란 초기에는 한 개 세포지만, 난할을 할수록 세포 수가 급격하게 증가

: G1/G2기 없이 세포분열 하기에, 전체 배아 크기는 일정하지만 각 할구 크기는 작아짐

: 난할은 일반적으로 각 세포들에서 동시에 진행





2. 양서류 난할


1번째 난할 - 세로(경할;Meridional cleavage)

: 2번째 난할 - 세로(경할;Meridional cleavage)

: 3번째 난할 - 가로(위할;Latitudinal cleavage)

*3번째 위할은 동물극으로 치우쳐 일어남

: 동물반구는 많지만 크기가 작은 세포로 구성

: 식물반구는 적지만 크기가 큰 세포로 구성





3. 포유류 난할


: 포유류 난자가 배란되면 난관채가 난자를 수란관으로 넣어줌

: 팽대부에서 수정이 일어나면 감수 분열을 종료하고 난할 개시

: 배아는 난할을 하면서 수란관 섬모에 의해 자궁 쪽으로 이동함

: 포유류 난할은 12~24시간 주기로 다른 동물에 비해 비교적 느림

: 회전형 난할 (두번째 난할에서 축이 서로 90도로 꺾임)

: 할구들이 동시에 분열하지 않음





4. 난할 종류


ㄱ) 등황란(Isolecithal egg)

- 모든 딸세포들이 거의 같은 크기로 분할 (완전 난할)

- 난황이 거의 없거나 있더라도 균등하게 분포함

- 포유류


ㄴ) 중황란(Mesolecithal egg)

- 모든 딸세포들이 거의 같은 크기로 나뉨 (완전 난할)

- 난황이 많은 식물반구는 분열이 없고, 난황이 적은 동물반구는 빠르게 분열

- 양서류


ㄷ) 단황란(Telolecithal egg)

- 세포질의 일부에서만 난할이 일어남 (불완전 난할)

- 많은 난황이 식물반구에 농축됨

- 조류


ㄹ) 심황란(중심황란;Centrolecithal egg)

- 수정란 피층에서 난할이 일어남 (표할;불완전 난할)

- 많은 난황이 수정란 중앙에 농축됨

- 곤충류








#Reference

1) https://ko.wikipedia.org/wiki/%EB%82%9C%ED%95%A0

2) https://www.scienceall.com/%EB%82%9C%ED%95%A0cleavage-%EF%A4%9C%E5%89%B2/

3) https://terms.naver.com/entry.nhn?docId=1164561&cid=40942&categoryId=32317

4) https://medium.com/@PhilipIannaccone/the-embryo-cleavage-continues-d7dfab509918

5) https://www.brainkart.com/article/Cleavage-and-types---Frog-s-egg_670/

6) https://slideplayer.com/slide/1737347/





난할 (Cleavage) End

BioinformaticsAndMe



'Biology' 카테고리의 다른 글

진핵세포 구조 (Eukaryote structure)  (0) 2019.12.18
RNA 종류 (Types of RNA)  (0) 2019.12.12
뉴런 (Neuron)  (0) 2019.12.02
발효 (Fermentation)  (0) 2019.11.27
멘델의 유전법칙 (Mendelian inheritance)  (0) 2019.11.21

+ Recent posts