[Multiqc] Custom Contents

반응형

-목차-

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리포트에 나만의 데이터를 시각화할 수 있습니다.

My module 리포팅

3. 설치

1) MultiQC의 깃헙 사이트(https://github.com/ewels/MultiQC)의 코드를 git clone

git clone https://github.com/ewels/MultiQC.git

2) MultiQC 디렉토리에서 setup.py entry_points 수정 및  설치(개발자 모드 설치)

setup.py 수정

python setup.py develop #개발자 모드 설치

 

4. 과정

MulitQC의 document(https://multiqc.info/docs/#coding-with-multiqc)에서 Coding with MulitQC의 Step 6단계를 진행합니다.

수정해야 할 파일들 시각화 (파란 형광펜 처진 파일들 수정.)

수정해야 할 파일 Tree 구조

 

  •  search_patterns.yaml 수정

mymod를 추가하고, 확장자가. mymod로 끝나는 파일을 사용합니다.

search_patterns.yaml 수정

  • Step 1self.find_log_files를 이용해 search_patterns.yaml에서 설정한 로그 파일을 찾습니다.
  • Step 2: 파일을 읽어오는 함수 parse_logs를 직접 만든 후, self.parse_logs(f ['f'])를 이용해 로그파일의 데이터를 읽어옵니다.

Step1: 로그파일 찾기, Step2: 로그파일 데이터 읽어오기

Step 3: Step2에서 읽어온 데이터(data)의 헤더를 바탕으로 headers(OrderedDict)를 생성해줍니다. 그 후, self.general_stats_addcols(data, headers)를 통해 general statics 테이블에 데이터를 추가해 줍니다.

Step3: Multiqc 리포트 최상단의 general_stats에 데이터 추가하기

*주의사항 : headers의 key값과 Parsing 한 로그 파일(self.mymod_data)의 key값이 동일해야 합니다.

동일하지 않으면, header가 인식되지 않습니다.

Step 4self.write_data_file(data, 'multiqc_mymod')를 이용하여 MultiQC 리포팅에 사용된 데이터를 multiqc_data 디렉터리에 써줍니다(write).

Step4: Multiqc 리포트에 사용될 데이터를 파일로 씁니다.

Step 5self.add_section(name = "섹션 이름", anchor = "섹션_id", plot = Plot함수)을 이용하여 리포트에 섹션을 추가해줍니다.

Step5: 리포트에 섹션을 추가합니다. (여러개 추가 가능)

Step 6Plotting Function을 직접 정의하고, Step 5의 add_section의 plot의 파라미터로 넣어줍니다.

Step6: bar_plot과 scatter_plot을 예시로 그려봅니다.

5. 실행

1) multiqc_config.yaml : 모듈의 순서를 조정합니다.

* top_modules를 이용해 기존 모듈의 순서를 조정할 수 있지만, 생성한 모듈(ex Stat Analysis)에 대해선 지정한 순서 외에 마지막 순서에 해당 섹션이 중복 생성됩니다.

 문제를 해결하기 위해, 아래 그림처럼 module_order: 을 이용하니 해결되었습니다.

multiqc 환경 설정 파일: multiqc_config.yaml

환경 설정 파일까지 생성하였다면 모든 게 끝났습니다.

아래와 같은 명령으로 multiqc 커스텀 데이터까지 추가한 것을 실행할 수 있습니다.

multiqc -c {multiqc_config.yaml경로}/multiqc_config.yaml -i {리포트 타이틀} -n {파일 이름}

이렇게 실행하면 그 결과로 아래처럼 My module이 생성되게 됩니다.

My module 결과

반응형

'생물정보학 > 생물정보학 Tools' 카테고리의 다른 글

VCF파일 인덱싱하기  (0) 2020.09.14
Conpair - tumor.bam normal.bam 비교  (0) 2020.08.24
bedtools merge  (0) 2020.07.25
bedtools - 양쪽 base pair 늘리고, 합치기  (3) 2020.07.16
MultiQC  (0) 2020.07.09

댓글

Designed by JB FACTORY