매뉴얼
※ 목차 클릭 시 해당 컨텐츠로 이동합니다.
1.1. 바이오 익스프레스 웹 서비스 소개
[그림 1.1-1. Bio-Express 웹 서비스 메인 화면]
웹 기반 대용량 데이터 분석 서비스
- 웹 기반 서비스로써 네트워크 가능한 어디서나 이용 가능
- 공개된 파이프라인의 활용으로 접근성을 높여 초보 연구자의 분석 경험 증가
- 사용자의 시스템 사용 현황 실시간 확인 가능
- 사용자 간의 커뮤니티 서비스 제공을 통한 정보 공유 및 교류의 장 확대
- 공개된 프로그램 및 파이프라인 열람을 통해 분석 기초 정보 확인
1.2. 다운로드
다양한 운영체제 환경에 따라 바이오 익스프레스 패키지와 상세 매뉴얼을 제공한다.
릴리즈 정보에서는 서비스 업데이트 이력과 개선 사항을 확인 할 수 있다.
[그림 1.2.1 다운로드]
1.3. 분석 서비스
KOBIC 통합 포털 상단 메뉴 [분석 - 바이오 익스프레스]에서 [분석활용 시작]을 클릭하면 분석 파이프라인을 디자인하고 실행할 수 있는 웹 기반 분석 파이프라인 에디터가 출력된다.
[그림 1.3-1. KOBIC 통합 포털 바이오 익스프레스 분석 서비스]
1.4. 마이페이지
분석 파이프라인 및 프로그램 활용 현황 대시보드를 제공한다.
[그림 1.4-1 Bio-Express 대시보드 화면]
※ 목차 클릭 시 해당 컨텐츠로 이동합니다.
2.1. CLOSHA 워크벤치 다운로드
KOBIC 통합 포털 [분석 - 바이오 익스프레스 - 다운로드] 메뉴를 클릭한다.
[그림 2.1-1. CLOSHA 워크벤치 다운로드]
사용자 OS 환경에 맞는 버전을 다운로드하고 압축을 해제한다.
2.1.1. Windows
[그림 2.1.1-1. CLOSHA.exe 실행]
다운로드한 .zip 파일의 압축을 해제하여 CLOSHA.exe를 실행한다.
2.1.2. Linux
[그림 2.1.2-1 CLOSHA 다운로드]
curl 명령을 통해tar.gz 파일을 다운로드한다.
- $ curl -L -o CLOSHA.workbench.stable-linux.gtk.x86_64.tar.gz \
- "https://kobic.re.kr/closha2/common/related_file_down?file_name=CLOSHA.workbench.stable-linux.gtk.x86_64.tar.gz"
[그림 2.1.2-2 CLOSHA.exe 실행]
다운로드한 tar.gz파일을 tar -zxvf 명령을 통해 압축을 해제하고 CLOSHA를 실행한다.
- $ tar -zxvf CLOSHA.workbench.stable-linux.gtk.x86_64.tar.gz
- $ cd CLOSHA.workbench.stable-linux.gtk.x86_64
- $ ./CLOSHA
2.1.3. macOS
[그림 2.1.3-1 CLOSHA 다운로드]
[그림 2.1.3-2 CLOSHA 압축해제]
다운로드한 .zip 파일의 압축을 해제하여 CLOSHA.exe를 실행한다.
* Mac OSX 환경에서 CLOSHA 실행 시 “’CLOSHA’은(는) 손상되었기 때문에 열 수 없습니다. 해당 항목을 휴지통으로 이동해야 합니다.” 문제 해결 방법
[그림 2.1.3-3. 손상된 파일 경고]
1. 프로그램을 선택하고 '정보 가져오기'를 클릭한다.
[그림 2.1.3-4. 파일 위치 경로 복사 및 xattr 명령어]
2. 위치 경로를 복사하고 터미널을 실행하여 해당 위치로 이동한다.
명령어 1: cd [복사한 경로]
명령어 2: sudo xattr -cr CLOSHA.app
3. 재실행하여 정상적으로 실행됨을 확인한다.
[그림 2.1.3-5. CLOSHA 구동 화면]]
2.2 CLOSHA 워크벤치 실행
2.2.1. CLOSHA 워크벤치 로그인
KOBIC 통합로그인(SSO)에 가입 되어 있는 아이디로 로그인 한다.
아이디가 없으면 하단 Create Account 버튼을 통하여 회원가입 후 로그인한다.
[그림 2.2.1-1 CLOSHA 로그인 화면]
2.2.2. CLOSHA 워크벤치 시작화면
CLOSHA intro 페이지가 활성화되고 각 서비스의 매뉴얼 다운로드 버튼을 통해 자세한 소개와 사용법을 다운로드 받을 수 있다.
[그림 2.2.2-1. CLOSHA 메인 화면]
메인 메뉴 [File], [Window], [Help]는 사용자 편의 기능과 CLOSHA 워크벤치 업데이트가 가능하다.
[그림 2.2.2-2. CLOSHA 메뉴]
- - [File] > [New]: 새로운 워크스페이스, 카테고리, 파이프라인, 프로그램 생성
- - [File] > [Register]: 파이프라인 등록, 프로그램 등록
- - [Window] > [Open Perspective]: CLOSHA / GBox 퍼스펙티브 이동
- - [Window] > [Reset Perspective]: 기본(Default)으로 설정된 퍼스펙티브로 되돌리기
- - [Window] > [Preference]: CLOSHA 워크벤치 설정 값 세팅
- - [Help] > [Help Contents]: CLOSHA 워크벤치 사용자 매뉴얼
- - [Help] > [About Bio-Express]: 바이오 익스프레스 웹 소개 페이지 이동
- - [Help] > [Update CLOSHA Workbench]: CLOSHA 워크벤치 업데이트
툴바의 가장 우측 메뉴를 통하여 빅데이터 고속 전송 시스템 GBox와 클라우드 기반 통합 분석 워크벤치 CLOSHA의 퍼스펙티브 이동이 가능하다.
[그림 2.2.2-3. CLOSHA 툴바]
※ 목차 클릭 시 해당 컨텐츠로 이동합니다.
3.1. 화면 및 기능 소개
GBox 고속 전송 시스템은 가속기 등의 추가적인 하드웨어 구축이나 ActiveX와 같은 별도의 플러그인 설치 없이 소프트웨어 기술만으로 사용자의 대용량 데이터를 고속으로 전송한다. GBox를 통해 업로드된 사용자 데이터는 CLOSHA에서 사용 가능하다.
[그림 3.1-1 바이오 익스프레스 GBox 화면]
GBox는 쉽고 직관적인 사용자 인터페이스로 설계되어 별도의 교육 없이 사용이 가능하며, 파일 업로드 및 다운로드 시 아래의 전송 조건을 만족해야 한다.
전송조건
- - 파일명을 포함한 전체 경로에 공백, 한글이 있을 경우 전송 장애 발생
- - 파일명을 포함한 전체 경로에 언더바(_), 하이픈(-), 마침표(.)를 제외한 특수 문자가 있을 경우 전송 장애 발생
- - 외장하드나 USB 경로에서 전송 시 속도 차이에 따른 전송 장애 발생
- - 0B 크기 파일의 경우 전송 장애 발생
- - 이외에 손상된 파일 등 파일 자체에 문제가 있는 경우 전송 장애 발생
3.2 빅데이터 고속 전송
[그림 3.2-1. 바이오 익스프레스 GBox 데이터 다운로드 화면]
업로드 방법 1
[File Explorer] view에서 전송하고자 하는 폴더 또는 파일 선택 하여 [GBox Explorer] view로 Drag & Drop 한다.
[그림 3.2-2. Drag &Drop을 이용한 데이터 업로드]
업로드 방법 2
[File Explorer] view에서 전송하고자 하는 폴더 또는 파일 선택 하여 컨텍스트 메뉴의 [Upload] 버튼으로 전송한다.
[그림 3.2-3. 컨텍스트 메뉴를 이용한 데이터 업로드]
다운로드 방법 1
[GBox Explorer] 에서 전송하고자 하는 폴더 또는 파일을 선택 하여 [File Explorer] view로 Drag & Drop 한다.
[그림 3.2-4. 컨텍스트 메뉴를 이용한 데이터 다운로드]
다운로드 방법 2
[GBox Explorer] 에서 전송하고자 하는 폴더 또는 파일을 선택 하여 컨텍스트 메뉴 [Download] 버튼으로 전송한다.
[그림 3.2-5. 데이터 전송 모니터링]
파일 전송이 시작되면 어플리케이션 하단의 [Porgress] view로 실시간 전송 상황 모니터링이 가능하다.
전송 속도 제어 방법
[File Explorer] 또는 [GBox Explorer]에서 컨텍스트 메뉴 [Settings] 버튼을 누르고 Enable speed limits을 체크하여 원하는 제한 전송 속도를 지정할 수 있다.
[그림 3.2-6. 데이터 전송 속도 제어]
3.3. 데이터 파일 관리 기능
[Filex Explorer] view와 [GBox Explorer] view의 컨텍스트 메뉴로 데이터를 관리 할 수 있다. ([New], [Rename], [Copy], [Paste], [Delete], [Refresh])
[Filex Explorer] view와 [GBox Explorer] view의 상단의 툴바 메뉴로 디렉토리 이동 및 바로가기 기능을 사용할 수 있다.
[그림 3.3-1. 저장소 파일 관리 기능]
3.4. 명령줄 인터페이스 기반 GBox-CLI
GBox 고속 전송 시스템은 GUI(Graphical User Interface) 뿐만 아니라 CLI(Command Line Interface) 기반의 GBox-CLI를 제공하여 다양한 클라우드 서버나 리눅스 환경에서도 다이렉트로 고속 전송을 지원한다.
[그림 3.4-1. GBox-CLI 구동 화면]
3.4.1 GBox-CLI 로그인
KOBIC 통합로그인(SSO)에 가입 되어 있는 아이디로 로그인한다.
GBox] gbox -u <사용자 계정> -p <사용자 암호>
[그림 3.4.1–1. GBox-CLI 로그인]
3.4.2 명령어 확인
GBox-CLI에서 제공하는 모든 명령어에 대한 내용을 확인한다.
GBox] help
GBox] help <명령어>
[그림 3.4.2–1. 전체 명령어 도움말 확인]
[그림 3.4.2–2. 특정 명령어 도움말 확인]
3.4.3 데이터 업로드/다운로드
데이터를 고속 업로드/다운로드 한다.
GBox] send -s <사용자 로컬 저장소 경로> -t <GBox 저장소 경로>
GBox] receive -s <GBox 저장소
경로> -t <사용자 로컬 저장소 경로>
[그림 3.4.3–1. 데이터 다운로드]
[그림 3.4.3–2. 데이터 업로드]
3.4.4 md5sum 데이터 전송 무결성
클라우드 저장소에 업로드한 데이터의 무결성을 확인한다.
GBox] checksum <GBox 저장소에 위치한 파일 경로>
[그림 3.4.4-1. 데이터 전송 무결성 확인]
3.4.5 디렉토리 및 파일 조회
현재 위치한 클라우드 저장소 경로의 내용을 출력한다.
GBox] ll
GBox] ls
[그림 3.4.5–1. 디렉토리 내용 출력]
3.4.6 디렉토리 생성/삭제
현재 위치한 클라우드 저장소 경로에 폴더를 생성하고 삭제한다.
GBox] mkdir <생성할 폴더명>
GBox] rm <삭제할 폴더명 또는 파일명>
[그림 3.4.6–1. 디렉토리 생성 및 삭제]
3.4.7 경로 조회/이동
현재 위치한 클라우드 저장소의 경로를 조회하거나 이동한다.
GBox] pwd
GBox] cd <이동할 하위 경로>
GBox] cd ..
[그림 3.4.7-1. 경로 조회/이동]
※ 목차 클릭 시 해당 컨텐츠로 이동합니다.
4.1. 화면 및 기능 소개
Bio-Express 워크벤치(Bio-Express Workbench)는 대용량 데이터 분석 서비스를 제공하는 클라우드 기반의 프로그램이다. 사용자 친화적인 인터페이스로 구성되어 복잡한 생명정보 분석과정을 손쉽게 파이프라인으로 디자인할 수 있다.
[그림 4.1-1. 바이오 익스프레스 CLOSHA 화면]
4.2. 사용자 정의 기반 프로그램 등록
4.2.1. 사용자 분석 코드 작성
Bio-express에서는 실행을 위해 경량화된 컨테이너 기반 가상화 기술을 제공하고 있으며, Podman View에서 실행 가능한 컨테이너 이미지 목록을 확인 할 수 있다.
[그림 4.2.1-1. 가상화 컨테이너 이미지 목록]
사용자 정의 기반 프로그램을 등록하기 위해 먼저 사용자 분석 코드를 등록해야 한다.
사용자 분석 코드를 등록할 스크립트 폴더를 생성하기 위하여 [Script] View 컨텍스트 메뉴의 [New Folder] 버튼을 클릭한다.
[그림 4.2.1-2. 사용자 스크립트 폴더 생성]
생성 폴더의 이름을 작성한 후 [OK] 버튼을 클릭하여 폴더를 생성한다.
[그림 4.2.1-3. 사용자 스크립트 폴더 생성 다이얼 로그]
[그림 4.2.1-4]과 같이 생성된 스크립트 폴더에서 컨텍스트 메뉴의 [New Script] 버튼을 클릭하여 사용자 분석 코드를 생성한다. 사용자 분석 코드의 파일 형식으로는 Python, Bash, R을 지원한다.
[그림 4.2.1–4. 사용자 스크립트 생성]
생성할 스크립트의 이름을 입력하고, 사용자 스크립트를 실행할 가상화 컨테이너 이미지를 선택 한 후, [OK] 버튼을 클릭하여 빈 스크립트를 생성한다.
Podman container image를 선택하여 사용자 스크립트의 실행 환경을 선택 할 수 있다.
[그림 4.2.1-5. 사용자 스크립트 파일 생성 다이얼로그]
생성한 사용자 분석 코드는 [그림 4.2.1-6]과 같이 Script View에서 더블 클릭하여 에디터를 통해 작성 및 편집이 가능하며, Script View에서 컨텍스트 메뉴의 Run Script 버튼을 클릭하여 코드를 실행할 수 있다.
[그림 4.2.1-6. 스크립트 실행-1]
[그림 4.2.1-6. 스크립트 실행-2]
[그림 4.2.1-6. 스크립트 실행-3]
#!/bin/bash
INPUT_DIR=$1
OUTPUT_DIR=$2
mkdir -p $OUTPUT_DIR
in_array() {
local needle array value
needle="${1}"; shift; array=("${@}")
for value in ${array[@]};
do
[ "${value}" == "${needle}" ] && echo "true" && return;
done
echo "false"
}
array=(`find $INPUT_DIR/ -name "*.fastq.gz"`)
for i in "${array[@]}"
do
FILE=${i##*/}
IFS='' read -r -a array <<< "$FILE"
len=(${#array[@]}-1)
FASTP_IN_FILE_LIST+=("${array[$len]}")
done
for i in "${FASTP_IN_FILE_LIST[@]}"
do
basename=$i
FILE1=${basename%1.fastq.gz}
IFS='' read -r -a file1_array <<< "$FILE1"
file1_len=(${#file1_array[@]}-1)
array_check=`in_array ${file1_array[$file1_len]}2.fastq.gz ${FASTP_IN_FILE_LIST[@]}`
if [ "${array_check}" == "true" ]; then
IFS='-' read -r -a SEQ_ID <<< "$FILE1"
FASTP='/BiO/program/fastp/current/fastp'
time $FASTP -i ${INPUT_DIR}/${file1_array[$file1_len]}1.fastq.gz -I ${INPUT_DIR}/${file1_array[$file1_len]}2.fastq.gz \
-o ${OUTPUT_DIR}/${file1_array[$file1_len]}1.fastq.gz -O ${OUTPUT_DIR}/${file1_array[$file1_len]}2.fastq.gz \
--length_required 20 --average_qual 20 --detect_adapter_for_pe --correction \
-h ${OUTPUT_DIR}/${SEQ_ID[0]}.html -j ${OUTPUT_DIR}/${SEQ_ID[0]}.json
fi
done
실행한 스크립트 정보는 [그림4.2.1-7]과 같이 Script Task History View에서 확인할 수 있고, 더블 클릭 을 통해 Console View로 분석 과정 및 오류 등의 로그를 확인할 수 있다.
[그림 4.2.1-7. 스크립트 분석 과정 및 오류 로그 확인-1]
[그림 4.2.1-7. 스크립트 분석 과정 및 오류 로그 확인-2]
[그림 4.2.1-7. 스크립트 분석 과정 및 오류 로그 확인-3]
4.2.2. 사용자 프로그램 등록
작성한 사용자 분석 코드를 실행하기 위해서 사용자 프로그램을 등록한다.
[Program] View에서 컨텍스트 메뉴의 New Category 버튼을 클릭하여 사용자 정의 프로그램을 등록할 루트 카테고리와 서브 카테고리를 생성한다.
-
[그림 4.2.2-1. 사용자 프로그램 루트 카테고리 생성]
-
[그림 4.2.2-2. 사용자 프로그램 루트 카테고리 생성 다이얼로그]
컨텍스트 메뉴로 루트 카테고리 하위에 서브 카테고리를 생성한다.
-
[그림 4.2.2–3. 사용자 프로그램 서브 카테고리 생성]
-
[그림 4.2.2-4. 사용자 프로그램 서브 카테고리 생성 다이얼로그]
생성한 서브 카테고리의 컨텍스트 메뉴 New Program 버튼을 클릭하여 사용자 프로그램을 등록한다.
[그림 4.2.2–5. 사용자 프로그램 생성]
등록할 사용자 프로그램의 기본정보, 추가정보, 인자값을 설정하여 프로그램을 등록한다.
[그림 4.2.2-6. 사용자 프로그램 생성 다이얼 로그-프로그램 기본정보]
분석 프로그램 특성과 목적에 따라 Execute Core에서 single core, multi-cores를 설정하거나 Platform Environment에서 HPC, GPU, 12TB 메모리 서버 환경을 선택 설정할 수 있다.
[그림 4.2.2-7. 사용자 프로그램 생성 다이얼로그-프로그램 스크립트 및 실행 설정]
[그림 4.2.2-8. 사용자 프로그램 생성 다이얼로그-프로그램 스크립트 파일 탐색기]
[그림 4.2.2-9. 사용자 프로그램 생성 다이얼로그-프로그램 Input 파라미터 설정]
[그림 4.2.2-10. 사용자 프로그램 생성 다이얼로그-프로그램 Input 파라미터 타입 설정]
[그림 4.2.2-11. 사용자 프로그램 생성 다이얼로그-프로그램 Input 파라미터 입력 폴더 설정]
[그림 4.2.2-12. 사용자 프로그램 생성 다이얼로그-Description 설정]
[그림 4.2.2-13. 사용자 프로그램 생성 다이얼로그-프로그램 Input 파라미터 추가 완료 화면]
[그림 4.2.2-14. 사용자 프로그램 생성 다이얼로그-프로그램 Output 파라미터 설정]
[그림 4.2.2-15. 사용자 프로그램 생성 다이얼로그-프로그램 Output 파라미터 출력 폴더 설정]
[그림 4.2.2-16. 사용자 프로그램 생성 다이얼로그-프로그램 Output 파라미터 추가 완료 화면]
[그림 4.2.2-17. 사용자 프로그램 생성 완료 화면]
4.3. 분석 파이프라인 개발
4.3.1. 워크스페이스 생성
[그림 4.3.1-1]과 같이 Workspace View의 컨텍스트 메뉴 New Workspace 버튼을 클릭하여 워크스페이스를 생성한다.
[그림 4.3.1-1. 사용자 워크스페이스 생성]
생성할 워크스페이스의 이름과 설명을 작성하고 연관 키워드를 등록한 후 [OK] 버튼을 클릭한다.
[그림 4.3.1-2. 사용자 워크스페이스 생성 다이얼로그]
생성한 워크스페이스의 컨텍스트 메뉴 New Pipeline 버튼을 클릭하여 분석 파이프라인을 생성한다.
[그림 4.3.1–3. 파이프라인 생성]
파이프라인 유형에 따라 사용자 정의 파이프라인을 생성하거나, 기존에 등록되어 있던 파이프라인을 선택하여 인스턴스 파이프라인을 생성할 수도 있다.
[그림 4.3.1–4. 사용자 정의 파이프라인 생성]
- - [Develop a new pipeline] : 사용자 정의 파이프라인 생성
- - [Develop an instance pipeline] : 공개된 파이프라인을 선택
[그림 4.3.1-5]과 같이 [Workspace] View를 통해 생성된 사용자 정의 파이프라인을 확인할 수 있다.
[그림 4.3.1–5. 사용자 정의 파이프라인 생성 완료 화면]
4.3.2. 분석 파이프라인 디자인
사용자 정의 파이프라인 디자인
분석 파이프라인 디자인에 필요한 분석 프로그램을 에디터의 ‘Palette‘에서 찾는다.
[그림 4.3.2-1-1. 생성된 파이프라인 에디터 활성화 화면]
프로그램을 선택한 후 캔버스 위에 마우스로 드래그 앤 드롭 한다.
[그림 4.3.2-1-2. Drag & Drop 을 이용한 파이프라인 디자인]
필요한 분석 프로그램으로 디자인한 파이프라인을 저장하고, 각각의 분석 프로그램을 더블 클릭하여 실행에 필요한 옵션을 설정한다.
[그림 4.3.2-1-3. 활성화된 프로그램 파라미터 설정 다이얼로그]
[그림 4.3.2-1-4. Input 파라미터 설정 다이얼로그]
분석 파이프라인 실행 옵션 설정 후, 캔버스에 위치한 분석 프로그램을 연결하여 하나의 파이프라인을 생성한다.
분석 프로그램간의 연결과 옵션 설정의 순서가 바뀌어도 기능상 문제가 없지만, 분석 프로그램을 연결하면 자동으로 앞 단계 프로그램의 Output을 Input으로 설정하게 되므로 프로그램 설정 후 연결하는 방식을 추천하다.
[그림 4.3.2-1-5. 연결선 연결]
분석 프로그램의 Output 파라미터 우측 끝에 위치한 원 모양의 연결 영역을 다음 단계 분석 프로그램의 Input 파라미터 좌측 연결 영역으로 드래그 앤 드롭하여 사용자 정의 파이프라인을 디자인한다.
[그림 4.3.2-1-6. 연결선 디자인]
연결선의 형태는 [그림 4.3.2-1-6]과 같이 마우스 드래그를 통하여 사용자가 원하는 대로 자유롭게 수정할 수 있다.
인스턴스 파이프라인 디자인
[그림 4.3.2-2-2]과 같이 파이프라인 생성 단계에서 인스턴스 파이프라인 유형을 선택하여 기존에 등록되어 있던 파이프라인을 선택할 수 있다.
[그림 4.3.2–2–1. 파이프라인 생성]
인스턴스 파이프라인 역시 사용자 정의 파이프라인과 같이 각각의 프로그램 별 실행에 필요한 설정을 변경할 수 있다.
[그림 4.3.2–2–2. 인스턴스 파이프라인 생성]
[그림 4.3.2–2-3. 인스턴스 파이프라인 생성 완료 화면]
[그림 4.3.2–2-4. 생성된 인스턴스 파이프라인 에디터 활성화 화면]
4.4. 분석 파이프라인 실행
4.4.1. 분석 파이프라인 실행
에디터 상단의 [Run] 버튼을 클릭하여 디자인한 분석 파이프라인을 실행할 수 있다.
분석이 실행되면 [Pipeline] View, [Log] View와 에디터를 통해 해당 분석 파이프라인의 진행 상태를 확인할 수 있다. 각 View와 에디터의 [Refresh] 버튼을 통해 분석 파이프라인 실시간 진행 상태를 확인할 수 있다. 분석 파이프라인 실행 시 순차적으로 분석 프로그램이 진행된다.
[그림 4.4.1-1. 파이프라인 에디터 및 파이프라인 정보 화면]
실행 중인 프로그램은 run 상태이며 에디터에서 녹색으로 표시되고, 실행을 마친 complete 상태의 프로그램은 파란색으로 표시된다.
[그림 4.4.1-2. 파이프라인 실행 화면-1]
[그림 4.4.1-2. 파이프라인 실행 화면-2]
4.4.2. 단일 분석 프로그램 실행
각 분석 프로그램의 단일 실행도 가능하다. 캔버스에서 단일 실행할 분석 프로그램에 마우스 오버 시 나타나는 바로가기 메뉴에서 [Start Node]버튼을 클릭하고 메시지창에서 OK를 클릭하면 정상 실행 후 Pipeline view에서 실행결과를 확인 할 수 있다.
[그림 4.4.2-1. 파이프라인 에디터 및 파이프라인 정보 화면]
4.4.3. 데이터 분석 결과 확인
[Log] View를 통해 각 분석 프로그램의 로그 정보를 확인한다.
[그림 4.4.3-1. 파이프라인 상세 로그 목록 화면]
해당 로그를 더블 클릭하면 [Console] View에서 분석 과정 및 오류 등의 로그를 확인할 수 있다.
[그림 4.4.3-2. 파이프라인 상세 로그 확인]
[GBoX Browse] View를 통해 각 분석 프로그램 별로 지정한 Output 경로로 이동하여 결과를 확인할 수 있다.
[그림 4.4.3-3. 파이프라인 실행 결과 확인]
[그림4.4.3-4]는 Bioinformatics 카테고리의 공개 프로그램 fastp의 분석 결과이다.
[그림 4.4.3–4. Bio-Express fastp 프로그램 분석 결과]
4.5. 공개 서비스 등록
4.5.1. 파이프라인 공개 등록
특정 사용자와의 분석 파이프라인 공유를 위하여 분석 파이프라인을 공개 등록이 가능하다.
[그림 4.5.1-1]과 같이 [Workspace] View에서 원하는 분석 파이프라인을 선택하고, 컨텍스트 메뉴 [Register Pipeline] 버튼을 클릭한다.
[그림 4.5.1-1. 파이프라인 공개 등록 요청]
공개 등록이 요청된 분석 파이프라인은 관리자 승인 절차를 거쳐 공개 분석 파이프라인으로 사용이 가능하다.
[그림 4.5.1-2. 파이프라인 공개 등록 요청 완료]
4.5.2. 프로그램 공개 등록
공개 등록이 요청된 분석 프로그램은 관리자 승인 절차를 거쳐 공개 분석 프로그램으로 등록이 가능하다.
[그림 4.5.2-1]과 같이 [Program] View에서 원하는 분석 프로그램을 선택하고, 컨텍스트 메뉴 [Register Program] 버튼을 통해 공개 등록할 수 있다.
[그림 4.5.2-1. 프로그램 공개 등록 요청]
※ 목차 클릭 시 해당 컨텐츠로 이동합니다.
5.1. 유전체 분석 파이프라인 소개
5.1.1. Whole Genome Sequencing Pipeline
개요
바이오 익스프레스에서 제공하는 전체 게놈 시퀀싱(WGS) 파이프라인은 WGS 데이터를 처리하기 위한 모듈식 파이프라인입니다. 유전체 빅데이터 사업에 의해 제작된 이 파이프라인은 FASTQ 파일을 입력으로 사용하고 Spark-GATK(ver. xxxx) 파이프라인을 기반으로 Haplotype 호출 결과와 주석 및 시각화를 제공합니다.
파이프라인 요약
파이프라인 모식도
[그림 5.1.1-1. WGS 파이프라인 모식도]
기능 설명
- FASTQ 형식의 잘 보정된 기본 오류 추정치가 있는 원시 read 데이터가 참조 게놈에 매핑됩니다. BWA 매핑 응용 프로그램은 읽기를 인간 게놈 참조에 매핑하는 데 사용되어 30개 염기 시드에서 두 개의 불일치를 허용하고 기술 독립적인 SAM/BAM 참조 파일 형식을 생성합니다.
- GATK로 중복 조각을 표시 및 제거하고, 매핑 품질을 평가하고 저품질의 매핑된 read를 필터링하고 모든 mate-pair 정보가 일치하는지 확인하기 위해 pair read 정보를 평가합니다.
- 그런 다음 로컬 재정렬을 통해 초기 정렬을 세분화하고 의심스러운 영역을 식별합니다. 이 정보를 다른 기술 공변량 및 알려진 변형 사이트와 함께 공변량으로 사용하여 GATK 기본 품질 점수 재조정(BQSR)이 수행됩니다.
- 재보정 및 재정렬된 BAM 파일을 사용하여 일배체형의 로컬 재조립을 통해 생식계열 SNP 및 INDEL을 호출합니다. 마지막으로 BAM, CRAM 또는 VCF 형식의 시퀀싱 데이터에서 관련성을 신속하게 평가하는 도구인 Somalier를 제공합니다.
사용 프로그램
Fastp, Cutadapt, BWA, GATK4, Somalier
입력 파일
- FASTQ file
- BWA Index file
- Reference FASTA file
- Reference & Resource VCF file
최종 결과 파일
Variant annotate file of Somatic SNP & InDel
등록 파이프라인
[그림 5.1.1-2. WGS 파이프라인]
단계별 설명
Quality Check - Quality Control & Adaptive Trimming
Fastp
버전 및 라이선스: 0.20.1 / MIT License
설명: Fastq 파일에 대한 all-in-one preprocessing을 수행하여 HTML 기반 보고서를 만들어 주는 프로그램
입력 인자
[input] : input - Raw data로 pair-ended 된 fastq.gz 파일이 있는 경로 (path of
*.fastq.gz)
[output] : output - preprocessing의 결과 보고서가 생성될 경로 (path of *.html,
*.json, *.fastq.gz)
[option 1] : length required – 설정한 값보다 작은 read 는 폐기 (Integer)
[option 2] : average qual – 평균 품질이 설정 값보다 작으면 폐기 (Integer)
#!/bin/bash
INPUT_DIR=$1
OUTPUT_DIR=$2
mkdir -p $OUTPUT_DIR
in_array() {
local needle array value
needle="${1}"; shift; array=("${@}")
for value in ${array[@]};
do
[ "${value}" == "${needle}" ] && echo "true" && return;
done
echo "false"
}
array=(`find $INPUT_DIR/ -name "*.fastq.gz"`)
for i in "${array[@]}"
do
FILE=${i##*/}
IFS='' read -r -a array <<< "$FILE"
len=(${#array[@]}-1)
FASTP_IN_FILE_LIST+=("${array[$len]}")
done
for i in "${FASTP_IN_FILE_LIST[@]}"
do
basename=$i
FILE1=${basename%1.fastq.gz}
IFS='' read -r -a file1_array <<< "$FILE1"
file1_len=(${#file1_array[@]}-1)
array_check=`in_array ${file1_array[$file1_len]}2.fastq.gz ${FASTP_IN_FILE_LIST[@]}`
if [ "${array_check}" == "true" ]; then
IFS='-' read -r -a SEQ_ID <<< "$FILE1"
FASTP='/BiO/program/fastp/current/fastp'
time $FASTP -i ${INPUT_DIR}/${file1_array[$file1_len]}1.fastq.gz -I ${INPUT_DIR}/${file1_array[$file1_len]}2.fastq.gz \
-o ${OUTPUT_DIR}/${file1_array[$file1_len]}1.fastq.gz -O ${OUTPUT_DIR}/${file1_array[$file1_len]}2.fastq.gz \
--length_required 20 --average_qual 20 --detect_adapter_for_pe --correction \
-h ${OUTPUT_DIR}/${SEQ_ID[0]}.html -j ${OUTPUT_DIR}/${SEQ_ID[0]}.json
fi
done
파이프라인 연결
[그림 5.1.1-3. 파이프라인 연결 화면]
결과 파일
[그림 5.1.1-4. 결과 파일 화면]
Trimming - Quality Control & Adaptive Trimming
Cutadapt
버전 및 라이선스: 3.4 / MIT License
설명: high-throughput sequencing reads으로부터 adapter sequences, primers, poly-A tails, unwanted sequence 를 찾아 제거하여 정제된 fastq 파일을 생성하는 프로그램
입력 인자
[input] : input - FastQC에 의해 preprocessing된 fastq.gz 파일이 있는 경로
[output] : output - Adaptive Trimming의 결과인 FASTQ 파일이 생성될 경로
[option 1] : minimum length - 설정한 값보다 짧은 read는 폐기 (Integer)
[option 2] : pair filter - R1및 R2에 대한 필터를 pair에 대한 단일 결정으로 결합하는방법 (any,
both, first)
#!/bin/bash
INPUT_DIR=$1
OUTPUT_DIR=$2
mkdir -p $OUTPUT_DIR
in_array() {
local needle array value
needle="${1}"; shift; array=("${@}")
for value in ${array[@]};
do
[ "${value}" == "${needle}" ] && echo "true" && return;
done
echo "false"
}
array=(`find $INPUT_DIR/ -name "*.fastq.gz"`)
for i in "${array[@]}"
do
FILE=${i##*/}
IFS='' read -r -a array <<< "$FILE"
len=(${#array[@]}-1)
echo "${array[$len]}"
SORT_IN_FILE_LIST+=("${array[$len]}")
done
index=1
for i in "${CUTADAPT_IN_FILE_LIST[@]}"
do
basename=$i
FILE1=${basename%1.fastq.gz}
IFS='' read -r -a file1_array <<< "$FILE1"
file1_len=(${#file1_array[@]}-1)
array_check=`in_array ${file1_array[$file1_len]}2.fastq.gz ${CUTADAPT_IN_FILE_LIST[@]}`
if [ "${array_check}" == "true" ]; then
READ_1=$INPUT_DIR/${file1_array[$file1_len]}1.fastq.gz
READ_2=$INPUT_DIR/${file1_array[$file1_len]}2.fastq.gz
READ_1_FILE_NAME=$(basename $READ_1)
READ_2_FILE_NAME=$(basename $READ_2)
IFS='.' read -r -a split_name_1 <<< "$READ_1_FILE_NAME"
IFS='.' read -r -a split_name_2 <<< "$READ_2_FILE_NAME"
READ_1_NAME=${split_name_1[0]}
READ_2_NAME=${split_name_2[0]}
CUTADAPT='/BiO/program/python/current/bin/cutadapt'
time $CUTADAPT -q 30 -j 2 -a AGATCGGAAGAGCACACGTCTGAACTCCAGTCAC -A AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT --minimum-length 70 --pair-filter=any -o $OUTPUT_DIR/${READ_1_NAME}.fastq -p $OUTPUT_DIR/${READ_2_NAME}.fastq $READ_1 $READ_2
index=$(($index+1))
fi
done
파이프라인 연결
[그림 5.1.1-5. 파이프라인 연결 화면]
결과 파일
[그림 5.1.1-6. 결과 파일 화면]
Alignment – Read Map to Reference
BWA mem
버전 및 라이선스: 0.7.17 / GNU General Public License version 3.0
설명: 70bp~10mbp query sequences를 최대 완전 일치로 seeding한 다음 정렬하여 SAM 파일로 제공합니다.
입력 인자
[input1] : input - Cutadapt에 의해 Adaptive Trimming 된 FASTQ 파일이 있는 경로
[input2] : reference - BWA index에 의해 index가 생성된 Reference FASTA 파일의
index가 생성된 경로
[output] : Read Map to Reference 된 SAM 파일이 생성될 경로
[option 1] : threads - Thread 수 (Integer)
[option 1] : verbose level - 로그 출력 수준 설정 (Integer)
#!/bin/bash
INPUT_DIR=$1
REF_DIR=$2
OUTPUT_DIR=$3
mkdir -p $OUTPUT_DIR
REF_FILE=(`find $REF_DIR/ -name "*.fasta"`)
in_array() {
local needle array value
needle="${1}"; shift; array=("${@}")
for value in ${array[@]};
do
[ "${value}" == "${needle}" ] && echo "true" && return;
done
echo "false"
}
array=(`find $INPUT_DIR/ -name "*.fastq"`)
for i in "${array[@]}"
do
FILE=${i##*/}
IFS='' read -r -a array <<< "$FILE"
len=(${#array[@]}-1)
echo "${array[$len]}"
SORT_IN_FILE_LIST+=("${array[$len]}")
done
for i in "${BWA_IN_FILE_LIST[@]}"
do
basename=$i
FILE1=${basename%1.fastq}
IFS='' read -r -a file1_array <<< "$FILE1"
file1_len=(${#file1_array[@]}-1)
array_check=`in_array ${file1_array[$file1_len]}2.fastq ${BWA_IN_FILE_LIST[@]}`
if [ "${array_check}" == "true" ]; then
READ_1=$INPUT_DIR/${file1_array[$file1_len]}1.fastq
READ_2=$INPUT_DIR/${file1_array[$file1_len]}2.fastq
INPUT_FILE_NAME=$(basename $READ_1 .fastq)
IFS='_' read -r -a NAME <<< "$INPUT_FILE_NAME"
IFS='-' read -r -a FASTQ_2D_ID <<< "${NAME[0]}"
OUTPUT_SAM=$OUTPUT_DIR/${NAME}.sam
BWA='/BiO/program/bwa/current/bwa'
$BWA mem \
-M -R "@RG\tID:${INPUT_DIR}\tPL:Nova6000S4\tLB:Truseq_PCRFREE\tSM:${FASTQ_2D_ID}" -v 1 \
-t 1 $REF_FILE $READ_1 $READ_2 > $OUTPUT_SAM
fi
done
파이프라인 연결
[그림 5.1.1-7. 파이프라인 연결 화면]
결과 파일
[그림 5.1.1-8. 결과 파일 화면]
Alignment – Read Merge
GATK SortSam
버전 및 라이선스: GATK 4.2.6.1 / MIT License
설명: SAM 또는 BAM 파일을 coordinate, query name 또는 SAM 레코드의 다른 속성별로 정렬합니다.
입력 인자
[input] : input - BWA mem에 의해 생성된 SAM 파일이 있는 경로
[output] : output - 속성별로 정렬된 BAM 파일이 생성될 경로
[option] : 정렬 순서 설정 (queryname, coordinate, duplicate)
#!/bin/bash
INPUT_DIR=$1
OUTPUT_DIR=$2
mkdir -p $OUTPUT_DIR
array=(`find $INPUT_DIR/ -name "*.sam"`)
for i in "${array[@]}"
do
FILE=${i##*/}
IFS='' read -r -a array <<< "$FILE"
len=(${#array[@]}-1)
echo "${array[$len]}"
SORT_IN_FILE_LIST+=("${array[$len]}")
done
for i in "${SORT_IN_FILE_LIST[@]}"
do
basename=$(basename $i)
INPUT_FILE_NAME=$(basename $i .sam)
EXTENSION=${basename#*.}
if [ $EXTENSION == 'sam' ]; then
IFS='-' read -r -a FNAME <<< "$INPUT_FILE_NAME"
IFS='_' read -r -a SEQ_ID <<< "$FNAME"
INPUT_FILE=$INPUT_DIR/${INPUT_FILE_NAME}.sam
SORTSAM='/BiO/program/gatk/current/gatk SortSam'
time $SORTSAM -I $INPUT_FILE -O $OUTPUT_DIR/${INPUT_FILE_NAME}.bam -SO coordinate
fi
done
파이프라인 연결
[그림 5.1.1-9. 파이프라인 연결 화면]
Alignment – CleanUp
GATK MarkDuplicates
버전 및 라이선스: GATK 4.2.6.1 / MIT License
설명: 입력 파일의 다섯 가지 주요 위치에 있는 sequence를 비교하여 중복의 read를 찾아 태그를 지정합니다.
입력 인자
[input] : input - SortSam 에 의해 생성된 BAM 파일이 있는 경로
[output] : output - 중복의 read를 찾아 태그가 지정된 BAM 파일이 생성될 경로
[option] : remove sequencing duplicates – 중복제거 설정 (True, False)
#!/bin/bash
INPUT_DIR=$1
OUTPUT_DIR=$2
mkdir -p $OUTPUT_DIR
array=(`find $INPUT_DIR/ -name "*.bam"`)
for i in "${array[@]}"
do
FILE=${i##*/}
IFS='' read -r -a array <<< "$FILE"
len=(${#array[@]}-1)
echo "${array[$len]}"
MARK_IN_FILE_LIST+=("${array[$len]}")
done
for i in "${MARK_IN_FILE_LIST[@]}"
do
basename=$(basename $i)
INPUT_FILE_NAME=$(basename $i .bam)
EXTENSION=${basename#*.}
if [ $EXTENSION == 'bam' ]; then
INPUT_FILE=$INPUT_DIR/${INPUT_FILE_NAME}.bam
MARKDUPLICATES='/BiO/program/gatk/current/gatk MarkDuplicates'
time $MARKDUPLICATES \
-I $INPUT_FILE \
-O $OUTPUT_DIR/${INPUT_FILE_NAME}.bam \
-M $OUTPUT_DIR/${INPUT_FILE_NAME}.table \
--REMOVE_SEQUENCING_DUPLICATES false
echo "$MARKDUPLICATES -I $INPUT_FILE -O $OUTPUT_DIR/${INPUT_FILE_NAME}.bam -M $OUTPUT_DIR/${INPUT_FILE_NAME}.table --REMOVE_SEQUENCING_DUPLICATES true"
fi
done
파이프라인 연결
[그림 5.1.1-10. 파이프라인 연결 화면]
Alignment – Base Count
GATK CountBases
버전 및 라이선스: GATK 4.2.6.1 / MIT License
설명: SAM/BAM/CRAM 파일에 있는 total number of bases를 표준출력으로 count 합니다.
입력 인자
[input] : input - MarkDuplicates 에 의해 생성된 BAM 파일이 있는 경로
[input2] : intervals - Genomic Interval 파일이 있는 경로
[output] : output - BAM 파일의 전체 bases 수가 출력된 count 파일이 생성될 경로
[option] : 분석 전에 적용할 filter 설정
INPUT_DIR=$1
REF_FILE=$2
OUTPUT_DIR=$3
mkdir -p $OUTPUT_DIR
array=(`find $INPUT_DIR/ -name "*.bam"`)
for i in "${array[@]}"
do
FILE=${i##*/}
IFS='' read -r -a array <<< "$FILE"
len=(${#array[@]}-1)
echo "${array[$len]}"
COUNT_IN_FILE_LIST+=("${array[$len]}")
done
for i in "${COUNT_IN_FILE_LIST[@]}"
do
basename=$(basename $i)
INPUT_FILE_NAME=$(basename $i .bam)
EXTENSION=${basename#*.}
if [ $EXTENSION == 'bam' ]; then
INPUT_FILE=$INPUT_DIR/${INPUT_FILE_NAME}.bam
/samtools/1.6/samtools index $INPUT_FILE
COUNTBASES='/BiO/program/gatk/current/gatk CountBases'
time $COUNTBASES \
-I $INPUT_FILE \
-O $OUTPUT_DIR/${INPUT_FILE_NAME}.count \
-RF NotSecondaryAlignmentReadFilter \
-L $REF_FILE
fi
done
파이프라인 연결
[그림 5.1.1-11. 파이프라인 연결 화면]
Alignment – Base Quality Score Recalibration
GATK BaseRecalibrator
버전 및 라이선스: GATK 4.2.6.1 / MIT License
설명: read group, reported quality score, machine cycle, nucleotide context 등의 다양한 covariates를 기반으로 base quality score를 재 교정하여 table을 생성합니다.
입력 인자
[input1] : input - MarkDuplicates에 의해 생성된 BAM 파일이 있는 경로
[input2] : reference - Reference sequence FASTA 파일이 있는 경로
[input3~5] : known sites 1~3 - known polymorphic sites인 VCF 파일이 있는 경로
[output] : output - Base quality score를 재 교정하여 생성된 table 파일이 생성될 경로
#!/bin/bash
INPUT_DIR=$1
REF_FILE1=$2
REF_FILE2=$3
REF_FILE3=$4
REF_FILE4=$5
OUTPUT_DIR=$6
mkdir -p $OUTPUT_DIR
array=(`find $INPUT_DIR/ -name "*.bam"`)
for i in "${array[@]}"
do
FILE=${i##*/}
IFS='' read -r -a array <<< "$FILE"
len=(${#array[@]}-1)
echo "${array[$len]}"
BASE_IN_FILE_LIST+=("${array[$len]}")
done
for i in "${BASE_IN_FILE_LIST[@]}"
do
basename=$(basename $i)
INPUT_FILE_NAME=$(basename $i .bam)
EXTENSION=${basename#*.}
if [ $EXTENSION == 'bam' ]; then
INPUT_FILE=$INPUT_DIR/${INPUT_FILE_NAME}.bam
BASERECALIBRATOR='/BiO/program/gatk/current/gatk BaseRecalibrator'
time $BASERECALIBRATOR \
-I $INPUT_DIR/${INPUT_FILE_NAME}.bam \
-R ${REF_FILE1} \
--known-sites ${REF_FILE2} \
--known-sites ${REF_FILE3} \
--known-sites ${REF_FILE4} \
-O $OUTPUT_DIR/${INPUT_FILE_NAME}.table
fi
done
파이프라인 연결
[그림 5.1.1-12. 파이프라인 연결 화면]
결과 파일
[그림 5.1.1-13. 결과 파일 화면]
Alignment – Apply BQSR
GATK ApplyBQSR
버전 및 라이선스: GATK 4.2.6.1 / MIT License
설명: BaseRecalibrator 도구로 생성된 재 교정 테이블을 기반으로 입력 read의 기본 품질을 재교정하여 bam 또는 cram 파일을 생성합니다.
입력 인자
[input1] : input - MarkDuplicates에 의해 생성된 BAM 파일이 있는 경로
[input2] : reference - Reference sequence FASTA 파일이 있는 경로
[input3] : bqsr recal file - BaseRecalibrator에 의해 table 파일이 생성된 경로
[output] : output - BaseRecalibrator에 의해 생성된 table 파일 기반으로 재 교정된 bam
파일이 생성될 경로
#!/bin/bash
INPUT_DIR=$1
REF_FILE=$2
REF_DIR=$3
OUTPUT_DIR=$4
mkdir -p $OUTPUT_DIR
array=(`find $INPUT_DIR/ -name "*.bam"`)
for i in "${array[@]}"
do
FILE=${i##*/}
IFS='' read -r -a array <<< "$FILE"
len=(${#array[@]}-1)
echo "${array[$len]}"
BQSR_IN_FILE_LIST+=("${array[$len]}")
done
for i in "${BQSR_IN_FILE_LIST[@]}"
do
basename=$(basename $i)
INPUT_FILE_NAME=$(basename $i .bam)
EXTENSION=${basename#*.}
if [ $EXTENSION == 'bam' ]; then
IFS='-' read -r -a FNAME <<< "$INPUT_FILE_NAME"
IFS='_' read -r -a SEQ_ID <<< "$FNAME"
echo $INPUT_FILE_NAME
echo $FNAME
INPUT_FILE=$INPUT_DIR/${INPUT_FILE_NAME}.bam
APPLYBQSR='/BiO/program/gatk/current/gatk ApplyBQSR'
time $APPLYBQSR \
-R $REF_FILE \
-I $INPUT_FILE \
-bqsr $REF_DIR/${INPUT_FILE_NAME}.table \
-O $OUTPUT_DIR/${SEQ_ID[0]}_v1.0.0.bam \
--static-quantized-quals 10 \
--static-quantized-quals 20 \
--static-quantized-quals 30
fi
done
파이프라인 연결
[그림 5.1.1-14. 파이프라인 연결 화면]
Alignment – Extract&Filter of SNPs, Indels
GATK HaplotypeCaller
버전 및 라이선스: GATK 4.2.6.1 / MIT License
설명: active region에 있는 haplotypes의 SNP와 indels를 call하여 read를 reassemble 한 결과로 VCF 파일을 생성하고 이를 gvcf.gz로 압축합니다.
입력 인자
[input1] : input - ApplyBQSR 에 의해 생성된 BAM 파일이 있는 경로
[input2] : reference - Reference sequence FASTA 파일이 있는 경로
[input3] : intervals - Genomic Intervals list 파일이 있는 경로
[output] : output - HaplotypeCaller 를 통해 gvcf.gz 파일이 생성될 경로
[option 1] : emit reference confidence – 기준 신뢰도 점수 출력 모드
[option 2] : output variant index – VCF 인덱스 생성 설정 (True, False)
#!/bin/bash
echo "Total Param= $#, PROG: $0, param1 = $1, param2 = $2, param3 = $3, param4 = $4";
if [ "$#" -lt 4 ]; then
echo "$# is Illegal number of parameters."
echo "Usage: $0 input dir, reference file, output dir"
exit 1
fi
args=("$@")
for (( i=0; i<$#; i++ ))
do
echo "$i th parameter = ${args[$i]}";
done
INPUT_DIR=$1 # BAM 파일
REF_FILE1=$2
REF_FILE2=$3
OUTPUT_DIR=$4 # VCF 파일
mkdir -p $OUTPUT_DIR
array=(`find $INPUT_DIR/ -name "*.bam"`)
for i in "${array[@]}"
do
FILE=${i##*/}
IFS='' read -r -a array <<< "$FILE"
len=(${#array[@]}-1)
echo "${array[$len]}"
HAPLO_IN_FILE_LIST+=("${array[$len]}")
done
for i in "${HAPLO_IN_FILE_LIST[@]}"
do
basename=$(basename $i)
INPUT_FILE_NAME=${basename%.*}
EXTENSION=${basename##*.}
if [ $EXTENSION == 'bam' ]; then
IFS='-' read -r -a FNAME <<< "$INPUT_FILE_NAME"
IFS='_' read -r -a SEQ_ID <<< "$FNAME"
INPUT_FILE=$INPUT_DIR/${INPUT_FILE_NAME}.bam
HAPLOTYPECALLER='/BiO/program/gatk/current/gatk HaplotypeCaller'
time $HAPLOTYPECALLER -I $INPUT_FILE -R $REF_FILE1 -O $OUTPUT_DIR/${SEQ_ID}_v1.0.0.vcf -OVI true --emit-ref-confidence GVCF -L $REF_FILE2
echo "$HAPLOTYPECALLER -I $INPUT_FILE -R $REF_FILE1 -O $OUTPUT_DIR/${SEQ_ID}_v1.0.0.vcf -OVI true --emit-ref-confidence GVCF -L $REF_FILE2"
mv $OUTPUT_DIR/${SEQ_ID}_v1.0.0.vcf $OUTPUT_DIR/${SEQ_ID}_v1.0.0.gvcf
echo "mv $OUTPUT_DIR/${SEQ_ID}_v1.0.0.vcf $OUTPUT_DIR/${SEQ_ID}_v1.0.0.gvcf"
BGZIP='/BiO/program/htslib/current/bgzip'
$BGZIP -c $OUTPUT_DIR/${SEQ_ID}_v1.0.0.gvcf > $OUTPUT_DIR/${SEQ_ID}_v1.0.0.gvcf.gz
echo "$BGZIP -c $OUTPUT_DIR/${SEQ_ID}_v1.0.0.gvcf > $OUTPUT_DIR/${SEQ_ID}_v1.0.0.gvcf.gz"
TABIX='/BiO/program/htslib/current/tabix'
$TABIX -p vcf $OUTPUT_DIR/${SEQ_ID}_v1.0.0.gvcf.gz
echo "$TABIX -p vcf $OUTPUT_DIR/${SEQ_ID}_v1.0.0.gvcf.gz"
fi
done
파이프라인 연결
[그림 5.1.1-15. 파이프라인 연결 화면]
결과 파일
[그림 5.1.1-16. 결과 파일 화면]
Alignment – Variant Annotation
Somalier
버전 및 라이선스: 0.2.12/ MIT License
설명: BAM/CRAM/VCF로부터 informative sites를 추출하고, sequencing에 따른 relatedness을 평가해주는 프로그램
입력 인자
[input1] : input - HaplotypeCaller를 통해 생성된 GVCF.GZ 파일이 있는 경로
[input2] : reference - Reference sequence FASTA 파일이 있는 경로
[input3] : sites - 추출할 variant의 sites인 VCF 파일이 있는 경로
[output] : output - Somalier를 통해 SOMALIER 파일이 생성될 경로
#!/bin/bash
INPUT_DIR=$1
REF_FILE1=$2
REF_FILE2=$3
OUTPUT_DIR=$4
mkdir -p $OUTPUT_DIR
array=(`find $INPUT_DIR/ -name "*.gvcf.gz"`)
for i in "${array[@]}"
do
FILE=${i##*/}
IFS='' read -r -a array <<< "$FILE"
len=(${#array[@]}-1)
echo "${array[$len]}"
SOMAL_IN_FILE_LIST+=("${array[$len]}")
done
for i in "${SOMAL_IN_FILE_LIST[@]}"
do
INPUT_FILE_NAME=`basename "$i" | cut -d'.' -f-3`
EXTENSION=`echo "$i" | cut -d'.' -f4-`
if [ $EXTENSION == 'gvcf.gz' ]; then
INPUT_FILE=$INPUT_DIR/${INPUT_FILE_NAME}.gvcf.gz
IFS='-' read -r -a FNAME <<< "$INPUT_FILE_NAME"
IFS='_' read -r -a SEQ_ID <<< "$FNAME"
SOMALIER='/somalier/0.2.12/somalier'
time $SOMALIER extract -d $OUTPUT_DIR -s ${REF_FILE2} -f ${REF_FILE1} $INPUT_FILE
fi
done
파이프라인 연결
[그림 5.1.1-17. 파이프라인 연결 화면]
5.1.2. Single Cell RNA Sequencing Pipeline
개요
Bio-express의 Single-cell-RNA-Sequencing-Pipeline은 Scanpy 파이프라인을 사용하여 단일 세포 유전자 발현 데이터를 분석하기 위한 확장 가능한 툴킷입니다. 여기에는 전처리, 시각화, 클러스터링, 미분 표현 테스트 방법이 포함됩니다. Python 기반 구현은 백만 개 이상의 셀로 구성된 데이터 세트를 효율적으로 처리합니다. 주석이 달린 데이터 매트릭스를 처리하기 위한 일반 클래스인 ANNDATA를 제공합니다.
파이프라인 요약
파이프라인 모식도
[그림 5.1.2-1. SCR 파이프라인 모식도]
기능 설명
- 교란 변수를 회귀분석하고, 정규화하고, 매우 가변적인 유전자를 식별합니다.
- TSNE 및 다양한 그래프(Fruchterman–Reingold) 시각화 bulk expression과 비교하여 얻은 세포 유형 주석을 보여줍니다.
- Louvain 알고리즘을 사용하여 셀을 클러스터링하고 플로팅합니다. 또한 다양한 알고리즘을 사용한 클러스터링을 지원합니다.
- 클러스터에서 차별적으로 발현된 유전자의 순위를 매기고 세포 라벨과 일치하는 마커 유전자를 식별합니다.
사용 프로그램
cellranger, scanpy
입력 파일
- Single-Cell RNA FASTQ File
- Transcriptome Reference File
최종 결과 파일
다양한 시각화 파일 (.png)
등록 파이프라인
[그림 5.1.2-2. SCR 파이프라인]
단계별 설명
Cellranger - QC & Generate count matrix
Cellranger
버전 및 라이선스: Cell Ranger 6.1.2
설명: CellRanger는 10X genomics에서 생성되는 Chromium scRNA의 염기서열 데이터를 처리하여 reads align, feature-barcode matrices, clustering을 수행하는 파이프라인입니다. 해당 bash shell은 'cellranger count'만 수행합니다. 이 단계에서는 사용자의 fastq 파일을 가져와서 1) reference에 alignment, 2) filtering, 3) barcode 카운팅, 4) UMI 카운팅 등을 수행하고 해당 결과와 매트릭스 형태의 결과파일을 제공합니다.
입력 인자
[input1] : input - cellranger mkfastq 또는 fastq 파일을 포함하는 폴더에 의해 생성된
fastq_path 폴더의 경로
[input2] : transcriptome - Reference file이 있는 디렉토리, 사용 가능한 reference :
Pre-built refence [1], Custom reference build [2]
[output] : output - 출력 파일을 저장할 상위 경로
[option1] : sample - cellranger mkfastq에 제공된 샘플 시트에 지정된 샘플 이름 (샘플 이름에
허용되는 문자 : 문자, 숫자, 하이픈 및 밑줄)
[option2] : exprect cells - 복구된 세포의 예상 수
결과 파일
[web_summary.html] : 분석 수행한 내용에 대한 요약된 측정 정보
[cloupe.cloupe] : Loupe Browser에서 사용되는 시각화 파일, 클러스터링 결과에 대한 시각화 정보 제공
[filtered_feature_bc_matrix] : 1)
feature(유전자), 2) barcode(각 세포), 3)
matrix(barcode별 feature에 매핑된[UMI] read 개수에 대한 count matrix) 정보. 사용자는 이 정보를 다른 분석 패키지에 이용하는 인풋으로
사용가능(이상치 세포 필터링, 차원 축소, 유전자 발현 정규화 등)
[filtered_feature_bc_matrix.h5] : iltered_feature_bc_matrix을 HDF5 형식으로
변환한 파일
[raw_feature_bc_matrix] : filtered_feature_bc_matrix와 달리 분석과정에서 QC를 통해
정상 단일 세포로 판정된 barcode뿐 아니라 모든 barcode에 대한 feature, barcode, count matrix에 대한 정보
[그 외 상세한 결과 파일 정보] : https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/output/gex-outputs
결과 파일 활용
[그림 5.1.2-3. web_summary.html]
- Estimated Number of Cells : cellranger를 통해 식별된 세포 수. 예상값 : 500–10,000
- Mean Reads per Cell : 시퀀싱된 reads의 총 개수를 예상 세포 수로 나눈 값.
- Median Genes per Cell : 모든 세포들(barcode)에서 검출된 유전자의 중앙값
- Barcode Rank Plot : cellranger count를 통해 각 세포(barcode)당 유전자(UMI)수를 복원하여 UMI count수로 정렬하여 순서대로 찍은 plot.
주요 수치에 대한 설명[4]
- 교제조사에서 권장하는 reads의 수는 일반적으로 최소 30,000-70,000, 샘플당 세포의 수는 최소 500,000 개 이며, 10x Chromium의 한 칸(GEM well)에 loading하는 권장 세포수는 최대 10,000 개입니다.
- 라이브러리 제작 시 loading 한 세포수와 [Estimated Number of Cells] 수치와 비교하여 세포의 퀄리티를 확인 할 수 있습니다. 일반적으로 라이브러리 제작시 10x Chromium Chip의 한 칸(GEM well)에 loading한 세포 수가 10,000개면 약 5,700개의 세포를 식별 가능합니다. [Estimated Number of Cells] 수치가 낮다면 loading한 세포 중 죽거나 깨진 세포가 많음을 의미하며, 이런 경우 라이브러리 제작 시 Digitonin 시약을 처리하여 죽은 세포를 제거하는 것을 권장합니다. 이 수치가 낮으면서 Mean reads per cell, Median Genes per Cell 수치가 비정상적으로 높다면 하나의 barcoded bead에 하나의 세포가 들어간 게 아니라 여러 세포가 들어간 multipet인 경우이므로 다운스트림 분석전에 multipet 세포 제거 과정 수행 또는 추가로 library를 제작하는 것을 권장합니다.
- Barcode Rank Plot은 각 세포마다 UMI 개수 측정을 통해 예측된 세포들의 상태를 파악할 수 있습니다. 그래프에서 급격히 꺾이는 점을 기준으로 정상세포인지 실제 세포가 들어가지 않은 empty droplet인지 판단하는 cut-off를 정하게 되어 Cells와 Background로 구분합니다. 따라서 이상적인 plot은 cliff and knee라는 불리는 급격히 하락되는 구간이 명확히 나타납니다. 절벽구간이 두 개로 나타나는 경우는 이질적인 세포 집단이 있는 경우이며, 절벽 구간이 없이 완만한 곡선을 이루고 있다면 샘플 품질이 낮거나 라이브러리 제작 과정의 실패로 예상됩니다. 절벽구간이 관찰되나 x축의 barcode수가 일반적인 범위 보다 작다면 droplet 제작 과정에서 샘플 막힘 또는 부정확한 cell counting이 예상되므로 라이브러리 제작을 다시 수행하는 것을 권장합니다.
- 그 외 살펴볼 수치 :
- A. Reads Mapped Confidently to Transcriptome : 몇 퍼센트의 reads가 unique하게 transcriptome reference에 제대로 매핑됐는지 확인. Ideal > 30%
- B. Fraction Reads in Cells : 유효한 barcode에서 유래한 read 중 해당 세포의 transcriptome에 매핑된 비율. Ideal > 70%
파이프라인 연결
[그림 5.1.2-4. 파이프라인 연결 화면]
이 모듈의 결과파일 중 filtered_feature_bc_matrix 폴더 경로가 다음 모듈인 Import_anndata의 input으로 사용됩니다. Filtered_feature_bc_matrix 폴더에는 feature(유전자), barcode(각 세포), matrix(barcode-feature에 대응하는 read count matrix) 정보 파일이 있으며 Import_anndata 모듈을 통해 다음 과정인 차원축소, 클러스터링, 유전자 발현 정규화를 위한 h5ad 형태로 변환 됩니다.
Data load - Preprocessing
Import_anndata
버전 및 라이선스: scanpy 1.9.1, anndata 0.8.0
설명: count matrix를 scanpy에서 사용할 수 있도록 annotated sparse matrix(anndata)로 변경합니다.
입력 인자
[input1] : input - sc-RNA count 매트릭스가 존재하는 경로. (해당 디렉토리는
outs/filtered_feature_bc_matrix/ 디렉토리를 포함해야하며, 해당 디렉토리 내에는 반드시 다음 3개 파일이 존재해야 합니다.)
- matrix.mtx.gz / features.tsv.gz / barcodes.tsv.gz.
[output] : output - .h5ad 파일을 저장할 경로
파이프라인 연결
[그림 5.1.2-5. 파이프라인 연결 화면]
Filtering data – Preprocessing
Filter
버전 및 라이선스: scanpy 1.9.1, anndata 0.8.0
설명: cell과 gene 필터링, qc metrics 계산 후 2개의 scatter plot과 3개의 violin plot을 생성합니다.
입력 인자
[input1] : input - Raw 데이터 anndata(.h5ad)가 존재하는 경로
[input2] : min_cells - 유전자를 필터링 할 때 필요한 최소 세포 수
[input3] : min_genes - 세포를 필터링할 때 필요한 최소 유전자 수
[input4] : mt - 제거할 미토콘드리아 유전자 심볼(Lun, McCarthy & Marioni, 2017).
MT- 는 인간의 미토콘드리아를 의미
[output] : output - 필터링된 데이터의 시각화 파일을 저장할 경로
[option1] : log1p - log1p 변환 주석을 건너뛰려면 False로 설정
[option2] : inplace - adata의 .obs, .var에서 계산된 지표 배치 여부
[option3] : jitter - 바이올린 시각화 그래프에 적용할 지터의 양
파이프라인 연결
[그림 5.1.2-6. 파이프라인 연결 화면]
결과 파일
[그림 5.1.2-7. 결과 파일 화면]
결과 파일 활용
이 plot들은 분석한 데이터셋에서 미토콘드리아의 분포 또는 세포 이중체 또는 다중체(doublets or multiplets)에서 생산된 비정상적으로 높은 유전자 수를 다양한 plot으로 제공합니다. 따라서 각 plot에서 미토콘드리아의 높은 비율은 세포의 손상으로 인해 품질이 낮은 세포가 많다는 것을 의미합니다. Citing from “Simple Single Cell” workflows (Lun, McCarthy & Marioni, 2017). 이 결과를 참고하여 미토콘드리아 유전자 발현이 너무 많거나 total count(세포당 생산된 total read count)대비 미토콘드리아에서 유래된 read count 비율이 너무 높은 세포를 제거 할 수 있습니다. (제거 기준은 세포마다 다릅니다. 일반적인 세포는 세포내 유전자 중 미토콘드리아 유전자 비율이 10% 내외지만 간 세포와 같이 미토콘드리아가 많이 생산되는 세포는 세포가 손상되어 미토콘드리아 비율이 높은 게 아니기 때문에 그 기준을 더 높게 잡아야 합니다.)
Normalization – Preprocessing
Normalize
버전 및 라이선스: scanpy 1.9.1
설명: 전체 유전자에 대한 총합으로 정규화를 진행하여 모든 세포가 같은 총합을 갖도록 합니다.
입력 인자
[input1] : input - Raw 데이터 anndata(.h5ad)가 존재하는 경로
[input2] : target_sum - 정규화 후의 총 합 결정
[input3] : exclude_highly_expressed - True인 경우, 높게 발현된 유전자는 각 셀에 대한 정규화
계산에서 제외
[output] : output - 필터링된 데이터를 저장할 경로
[option1] : log1p - True인 경우, 데이터 행렬 로그화
파이프라인 연결
[그림 5.1.2-8. 파이프라인 연결 화면]
Find highly variable genes – Preprocessing
Highly_variable_genes
버전 및 라이선스: scanpy 1.9.1, anndata 0.8.0
설명: 개체 변이가 큰 유전자(HVGs)를 계산합니다.
입력 인자
[input1] : input - 정규화된 Raw 데이터 anndata(.h5ad)가 존재하는 경로
[input2] : max_mean - 개체변이가 큰 유전자의 최대 평균
[input3] : min_disp - 개체변이가 큰 유전자의 최소 분산
[input4] : min_mean - 개체변이가 큰 유전자의 최소 평균
[output] : output - HVGs 마킹정보가 기록된 anndata와 시각화 파일을 저장할 경로
파이프라인 연결
[그림 5.1.2-9. 파이프라인 연결 화면]
결과 파일
[그림 5.1.2-10. 결과 파일 화면]
결과 파일 활용
이 결과는 데이터셋에서 세포간 유전자 발현 변동이 높은 유전자 집합을 계산합니다. 이러한 유전자에 초점을 맞추는 것이 단일 세포 데이터 세트에서 생물학적 신호를 강조하는데 필요한 절차 입니다. 이 결과 값은 PCA와 클러스터링 등 다운스트림 분석에 사용됩니다. 연구 내용에 따라 Highly variable genes 중에 연구에 관련이 없지만 세포간 변동이 큰 유전자는 다운스트림 분석에서 방해가 되기 때문에 제거 한 후 다시 한번 HVG를 수행하여 데이터 셋을 정제 할 수 있습니다.
Data slicing – Preprocessing
slice_highly_variable
버전 및 라이선스: scanpy 1.9.1
설명: 컴퓨팅 자원 효율을 위해 HVGs를 제외한 나머지 유전자들을 삭제합니다.
입력 인자
[input] : input - HVGs 마킹정보가 저장된 anndata(.h5ad)가 존재하는 경로
[output] : output - 불필요한 유전자를 잘라낸 anndata를 저장할 경로
파이프라인 연결
[그림 5.1.2-11. 파이프라인 연결 화면]
Data scaling - Preprocessing
Scale
버전 및 라이선스: scanpy 1.9.1
설명: regress out과 scaling을 수행. 기본 세팅은 scaling만 수행하는 것입니다. 데이터를 단위 분산 및 zero mean으로 scaling합니다. 모든 특성의 범위(또는 분포)가 같아지게 됩니다. Regress out은 특히 작은 데이터에서 과도한 가변 조정이 일어나 데이터 손실을 초래할 수 있기 때문에 필요 시에만 사용하도록 합니다.
입력 인자
[input1] : input - HVG가 slice된 anndata가 존재하는 경로
[input2] : max_value - 스케일링 후 이 값에 맞춤
[output] : output - 스케일링이 완료된 anndata를 저장할 경로
[option] : regress_out - regress out 실행 여부
파이프라인 연결
[그림 5.1.2-12. 파이프라인 연결 화면]
PCA - Embedding
PCA
버전 및 라이선스: scanpy 1.9.1
설명: PCA를 수행. FIt-SNE, T-SNE 등의 embedding을 수행하기 위해 데이터를 더 작은 차원으로 축소합니다. 단일 세포 데이터 세트는 수십만개에 이르는 세포에 대해 각 세포당 2~3만개의 유전자 발현량을 수치화한 고차원 정보입니다. 이런 고차원 정보를 있는 그대로 활용하면 계산시간이 오래 걸릴 뿐만 아니라, 각종 노이즈가 분석 결과에 포함될 수 있습니다. 따라서 세포당 약 2~3만개의 유전자들을 잘 조합해서 수 개에서 수십 개 정도의 차원으로 축소 시키는 과정이 아주 중요합니다.
입력 인자
[input1] : input -데이터 스케일링이 완료된 anndata의 파일 경로
[output] : output - pca 수행이 완료된 adata와 pca loading, variance ratio plot
파일을 저장할 경로
[option1] : svd_solver - 사용할 SVD solver 선택
[option2] : n_comps - pca의 컴포넌트 수
[option3] : components - pca_loading.png의 파라미터
[option4] : include_lowest - 로드가 가장 높은 변수와 가장 낮은 변수를 모두 표시할지 여부
[option5] : log - variance ratio를 로그 스케일로 시각화
파이프라인 연결
[그림 5.1.2-13. 파이프라인 연결 화면]
결과 파일
[그림 5.1.2-14. 결과 파일 화면]
결과 파일 활용
이 결과는 단일 세포 데이터 세트에 대한 데이터의 차원을 줄이기 위한 PCA 분석 결과 입니다. 데이터 세트의 전체 분산에 대한 단일 PC의 기여도를 조사하여 세포간 이웃 관계를 계산하기 위해 고려해야 하는 PC 수에 대한 정보와 해당 유전자 정보를 제공합니다.
Neighborhood graph & Find cluster - Embedding
FildClsuter
버전 및 라이선스: scanpy 1.9.1
설명: 군집화를 수행하기 위해서 neighborhood graph를 생성하고 이를 기반으로 leiden 또는 louvain 알고리즘을 수행하여 cell들의 군집 카테고리를 정의
입력 인자
[input1] : input - pca를 수행한 anndata의 파일 경로
[input2] : cluster_algorithm - 클러스터링 알고리즘 선택. (leiden 또는 louvain)
[output] : output - 클러스터링 label column이 존재하는 anndata를 저장할 경로
[option] : n_neighbors - 인접 데이터 포인트의 수
파이프라인 연결
[그림 5.1.2-15. 파이프라인 연결 화면]
FIt-SNE, T-SNE, UMAP - Embedding
RunEmbed
버전 및 라이선스: scanpy 1.9.1
설명: FIt-SNE, T-SNE, UMAP 알고리즘을 수행합니다.
입력 인자
[input1] : input - leiden 또는 louvain의 카테고리 column이 존재하는 anndata 파일 경로
[input2] : tsne_n_pcs - TNSE 수행 시 사용할 PC의 개수
[input3] : tsne_perplexity - perplexity는 매니폴드 학습 알고리즘에서 사용되는 nearest
neighbors의 수와 관련이 있습니다. 데이터셋이 클수록 큰 perplexity값을 사용합니다. 5에서 50 사이가 가장 적절한 값입니다.
[input4] : tsne_learning_rate - TSNE 수행 시 필요한 learning rate. 100에서
10000 사이의 값을 선택합니다.
[input5] : init_pos - umap 임베딩 시 초기화될 값. paga, spectral, random 중 한가지를
선택합니다. 기본값은 paga입니다.
[input6] : paga_groups - leiden 또는 louvain을 선택. 기본값은 leiden입니다.
[output] : output - 임베딩된 데이터가 존재하는 adata를 저장할 경로
[option1] : umap_min_dist - 포함된 점 사이의 유효 최소 거리
[option2] : umap_spread - 포함된 점의 유효 척도
[option3] : umap_alpha - 임베딩 최적화를 위한 초기 학습률
[option4] : umap_gamma - 저차원 임베딩 최적화에서 음성 샘플에 적용되는 가중치
파이프라인 연결
[그림 5.1.2-16. 파이프라인 연결 화면]
Visualize embedded data - Visualization
PlotEmbed
버전 및 라이선스: scanpy 1.9.1
설명: FIt-SNE, T-SNE, UMAP 결과를 시각화 합니다.
입력 인자
[input1] : input -FIt-SNE, T-SNE, UMAP 결과가 포함된 anndata가 존재하는 파일 경로
[input2] : color - plot에 표시할 클러스터링 알고리즘. louvain 또는 leinden을 선택
[input3] : dotsize - plot의 dot size를 설정
[output] : output - 시각화 파일을 저장할 경로
[option] : figsize - 시각화 플롯의 크기 지정
파이프라인 연결
[그림 5.1.2-17. 파이프라인 연결 화면]
결과 파일
[그림 5.1.2-18. 결과 파일 화면]
결과 파일 활용
이 결과는 단일 세포 데이터 세트를 시각화하고 탐색하기 위해 tSNE, Flt-SNE, UMAP과 같은 여러 비선형 차원 축소 기술을 통해 생산된 plot을 제공합니다. 지금까지 차원 축소를 거친 데이터는 세포 하나하나마다 저차원 공간의 좌표라고 할 수 있는 고유의 좌표를 갖게 됩니다. 따라서 비슷한 세포들은 비슷한 좌표를 갖게 되며 이 저차원 공간에서 군집을 이루어 특정한 기하학적 형태를 구성하게 됩니다. 따라서 결과로 위의 plot과 같이 특정 좌표위에 각 세포를 표현하고 비슷한 세포(생물학적 신호, 유전자 발현 패턴이 유사한) 끼리 군집을 색상별로 표현되어 제공합니다.
Visualize marker genes - Visualization
PlotMarker
버전 및 라이선스: scanpy 1.9.1
설명: DEG(differentially expressed genes)를 찾아서 시각화한 다양한 plot과 Heatmap, stacked violin plot, 각각의 embedding plot을 기반으로 한 marker gene들의 활성화 plot을 제공합니다.
입력 인자
[input1] : input - embedding이 완료된 anndata가 존재하는 파일 경로
[input2] : n_genes - 각 embedding plot에 표시할 marker gene의 개수
[input3] : groupby - marker gene을 구할 때 사용할 clustering 알고리즘의 종류를 선택
[output] : output - 시각화 파일을 저장할 경로
[option] : gene_name - 이 유전자 이름을 사용하여 바이올린 플롯을 보여주며 None인 경우 첫 번째 마커
유전자를 표시
파이프라인 연결
[그림 5.1.2-19. 파이프라인 연결 화면]
결과 파일
[그림 5.1.2-20. 결과 파일 화면]
결과 파일 활용
이 결과는 단일 세포 데이터 세트에서 전처리, 차원축소, 군집화가 완료된 데이터에서 관심있는 유전자를 입력하면 해당 유전자 또는 생물학적 신호를 구성하는 유전자 세트가 어느 군집에서 얼마나 발현하고 있는지를 결과로 제공합니다.