import smbl
import rnftools


##

#reference_basic_1   = smbl.fasta.HUMAN_HG38
reference_basic_1   = smbl.fasta.EXAMPLE_2
reference_contam_1  = smbl.fasta.EXAMPLE_1

reference_basic_2   = smbl.fasta.EXAMPLE_1
reference_contam_2  = smbl.fasta.EXAMPLE_2

##

reads_1 = "reads_a"
reads_2 = "reads_b"


#
# READS
#

# sample 1

rnftools.mishmash.sample(reads_1,reads_in_tuple=2)

rnftools.mishmash.DwgSim(
	fasta=reference_basic_1,
	read_length_1=100,
	read_length_2=100,
	number_of_read_tuples=10000
)


rnftools.mishmash.DwgSim(
	fasta=reference_contam_1,
	read_length_1=100,
	read_length_2=100,
	number_of_read_tuples=2000
)


# sample 2

rnftools.mishmash.sample(reads_2,reads_in_tuple=2)

rnftools.mishmash.DwgSim(
	fasta=reference_basic_2,
	read_length_1=100,
	read_length_2=100,
	number_of_read_tuples=10000
)


rnftools.mishmash.DwgSim(
	fasta=reference_contam_2,
	read_length_1=100,
	read_length_2=100,
	number_of_read_tuples=2000
)


#
# ALIGNMENT
#

alignments = [
		smbl.prog.BwaMem(
			fasta=reference_basic_2,
			fastq_1=reads_2+".1.fq",
			fastq_2=reads_2+".2.fq",
			bam="BWA-MEM.bam",
		),

		smbl.prog.BwaSw(
			fasta=reference_basic_2,
			fastq_1=reads_2+".1.fq",
			fastq_2=reads_2+".2.fq",
			bam="BWA-SW.bam",
		),

		smbl.prog.Bowtie2(
			fasta=reference_basic_2,
			fastq_1=reads_2+".1.fq",
			fastq_2=reads_2+".2.fq",
			bam="Bowtie2.bam",
		),

		smbl.prog.Yara(
			fasta=reference_basic_2,
			fastq_1=reads_2+".1.fq",
			fastq_2=reads_2+".2.fq",
			bam="Yara.bam",
			sort_by_name=True,
		),
	]


#
# RULES
#

# required final files

rule basic:
	input:
		[aln.bam_fn() for aln in alignments]

include: rnftools.include()
