Closed mictadlo closed 9 months ago
Hi,
I used the command merqury.sh QLD.meryl NbQld183.genome.fasta merqury
. Unfortunately, the log file shows few errors:
% grep "Can't interpret" merqury.spectra-cn.log
Can't interpret 'boundary': not a meryl command, option, or recognized input file.
Can't interpret 'QLD.gtboundary.meryl': not a meryl command, option, or recognized input file.
Can't interpret 'QLD.gtboundary.meryl': not a meryl command, option, or recognized input file.
Can't interpret 'NbQld183.genome.solid.meryl': not a meryl command, option, or recognized input file.
What did I do wrong? merqury.spectra-cn.log
Please refer to https://github.com/marbl/merqury/issues/49#issuecomment-852394078 for fixing the 'module load R' part since you are running from a conda environment.
Could you paste what's in QLD.filt
?
Seems like there are some garbage values in there?
Try running Merqury in a clean directory, with QLD.meryl
and NbQld183.genome.fasta symlinked
.
Thanks, Arang
Hi Arang, Thank you for your response. Please find below the files which you ask me to check
> cat QLD.filt
boundary
and to edit:
> cat ./envs/merqurytest/share/merqury/util/util.sh
#!/usr/bin/env bash
function link()
{
db_name=`basename $1`
if [[ ! -e $db_name ]]; then
ln -s $1
fi
echo $db_name
}
function check_module()
{
module -v 1> /dev/null 2> /dev/null
echo 1
}
In the meantime, I tried to use the latest master build and create a new conda package.
wget -c https://artprodsu6weu.artifacts.visualstudio.com/A27bcc0f9-b22c-4418-83d8-514809b37fb2/25074ded-3133-43ca-af80-895ab87b53cb/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2Jpb2NvbmRhL3Byb2plY3RJZC8yNTA3NGRlZC0zMTMzLTQzY2EtYWY4MC04OTVhYjg3YjUzY2IvYnVpbGRJZC8yNDQ5OC9hcnRpZmFjdE5hbWUvTGludXhBcnRpZmFjdHM1/content?format=zip
mv content\?format\=zip merqury-test.zip
unzip merqury-test.zip
conda create -n merqurytest
conda activate merqurytest
conda install -c ./LinuxArtifacts/packages/noarch/merqury-1.3-hdfd78af_2.tar.bz2 merqury
Unfortunately, the completeness.stats
file is still empty.
What did I miss?
Hi,
I had the same issue and took quite some time to debug it. The problem for me is in $MERQURY/build/filt.sh, lines 21 to 25.
More specifically, kmerHistToPloidyDepth.jar is emitting a warning message that troubles the filtering step. The content of my $db.hist.ploidy files is thus the following:
[0.001s][warning][os,container] Duplicate cpuset controllers detected. Picking /sys/fs/cgroup/cpuset, skipping /dev/cpuset. ploidy depth boundary 0 0 3 1 8 17
Which results in the same error as above: "Can't interpret 'boundary': not a meryl command, option, or recognized input file.", since on the second line "boundary" is now the last word, which is not a number. (Yes, I know a value of 3 is far from ideal)
My solution to fix the issue is to modify line 25 from:
filt=``sed -n 2p $db.hist.ploidy | awk '{print $NF}'
`
to
filt=``grep -v warning $db.hist.ploidy | sed -n 2p | awk '{print $NF}'
`
(sorry, too many ``` here due to some formatting issue)
Hope that helps.
Cheers, Simon
Thank you it works.
[0.001s][warning][os,container] Duplicate cpuset controllers detected. Picking /sys/fs/cgroup/cpuset, skipping /dev/cpuset.
This is interesting. Seems like a OS/platform specific log. I'll update the filt script to handle this...
Hi, I ran merqury but only one file is empty
merqury.completeness.stats
empty. What possibly could go wrong?Best wishes,
Michal