VCF파일의 구조에 대해서 아래의 글에서 알아보았습니다. [생물정보학] - VCF 파일 포맷: 변이 정보를 담은 포맷 VCF 파일을 Input으로 데이터 정제를 하는데 주로 python이 많이 사용됩니다. 이때 VCF파일을 pandas 라이브러리의 DataFrame 형태로 읽어올 수 있습니다. 그러면 엑셀이나 tsv, csv로 내보낼 수도 있고, pandas 라이브러리를 이용해 VCF파일을 정제할 수 있습니다. * VCF파일을 DataFrame으로 가져오는 python 코드 import io import pandas as pd def read_vcf(path): with open(path, 'r') as f: lines = [l for l in f if not l.startswith('##')] retu..
-목차- 1. Variant calling(변이 검출) 2. VCF 파일 1) 파일 형식 1. Variant calling(변이 검출) SAM/BAM 파일이 생성된 후에, 표준 유전체 서열과 다른 염기(돌연변이, 줄여서 변이라고 함)가 있는지 찾아내는 작업을 합니다. 이 과정을 변이 검출(Vairant calling)이라고 합니다. 표준 유전체의 각 위치별로 시퀀싱 리드(Read)를 종합하여 표준 유전체와 같은 염기(Ref base)와 표준 유전체와 다른 염기(Alt base) 개수를 비교하여 변이가 있는지 확률적으로 판단합니다. 이때, 통계적 알고리즘을 사용하여 NGS 장비에서 발생한 에러, 매핑 과정에서 발생할 수 있는 에러 등의 에러들을 배제하고 진양성(True Positive) 변이를 검출하게 됩..
1. Conpair Tumor.bam과 Normal.bam을 Input으로 하여 동일한 개체에서 얻은 샘플인지 Concordance와 Contamination을 계산해주는 툴 * 해당 툴에 대해 다운로드 및 사용법정리 [Tools] - Conpair - tumor.bam normal.bam 비교 2. 과정 1) Pileup 생성 GATK Pileup을 이용해 bam파일로부터 pileup 파일을 생성. Tumor.bam -> Tumor.pileup Normal.bam -> Normal.pileup 2) Concordance 계산 marker의 MAF를 기반으로 Normal.pileup과 Tumor.pileup에서 bin별로 각각 아래의 확률 식으로 likelihood가 계산됩니다. 식 설명: k개의 rea..
1. Fragment size와 Insert size란?1) Fragment size(Fragment length): NGS 시퀀서에 들어간 실제 DNA 한가닥 길이. (Adapter sequence 길이 포함.)2) Insert size: Adapter 사이에 '삽입된' DNA 길이(Insert). (Adapter제외한 DNA의 길이)-> Adapter 사이의 거리를 의미. Inner mate distance라고도 함. 2. Fragment와 Read의 차이1) Fragment: Adapter를 포함한 DNA.2) Read: Adapter를 제외한 DNA.즉, 위 그림에서 Insert를 방향에 따라 읽은 것을 Read1과 Read2로 나눈다. Read1 Read2 : NGS 장비에 들어가는 Paired..
-목차- 1. 이미지 불러오기 2. 이미지에 글자 넣기 (ImageDraw 함수) 3. 이미지 사이즈 조절하기 (thumbnail 함수) * 전체 코드 import os from PIL import Image, ImageFont, ImageDraw from IPython.display import display ## 현재 디렉토리에 존재하는 파일들 가져오기: file_li file_li = os.listdir() print(file_li[:5]) ### file_li중에서 그림파일(.png, .jpg)만 가져오기: image_li image_li = [i for i in file_li if ('.png' in i) or ('.jpg' in i)] print(image_li[:5]) ### 그림 1개만 예..
-목차- 1. 링크 2. 심볼릭 링크(symbolic link) 3. 하드링크(hard link) 1. 링크 윈도우의 바로가기와 비슷한 기능입니다. 리눅스에서 링크 파일을 수정하면 원본 파일도 수정됩니다. 일반적으로 링크라고 하면 심볼릭링크를 의미합니다. 심볼릭 링크는 소프트 링크와 같은 의미입니다. 2. 심볼릭링크(symbolic link) 1) 사용법 ln -s [원본파일경로] [심볼릭링크 이름] 2) 특징 ① 원본파일과 다른 inode를 갖습니다. ② symbolic link 수정 시 원본 파일도 같이 수정됩니다. ③ 원본 삭제시 symbolic link는 더 이상 사용할 수 없습니다. 예시) 'aaa test' 라고 써져있는 aaa파일이 있습니다. 원본 파일을 절대 경로(/로 시작)로 써도 되고,..
1. NGS를 이용한 DNA 분석 NGS(Next Generation Sequencing)를 이용한 DNA 분석은 크게 3단계를 거쳐 진행됩니다. ① 라이브러리 제작(Library Preparation) DNA를 일정한 조각(Fragment)으로 분절화(Shearing)시키고 NGS 장비가 인식할 수 있는 특정 염기서열(인덱스)을 붙여주는 과정. ② 라이브러리 DNA 읽기 제작된 라이브러리 DNA들을 NGS 기기에 넣고, 각 가닥의 염기서열을 읽는 단계. (NGS 시퀀서에서 진행) ③ 분석 장비에서 생성된 데이터를 가공하여 알고리즘으로 분석하는 단계 2. DNA 데이터 분석 시퀀싱이 끝나면 DNA 데이터를 분석합니다. 분석은 크게 3단계를 거쳐 진행됩니다. ① DNA 데이터 추출 NGS 시퀀싱 결과 나온..
* 전체 코드 string = 'I became a zombie' # 한 문자씩 나누기 -> 리스트 list(string) # list() 함수 이용 string.split() # split() 함수 이용 string.split('a') # 'a'를 구분자로 쪼갭니다. # maxsplit은 최대 몇번 쪼갤지 # 처음 으로 나오는 공백 I 와 became사이를 쪼갭니다. string.split(maxsplit=1) ## 다시 합칠 수도 있음 (',').join(string.split()) # ','를 구분자로 합치기 (' ').join(string.split()) # 공백을 구분자로 합치기 -> 원래 문자열 1. 문자열을 리스트로 바꾸는 2가지 방법 1) list() 함수 이용 string = 'I bec..
-목차- 1. Conpair 란? 2. Conpair 설치 3. Conpair 과정 4. 문제점 1. Conpair 란? 1) Conpair : tumor - normal pair에 대한 Concordance(일치율)과 Contamination(오염률) 추정해주는 툴 설명: 동일한 개체에서 추출한 샘플인지 일치성 검증 및 개별 오염 수준 추정을 해줍니다. 필요한 이유: 오염으로 인한 Germline 변이가 Somatic 변이로 잘못 해석될 여지가 있습니다. 성능: Copy number variation이 있어도, 0.1%의 LOD로 Contamination을 측정합니다. 한계: ① Germline marker를 사용하기 때문에 같은 Germline 변이를 갖는 샘플들(ex 가족, 친척) 사이에서는 오염 ..
-목차- .gitignore파일이란? .gitignore 파일 규칙 .gitignore 파일이란? .gitignore파일이란 git 버전 관리에서 무시하고 싶은 파일 이름을 기록하는 파일입니다. .gitignore파일에 작성된 파일은 커밋되지 않습니다. github 프로젝트 repository 최상단에 존재해야 합니다. 서버에서 .gitignore 파일 생성 및 작성법 vim .gitignore .gitignore 파일 규칙 1. 표준 glob 패턴 사용 표준 glob 패턴이란 정규표현식을 단순화한 것입니다. * : 모든 문자(0개 이상) ? : 모든 문자 1개 *.exe - 설명 확장자가 exe로 끝나는 모든 파일 무시 2. ! : 절대 무시되지 않는 파일 지정 !Go.exe - 설명 위에서 확장자가 ..
안녕하세요 이번엔 파이썬에서 간결하고 실용적이고, 직관적인 기능 "리스트 컴프리헨션" 을 알아보겠습니다. -목차- 1. 리스트 컴프리헨션(List Comprension)이란? 2. 기초 사용법 3. 응용 1) 수식이나 함수 적용 2) 조건문 사용 3) for문 2개 사용 1. 리스트 컴프리헨션(List Comprension)이란? 리스트 컴프리헨션은 직관적으로 리스트를 생성하는 방법입니다. 대괄호 "[", "]"로 감싸고 내부에 for문과 if 문을 사용하여 반복하며 조건에 만족하는 것만 리스트로 생성할 수 있습니다. 그냥 리스트를 생성하고 for문과 if문을 사용하면 되지 굳이 리스트 컴프리헨션을 사용할 필요가 있을지 궁금할 수 있습니다. 리스트 컴프리헨션을 사용하는 큰 이유는 직관적이고, 여러줄 쓸걸..
안녕하세요 이번엔 생물정보학 프로그래밍 문제를 풀고 채점을 받을 수 있는 사이트 Rosalind에 대해 알아보겠습니다. -목차- 1. Rosalind 란? 2. 문제를 풀어 제출해보자! 3. 알고리즘 분류 4. 랭킹 시스템 * 깃허브에 Rosalind 문제와 풀이(python)를 한글로 작성하고 있습니다. 필요하신 분들은 참고해주세요!! :) netsus/Rosalind Bioinformatics algorithm problem solving. Contribute to netsus/Rosalind development by creating an account on GitHub. github.com 1. Rosalind 란? Rosalind는 샌디에고 캘리포니아 대학교(University of Califo..