위와 같은 엑셀 파일이 있을 때, pandas로 쉽게 읽고, 처리하는 방법에 대해 알아보겠습니다. 두 사진 모두 Pandas에선 Multiindex 형태라고 지칭합니다. 좀 더 자세히 말하자면, 첫 번째 엑셀은 Multi column 형태입니다. 즉, 열(column)이 여러 계층(Multiple)으로 이루어져 있습니다. 두 번째 엑셀은 Multi index 형태입니다. 행과 열 앞부분인 인덱스(index) 부분이 여러 계층(Multiple)으로 이루어집니다. 위의 예시를 직접 pandas로 읽고 처리하며 자세히 알아보겠습니다. 읽기 첫 번째 엑셀(Multi Column) 데이터 프레임 역시 Multi Column을 갖는 것을 볼 수 있습니다. pd.read_excel함수로 엑셀을 읽을 수 있습니다. p..
* Command line bgzip -c file.vcf > file.vcf.gz tabix -p vcf file.vcf.gz vcf파일을 인덱싱하기 위해선, bgzip으로 압축을 한 뒤에, tabix툴을 이용해 인덱싱을 진행합니다. vcf파일은 보통 .gz 형태로 압축을 하기 때문에 bgzip이 사용됩니다. 그 후, tabix에서 -p 옵션의 인자로 vcf를 주고, 인덱싱하고자 하는 vcf파일을 입력으로 주면 아래와 같은 vcf의 인덱싱 파일이 생성됩니다. * 결과 파일 file.vcf.gz.tbi 툴 설치 bgzip 설치 pip install bgzip tabix 설치 conda install -c bioconda tabix
데이터 프레임에서 특정 컬럼을 중심으로, 리스트에 포함되는 값에 대해, 리스트의 순서대로 정렬을 해야 하는 경우가 있습니다. 예를 들어, 나무에 대해 다양한 정보를 담고 있는 매우 큰 데이터 프레임이 있습니다. 여기서 저는 관심 있는 키(HEIGHT)가 405m, 450m, 490m, 525m 이렇게 4개가 있을때, 이 4가지 키순으로 데이터 프레임을 정렬시키고자 할 때 유용하게 사용되는 코드에 대해 알아보겠습니다. 전체 코드 interest_li = [405,450,490,525] # 관심 리스트 df_sort = df[df['관심 컬럼'].isin(interest_li)].copy() # 먼저, 데이터 프레임에서 관심값 추출 sorterIndex = dict(zip(interest_li, range(..
Flask 플라스크(Flask)는 웹 페이지를 만들 수 있게 해주는 파이썬의 웹 프레임워크입니다. 이전 글[Flask] 플라스크 기초 실습 (python Web Framework)에서 플라스크의 기본 개념과 간단한 예제를 살펴보았습니다. www.youtube.com/watch?v=zpBzgV9DAeQ&list=PLU9-uwewPMe0ynomccdrAX2CtVbahN4hD&index=13 이번 시간엔 유튜브 조코딩 채널에서 진행한 로또 번호 추천 사이트를 Flask 버전으로 진행해 보겠습니다. 위의 영상에서는 백엔드의 개념을 설명해주고 Goormide를 사용하여, 'Ruby on Rails' 라는 웹 프레임워크로 로또 번호 추천 사이트를 만듭니다. 저는 'Ruby on Rails' 대신 'Flask'를 이..
Contents md5sum 이란? 파일을 다운받거나, 이동하거나, 복사한 후에 원본파일과 동일한 파일인지 확인하는 목적으로 쓰이는 명령어 입니다. 즉, 파일에 대해 md5(Message-Digest algorithm 5)라는 해시 알고리즘으로 sum(Check sum)값을 계산하는 명령어 입니다. 데이터가 중간에 아주 조금이라도 변경이되면 md5sum 값이 달라집니다. 대용량 파일을 다운받거나, 이동하다보면 데이터에 손상은 없는지 확인하는 경우가 많습니다. 예를 들어, 인간 유전체에 대한 정보들은 수십 기가에서 수백 기가까지 용량이 크기때문에 다운로트 사이트에서 md5sum까지 제공해주는 경우가 많습니다. 다운로드 후에 데이터 손상여부를 확인하기 위해 md5sum을 계산하여 비교해 볼 수 있습니다. 기..
Flask 란? 웹 페이지를 만들 수 있게 해주는 웹 프레임워크입니다. 프레임 워크: 일반적인 정의"소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"입니다. 쉽게 설명하자면, 웹(사이트)을 띄우는데 필요한 여러 기능을 제공해주는 기능 모음(클래스 형태로 기능 제공)입니다. 클래스 형태란 python에서 class로 기능을 구현해서 제공해 준다는 것입니다. Flask로 무엇을 할 수 있는가? 웹 개발은 웹페이지 화면을 만드는 프런트엔드와, 웹페이지의 내부 정보를 처리하는 백엔드로 나뉩니다. Flask는 백엔드의 전반적인 역할을 해줍니다. 일반적으로 웹사이트를 만들려면 HTML, CSS, JS(Java Script)로 웹페이지 구현을 합니..
-목차- 1. Deep coverage targeted capture sequencing에서 FFPE 분석과 8oxoG artifact와의 관계 2. 8oxoG란? 3. 8oxoG가 생기는 원인 4. 8oxoG artifact를 감소시키는 방법 1. Deep coverage targeted capture sequencing에서 FFPE 분석과 8oxoG artifact와의 관계 1) DNA shearing: FFPE는 cfDNA와 달리 DNA shearing 단계를 거치고, 이때 8oxoG artifact가 발생하기 때문. 2) Low AF : low allele frequency에서 8oxoG(C>A) artifact가 많이 발생하며, 이는 somatic mutation과 구분이 어려워 True Pos..
redmine이란? Redmine(레드 마인)은 오픈소스(Open Source) 웹 기반의 프로젝트 관리 도구입니다. 프로젝트를 생성하고, 프로젝트 내에서 일감을 추가하여 작성하고, 일감끼리 서로 연결하여 정리가 가능합니다. 또한, 일이 어떻게 진행되고 있는지 달력 형태 또는 그래프 형태로 시각화하여 볼 수 도 있고, 검색하여 일감을 찾을 수 도있습니다. [Tools] - Redmine 페이지에서 레드 마인에 대해 자세히 설명하였습니다. [Python] Redmine API란? 먼저, API(Application Programming Interface)는 응용 프로그램을 프로그래밍 언어를 통해 제어할 수 있는 인터페이스를 의미합니다. Pyhon Redmine API는 Python 언어를 통해 Redmin..
Screen이란? Screen이란 Linux에서 독립적으로 동작하는 가상 터미널을 띄워주는 것을 의미합니다. 즉, 백그라운드로 동작하는 가상 터미널입니다. 장점: 스크린에서 명령어를 실행시키고 터미널을 꺼도, 명령어가 백그라운드로 계속 돌아갑니다. 명령어를 실행시킨 뒤 터미널을 종료하고, 나중에 screen 명령을 이용해서 다시 접속하면 해당 터미널 그대로 작업을 이어갈 수 있습니다. Install screen 명령은 기본적으로 설치가 되어있습니다. screen 명령을 쳤을 때 Command not found라고 뜬다면 아래와 같은 방법을 설치할 수 있습니다. 1) Centos 등 (Redhat 계열) yum install screen 2) Ubuntu 등 (Debian 계열) apt-get instal..
ls 명령어(list) ls 명령어는 현재 디렉토리의 파일 목록을 확인하는 명령어 입니다. 리눅스(Linux)는 윈도우와 같은 운영체제로, CLI(Command Line Interface)입니다. (윈도우의 cmd 창) 그러다보니 지금 내가 어떤 폴더에 있는지, 현재 폴더엔 어떤 파일들이 있는지 명령어로 확인해야 합니다. 이때 사용되는 명령어가 ls 명령어 입니다. ls를 입력하면 현재 디렉토리(폴더)에 있는 파일들을 출력합니다. ls 명령어 주요 옵션 ls -a 옵션 (all) 그냥 ls와 달리 숨김파일(.으로 시작)도 보여줍니다. ls -l 옵션 (long) 그냥 ls와 달리 세로의 리스트 형태로 자세히 보여줍니다. ls -d [파일이름] (directory) [파일이름] 자체만 출력해 줍니다. (디..
Dictionary Python에서 딕셔너리(dictionary)는 key와 value가 쌍을 이루는 사전 형태의 자료형입니다. key값은 중복이 되지 않으며, key를 중복으로 추가하는 경우 마지막으로 추가한 key : value 쌍이 딕셔너리에 남게 됩니다. 또한, key에는 immutable(변경불가) 자료형만 올 수 있습니다. *Immutable 자료형: 변경이 불가능한 객체로 이루어진 자료형을 의미합니다. 예를 들어, int, float, string과 튜플(tuple) 등이 있습니다. 딕셔너리 생성 di = {'a': 0, 'b': 1, 'c': 2, 'd': 3} # 직접 생성 di = dict(zip('abcd',range(4))) # zip 함수를 사용해 dict 생성: zip(key l..
-목차- 1. 배경 2. My module 리포트에 추가 3. 설치 4. 과정 5. 실행 [Tools] - MultiQC에서 Multiqc 툴에 대해 간단히 알아보았습니다. 이번엔 MultiQC에서 Custom Contents를 직접 코드로 짜고 데이터를 추가하는 방법을 알아보겠습니다. 1. 배경 MultiQC를 이용해 QC 리포트를 생성합니다. Custom Contents 이용을 위해 MultiQC는 개발자 모드로 사용합니다.(MultiQC v1.10.dev0) MulitQC에 없는 툴에 대한 로그파일은 직접 코드를 작성하여 그래프를 작성합니다. 2. My module 리포트에 추가 아래처럼 Multiqc리포트에 나만의 데이터를 시각화할 수 있습니다. 3. 설치 1) MultiQC의 깃헙 사이트(htt..