Early enumeration does not work correctly
joergen7 opened this issue · comments
Jörgen Brandt commented
The following workflow reproduces the bug:
deftask compareToCTRL( somaticVCF( File ) : <tumorParts( File )> ctrlBam( File ) )in bash *{
echo "starting task compareToCTRL" >> /tmp/cflog.txt
sleep 20
echo "terminating compareToCTRL" >> /tmp/cflog.txt
somaticVCF=somaticVCF
touch $somaticVCF
}*
% Alignment with bwa-mem
deftask bwa-mem( bamout( File ) : fastq( File ) ) in bash *{
echo "starting task bwa-mem( fastq: \"$fastq\" )" >> /tmp/cflog.txt
sleep 9
sleep `echo $RANDOM % 10 | bc`
echo "terminating bwa-mem( fastq: \"$fastq\" )" >> /tmp/cflog.txt
bamout=bamout
touch $bamout
}*
deftask getVariants( somaticVCF( File ) : tumor( File ) ctrlBam( File ) ) {
tumorBam = bwa-mem( fastq: tumor );
somaticVCF = compareToCTRL(
tumorParts: tumorBam,
ctrlBam: ctrlBam );
}
tumorFQs = "data/CH_JK_001/CH_JK_001_R1_001.fastq.gz";
healthyFQs = "data/CH_JK_029/CH_JK_029_R1_001.fastq.gz";
ctrlBams = bwa-mem( fastq: healthyFQs );
somaticVCF = getVariants(
tumor: tumorFQs,
ctrlBam: ctrlBams );
somaticVCF;
Producing the following expression, which should be further reduced but isn't:
[{app,42,1,
{lam,25,"getVariants",
{sign,[{param,{name,"somaticVCF",true},false}],
[{param,{name,"tumor",true},false},
{param,{name,"ctrlBam",true},true}]},
{natbody,#{"somaticVCF" => [{app,29,1,
{var,29,"compareToCTRL"},
#{"ctrlBam" => [{var,31,"ctrlBam"}],
"tumorParts" => [{var,30,"tumorBam"}]}}],
"tumorBam" => [{app,27,1,
{var,27,"bwa-mem"},
#{"fastq" => [{var,27,"tumor"}]}}]}}},
#{"ctrlBam" => [{select,40,1,{fut,"bwa-mem",1,[{param,{name,"bamout",true},false}]}}],
"tumor" => [{str,"data/CH_JK_001/CH_JK_001_R1_001.fastq.gz"}]}}]
Jörgen Brandt commented
Solved, test added.