Skip to content
Snippets Groups Projects
Commit 9a450c94 authored by Floreal Cabanettes's avatar Floreal Cabanettes
Browse files

Add align after build_pop

parent a687957d
No related branches found
No related tags found
1 merge request!11Integrate popsim simulation software to cnvpipelines
......@@ -705,13 +705,13 @@ class CnvPipeline:
raise FileExistsError(file + "already exists but is not a link")
os.symlink(file, final_link)
final_sample_file = os.path.join(self.wdir, "samples.list")
final_sample_file = os.path.join(self.wdir, "samples.yml")
self.parse_align_sample_file(samples, final_sample_file)
config = {
"wdir": self.wdir,
"reference": os.path.join(ref_dir, os.path.basename(reference)),
"sample_file": final_sample_file
"sample_file_align": final_sample_file
}
with open(self.config_file, "w") as config_file:
......@@ -753,6 +753,17 @@ class CnvPipeline:
if not os.path.exists(dest):
os.symlink(source, dest)
@staticmethod
def _create_samples_fastq_simulaton(nb_inds, smple_file):
samples = {}
for i in range(1, nb_inds+1):
samples["indiv%d" % i] = {
"reads1": os.path.join("pop", "indiv%d_1.fq.gz" % i),
"reads2": os.path.join("pop", "indiv%d_2.fq.gz" % i)
}
with open(smple_file, "w") as samples_f:
yaml.dump(samples, samples_f, default_flow_style=False)
def run_simulation(self, nb_inds, reference, nstretches, sv_list, coverage, force_polymorphism,
haploid, proba_del, proba_inv, read_len, insert_len_mean, insert_len_sd, min_deletions,
min_inversions, max_try, genotypes, force_wdir=False, **kwargs):
......@@ -799,6 +810,10 @@ class CnvPipeline:
ref_final = os.path.join(self.wdir, os.path.basename(reference))
self._link(reference, ref_final)
# Create sample file for fastq files:
samples_file_fq = os.path.join(self.wdir, "samples.yml")
self._create_samples_fastq_simulaton(nb_inds, samples_file_fq)
config = {
"wdir": self.wdir,
"nb_inds": nb_inds,
......@@ -813,7 +828,8 @@ class CnvPipeline:
"insert_len_sd": insert_len_sd,
"min_deletions": min_deletions,
"min_inversions": min_inversions,
"max_try": max_try
"max_try": max_try,
"sample_file_align": samples_file_fq
}
nstretches_final = None
......
......@@ -13,7 +13,7 @@ from align_snakemake_utils import SnakemakeUtils
# Get from config:
samples = get_samples_align(config['sample_file'])
samples = get_samples_align(config['sample_file_align'])
reference = config['reference']
wdir = config['wdir']
......@@ -23,10 +23,10 @@ snakemake_utils = SnakemakeUtils(samples)
include: "tools/threads.snk"
localrules: all
localrules: all_align
rule all:
rule all_align:
input:
expand("bams/{sample}.bam", sample=samples.keys()),
expand("bams/{sample}.bam.bai", sample=samples.keys())
......
......@@ -54,7 +54,7 @@ def buildpop_inputs():
def buildpop_outputs():
outputs = []
for n in range(1, NB_INDS+1):
outputs += [os.path.join("pop", "indiv%d_1.fq.gz" % n), os.path.join("pop", "indiv%d_2.fq.gz" % n)]
outputs += [os.path.abspath(os.path.join("pop", "indiv%d_1.fq.gz" % n)), os.path.abspath(os.path.join("pop", "indiv%d_2.fq.gz" % n))]
return outputs
bp_inputs, bp_params = buildpop_inputs()
......@@ -62,12 +62,14 @@ bp_outputs = buildpop_outputs()
include: "tools/threads.snk"
include: "align.snk"
localrules: all
localrules: all_popsim
rule all:
rule all_popsim:
input:
*bp_outputs
expand("bams/{sample}.bam", sample=["indiv%d" % i for i in range(1, NB_INDS+1)])
#*bp_outputs
rule buildpop:
input:
......@@ -118,4 +120,4 @@ rule buildpop:
command.append("-f")
if params.haploid:
command.append("-a")
shell(" ".join(command) + " 1> %s 2> %s" % (log.stdout, log.stderr))
\ No newline at end of file
shell(" ".join(command) + " 1> %s 2> %s" % (log.stdout, log.stderr))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment