kaizhang / SnapATAC2

Single-cell epigenomics analysis tools
https://kzhang.org/SnapATAC2/
222 stars 24 forks source link

import_data() got multiple values for argument 'chrom_sizes' #255

Closed TingTingShao closed 6 months ago

TingTingShao commented 6 months ago

Dear,

I successfully ran the workflow in Jupyter notebook, and I plan to develop the pipeline in Snakemake

sample_names, = glob_wildcards("snATAC/{name}.fragments.tsv.gz")

rule all:
    input:
        h5ads=expand(
            '010h5ad/{name}.h5ad',
            name=sample_names),

Import data
rule import_data:
    input:
        frags='snATAC/{name}.fragments.tsv.gz'      
    output:
        h5ad='010h5ad/{name}.h5ad'
    run:
        import snapatac2 as snap
        adatas = snap.pp.import_data(
            input.frags,
            output.h5ad,
            chrom_sizes=snap.genome.hg38,
            min_num_fragments=1000,
            sorted_by_barcode=False,)

But the error shows: import_data() got multiple values for argument 'chrom_sizes' I double-checked, it ran smoothly in the Jupyter notebook.

Any thoughts on this?

Thanks! tingting

TingTingShao commented 6 months ago

Solved!

sample_names, = glob_wildcards("snATAC/{name}.fragments.tsv.gz")

rule all:
    input:
        h5ads=expand(
            "010h5ad/{name}.h5ad",
            name=sample_names),

# Import data
rule import_data:
    input:
        frags="snATAC/{name}.fragments.tsv.gz",   
    output:
        h5ad="010h5ad/{name}.h5ad",
    run:
        import snapatac2 as snap
        adatas = snap.pp.import_data(
            input.frags,
            file=output.h5ad,
            chrom_sizes=snap.genome.hg38,
            sorted_by_barcode=False,)

Simply treat them one by one.

Regards, tingting