from dataclasses import dataclass
from enum import Enum
from typing import List, Optional, Union
from dataclasses_json import dataclass_json
from flytekit.core.launch_plan import reference_launch_plan
from ..types.directory import LatchDir
from ..types.file import LatchFile
[docs]@dataclass_json
@dataclass
class SingleEndReads:
r1: LatchFile
[docs]@dataclass_json
@dataclass
class PairedEndReads:
r1: LatchFile
r2: LatchFile
[docs]class ReadType(Enum):
single = "single"
paired = "paired"
[docs]class Strandedness(Enum):
auto = "auto"
Replicate = Union[SingleEndReads, PairedEndReads]
[docs]@dataclass_json
@dataclass
class Sample:
name: str
strandedness: Strandedness
replicates: List[Replicate]
[docs]class LatchGenome(Enum):
RefSeq_hg38_p14 = "Homo sapiens (RefSeq hg38.p14)"
RefSeq_T2T_CHM13v2_0 = "Homo sapiens (RefSeq T2T-CHM13v2.0)"
RefSeq_R64 = "Saccharomyces cerevisiae (RefSeq R64)"
RefSeq_GRCm39 = "Mus musculus (RefSeq GRCm39)"
@reference_launch_plan(
project="1",
domain="development",
name="wf.__init__.rnaseq",
version="0.0.317-f53c0e",
)
def rnaseq(
samples: List[Sample],
alignment_quantification_tools: AlignmentTools,
ta_ref_genome_fork: str,
sa_ref_genome_fork: str,
output_location_fork: str,
run_name: str,
latch_genome: LatchGenome,
bams: List[List[LatchFile]],
custom_gtf: Optional[LatchFile] = None,
custom_ref_genome: Optional[LatchFile] = None,
custom_ref_trans: Optional[LatchFile] = None,
star_index: Optional[LatchFile] = None,
salmon_index: Optional[LatchFile] = None,
save_indices: bool = False,
custom_output_dir: Optional[LatchDir] = None,
) -> List[LatchFile]: ...