# A Quick Start of sigminer Package

#### Shixiang Wang ( wangshx@shanghaitech.edu.cn )

#### 2024-05-11

Assume you have already gotten a catalog matrix (sample-by-component) like below:

    library(sigminer)
    data("simulated_catalogs")
    mat <- t(simulated_catalogs$set1)

    mat[1:5, 1:5]
    #>          A[C>A]A A[C>A]C A[C>A]G A[C>A]T C[C>A]A
    #> Sample_1     911     761      88     744     883
    #> Sample_2     195     175      19     174     225
    #> Sample_3      95      51      12      55     142
    #> Sample_4     131      71      14      77     170
    #> Sample_5      33      10       2      14      55

Extract signatures with:

    # Here I reduce the values for n_bootstrap and n_nmf_run for reducing the run time.  In practice,
    # you should keep default or increase the values for better estimation.  The input data here is
    # simulated from 10 mutational signatures
    e1 <- bp_extract_signatures(mat, range = 8:12, n_bootstrap = 5, n_nmf_run = 10)

Check which signature number is proper:

    bp_show_survey2(e1, highlight = 10)
    #> Variables can be used: signature_number, silhouette, sample_cosine_distance, L1_error, L2_error, exposure_positive_correlation, signature_similarity_within_cluster, signature_similarity_across_cluster, silhouette_sample

Get the `10` signatures:

    obj <- bp_get_sig_obj(e1, 10)

Show signature profile:

    show_sig_profile(obj, mode = "SBS", style = "cosmic")

Show signature activity (a.k.a. exposure) profile:

    show_sig_exposure(obj, rm_space = TRUE)

Calculate the similarity to COSMIC reference signatures:

    sim <- get_sig_similarity(obj, sig_db = "SBS")
    #> -Comparing against COSMIC signatures
    #> ------------------------------------
    #> --Found Sig1 most similar to SBS12
    #>    Aetiology: Unknown [similarity: 0.932]
    #> --Found Sig2 most similar to SBS13
    #>    Aetiology: Activity of APOBEC family of cytidine deaminases [similarity: 0.97]
    #> --Found Sig3 most similar to SBS5
    #>    Aetiology: Unknown (clock-like signature) [similarity: 0.95]
    #> --Found Sig4 most similar to SBS3
    #>    Aetiology: Defective homologous recombination DNA damage repair [similarity: 0.927]
    #> --Found Sig5 most similar to SBS8
    #>    Aetiology: Unknown [similarity: 0.934]
    #> --Found Sig6 most similar to SBS18
    #>    Aetiology: Damage by reactive oxygen species [similarity: 0.975]
    #> --Found Sig7 most similar to SBS1
    #>    Aetiology: Spontaneous deamination of 5-methylcytosine (clock-like signature) [similarity: 0.76]
    #> --Found Sig8 most similar to SBS6
    #>    Aetiology: Defective DNA mismatch repair [similarity: 0.957]
    #> --Found Sig9 most similar to SBS17b
    #>    Aetiology: Unknown [similarity: 0.888]
    #> --Found Sig10 most similar to SBS2
    #>    Aetiology: Activity of APOBEC family of cytidine deaminases [similarity: 0.986]
    #> ------------------------------------
    #> Return result invisiblely.

    if (require(pheatmap)) {
        pheatmap::pheatmap(sim$similarity)
    }

## QA

If you encounter warnings about `future` package, please set the following options before running code:

    options(future.rng.onMisuse = "ignore", future.globals.maxSize = Inf)

## More

Please go to reference list for well organized functions and documentation.

For more about mutational signature and sigminer usage, you can read sigminer-book.