matsengrp/linearham

linearham crashed

Closed this issue · 7 comments

root@d4094c82cf56:/linearham# scons --run-linearham                                                     
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scripts/generate_revbayes_rev_file.py templates/revbayes_asr_template.rev --fasta-path output/cluster-0/cluster_seqs.fasta --mcmc-iter 10000 --mcmc-thin 10 --tune-iter 5000 --tune-thin 100 --num-rates 4 --seed 0 --output-path output/cluster-0/mcmciter10000_mcmcthin10_tuneiter5000_tunethin100_numrates4_rngseed0/revbayes_run.rev
lib/revbayes/projects/cmake/rb output/cluster-0/mcmciter10000_mcmcthin10_tuneiter5000_tunethin100_numrates4_rngseed0/revbayes_run.rev > output/cluster-0/mcmciter10000_mcmcthin10_tuneiter5000_tunethin100_numrates4_rngseed0/revbayes_run.stdout.log
_build/linearham/linearham --pipeline --yaml-path output/cluster-0/cluster.yaml --cluster-ind 0 --hmm-param-dir output/parameter_dir/hmm/hmms --seed 0 --num-rates 4 --input-path output/cluster-0/mcmciter10000_mcmcthin10_tuneiter5000_tunethin100_numrates4_rngseed0/revbayes_run.trees --output-path output/cluster-0/mcmciter10000_mcmcthin10_tuneiter5000_tunethin100_numrates4_rngseed0/lh_revbayes_run.trees
linearham: _build/linearham/VDJGermline.cpp:51: std::unordered_map<std::__cxx11::basic_string<char>, linearham::GermlineGene> linearham::CreateGermlineGeneMap(std::__cxx11::string): Assertion `dir != nullptr' failed.
Aborted (core dumped)
scons: *** [output/cluster-0/mcmciter10000_mcmcthin10_tuneiter5000_tunethin100_numrates4_rngseed0/lh_revbayes_run.trees] Error 134
scons: building terminated because of errors.

I haven't been able to reproduce this crash yet but it looks like it is crashing here:

https://github.com/matsengrp/linearham/blob/master/src/VDJGermline.cpp#L51

i.e. the --hmm-param-dir in the _build/linearham/linearham command (which comes from --parameter-dir) does not exist. I will keep trying, but it would be useful to know if you ran --run-partis prior to this or if you set any defaults so that I can try to reproduce by running things exactly as you did.

Thanks!

I'm not sure how many similar null ptr checks are scattered around the linearham code, but it would be really nice if they could be replaced with error messages that give the user a better clue what's wrong. Something like throwing a runtime error with a message like "hmm_param_dir not found" would give the user a really good shot at fixing the problem themselves, since --hmm-param-dir is a something that was just passed in to linearham so they have some control over it, whereas asserting "dir" isn't null ptr sounds more like a coding error or memory issue than a dir not existing.

I like this style of throwing things, although I wouldn't put the ERROR text these days since it's already getting kicked to std err.

@eharkins, I did run --run-partis prior to --run-linearham, but I used a --parameter-dir generated separately by a previous version of partis (25ec9b0) on the whole dataset from this donor. The --run-partis and --run-linearham commands were run on a single lineage that I extracted manually.

@scharch it seems like linearham is trying and failing to use output/parameter_dir as your parameter dir for --run-linearham. Does that directory exist and does what does it contain? What happens if you instead specify the parameter dir

generated separately by a previous version of partis

Yes, the directory exists; I copied the partis output there when I was having trouble specifying the command line options.

root@d4094c82cf56:/linearham# ls output/paramter_dir/hmm/hmms/
IGHD1-1_star_01.yaml   IGHD3-22_star_01.yaml  IGHJ4_star_02.yaml     IGHV3-11_star_05.yaml	  IGHV3-74_star_01.yaml
IGHD1-20_star_01.yaml  IGHD3-3_star_01.yaml   IGHJ5_star_01.yaml     IGHV3-11_star_06.yaml	  IGHV3-7_star_03.yaml
IGHD1-26_star_01.yaml  IGHD3-3_star_02.yaml   IGHJ5_star_02.yaml     IGHV3-13_star_04.yaml	  IGHV4-30-2_star_01.yaml
IGHD1-7_star_01.yaml   IGHD3-9_star_01.yaml   IGHJ6_star_02.yaml     IGHV3-15_star_01.yaml	  IGHV4-31_star_03.yaml
IGHD2-15_star_01.yaml  IGHD4-17_star_01.yaml  IGHV1-18_star_04.yaml  IGHV3-20_star_01.yaml	  IGHV4-34_star_01.yaml
IGHD2-21_star_01.yaml  IGHD5-12_star_01.yaml  IGHV1-24_star_01.yaml  IGHV3-21_star_01.yaml	  IGHV4-38-2_star_02.yaml
IGHD2-21_star_02.yaml  IGHD5-18_star_01.yaml  IGHV1-2_star_04.yaml   IGHV3-23_star_01.yaml	  IGHV4-39_star_01.yaml
IGHD2-2_star_01.yaml   IGHD6-13_star_01.yaml  IGHV1-3_star_01.yaml   IGHV3-30_star_18.yaml	  IGHV4-4_star_02.yaml
IGHD2-2_star_02.yaml   IGHD6-19_star_01.yaml  IGHV1-46_star_01.yaml  IGHV3-43_star_01.yaml	  IGHV4-59_star_01.yaml
IGHD2-2_star_03.yaml   IGHD6-25_star_01.yaml  IGHV1-58_star_02.yaml  IGHV3-48_star_02.yaml	  IGHV4-59_star_08.yaml
IGHD2-8_star_01.yaml   IGHD6-6_star_01.yaml   IGHV1-69_star_02.yaml  IGHV3-49_star_04.yaml	  IGHV4-61_star_08.yaml
IGHD2-8_star_02.yaml   IGHD7-27_star_01.yaml  IGHV1-69_star_10.yaml  IGHV3-53_star_01.yaml	  IGHV5-10-1_star_03.yaml
IGHD3-10_star_01.yaml  IGHJ1_star_01.yaml     IGHV2-26_star_01.yaml  IGHV3-64_star_01.yaml	  IGHV5-51_star_01.yaml
IGHD3-10_star_02.yaml  IGHJ2_star_01.yaml     IGHV2-5_star_01.yaml   IGHV3-64_star_05+G240C.yaml  IGHV6-1_star_01.yaml
IGHD3-16_star_01.yaml  IGHJ3_star_01.yaml     IGHV2-5_star_02.yaml   IGHV3-72_star_01.yaml	  IGHV7-4-1_star_02.yaml
IGHD3-16_star_02.yaml  IGHJ3_star_02.yaml     IGHV2-70_star_11.yaml  IGHV3-73_star_01.yaml

possible a spelling error? output/paramter_dir?

Awwwwww hell