Bioconductor에서 S4의 역할

R로 시작하는 Bioconductor

James Chapman

Curriculum Manager, DataCamp

S3

장점

  • CRAN, 간단하지만 강력함
  • 유연하고 대화형
  • 제네릭 함수 사용
  • 기능이 첫 번째 인수에 의존
  • 예시: plot()methods(plot)

단점

  • 타입 검증 및 명명 규칙 미흡 (점 사용 여부 불명확)
  • 상속은 가능하지만 입력에 의존
R로 시작하는 Bioconductor

S4

장점

  • 클래스의 공식적인 정의
  • Bioconductor 재사용성
  • 타입 검증 지원
  • 명명 규칙 존재

예시: myDescriptor <- new("GenomeDescription")

단점

  • S3에 비해 복잡한 구조
R로 시작하는 Bioconductor

S4 여부 확인

객체가 S4인지 확인

isS4(myDescriptor)
TRUE

S4 객체의 strFormal class로 시작

str(myDescriptor)
Formal class 'GenomeDescription' [package "GenomeInfoDb"] with 7 slots
...
R로 시작하는 Bioconductor

S4 클래스 정의

클래스는 표현 방식을 정의함

  • name
  • slots (메서드/필드)
  • contains (상속 정의)
MyEpicProject <- setClass(# Define class name with UpperCamelCase
                          "MyEpicProject",
                          # Define slots, helpful for validation
                          slots = c(ini = "Date", 
                                    end = "Date", 
                                    milestone = "character"),
                          # Define inheritance        
                          contains = "MyProject")
R로 시작하는 Bioconductor
.S4methods(class = "GenomeDescription")
 [1] coerce          commonName      organism        provider       
 [5] providerVersion releaseDate     releaseName     seqinfo        
 [9] seqnames        show            toString        bsgenomeName   
see '?methods' for accessing help and source code
showMethods(classes = "GenomeDescription", where = search())

객체 요약

show(myDescriptor)
| organism:  ()
| provider: 
| provider version: 
| release date: 
| release name: 
| ---
| seqlengths:
R로 시작하는 Bioconductor

연습해 봅시다!

R로 시작하는 Bioconductor

Preparing Video For Download...