HingeAssembler / HINGE

Software accompanying "HINGE: Long-Read Assembly Achieves Optimal Repeat Resolution"
http://genome.cshlp.org/content/27/5/747.full.pdf+html?sid=39918b0d-7a7d-4a12-b720-9238834902fd
Other
64 stars 9 forks source link

Segmentation fault at consensus #64

Closed alimayy closed 8 years ago

alimayy commented 8 years ago

Hello,

I've made it until consensus draft ecoli draft.ecoli.las ecoli.consensus.fasta utils/nominal.ini however when I issue this command I get

length threshold:-1 1 files 1 files

Contigs:58

Reads:119774

Alignments:117641

115549 Segmentation fault (core dumped)

I should note that I'm not using the example E coli reads, but some other long reads.

Any clues?

ghost commented 8 years ago

Same here :-)

govinda-kamath commented 8 years ago

We'll look into it and get back to you in a day or two. Thanks for pointing this out!

govinda-kamath commented 8 years ago

Do either of you have any public data we can use to reproduce the error @MichaelsGITIGIT @alimayy ?

alimayy commented 8 years ago

Unfortunately I don't

Sent from my iPhone

On 07 Sep 2016, at 20:52, Govinda Kamath notifications@github.com wrote:

Do either of you have any public data we can use to reproduce the error @MichaelsGITIGIT @alimayy ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

ghost commented 8 years ago

Sorry, no public data :-( But if I can help to debug in another way, plz let my know!

fxia22 commented 8 years ago

I believe this is caused by #65

ilanshom commented 8 years ago

@alimayy I think the segmentation fault is due to failure of loading .ini file. Same as in #66 . The fact that it displays length threshold:-1 indicates that the .ini file was not loaded

alimayy commented 8 years ago

@ilanshom You're probably right. Funny thing is I have been getting stuck with a segmentation fault exactly at the same step even with a correct .ini file. To be able to go on I had to change

HPC.daligner draft ecoli | zsh -v to HPC.daligner ecoli draft | zsh -v

In my case, the above change also makes the step LAmerge draft.ecoli.las draft.ecoli.*.las unnecessary, because at the end of HPC.daligner ecoli draft | zsh -v, the following automatically takes place

# Remove initial .las files
rm draft.fssamp1.1.C0.las draft.fssamp1.1.C1.las draft.fssamp1.1.C2.las draft.fssamp1.1.C3.las
rm draft.fssamp1.1.N0.las draft.fssamp1.1.N1.las draft.fssamp1.1.N2.las draft.fssamp1.1.N3.las
rm draft.fssamp1.1.C0.S.las draft.fssamp1.1.C1.S.las draft.fssamp1.1.C2.S.las draft.fssamp1.1.C3.S.las
rm draft.fssamp1.1.N0.S.las draft.fssamp1.1.N1.S.las draft.fssamp1.1.N2.S.las draft.fssamp1.1.N3.S.las
rm draft.fssamp1.2.C0.las draft.fssamp1.2.C1.las draft.fssamp1.2.C2.las draft.fssamp1.2.C3.las
rm draft.fssamp1.2.N0.las draft.fssamp1.2.N1.las draft.fssamp1.2.N2.las draft.fssamp1.2.N3.las
rm draft.fssamp1.2.C0.S.las draft.fssamp1.2.C1.S.las draft.fssamp1.2.C2.S.las draft.fssamp1.2.C3.S.las
rm draft.fssamp1.2.N0.S.las draft.fssamp1.2.N1.S.las draft.fssamp1.2.N2.S.las draft.fssamp1.2.N3.S.las
rm draft.fssamp1.3.C0.las draft.fssamp1.3.C1.las draft.fssamp1.3.C2.las draft.fssamp1.3.C3.las
rm draft.fssamp1.3.N0.las draft.fssamp1.3.N1.las draft.fssamp1.3.N2.las draft.fssamp1.3.N3.las
rm draft.fssamp1.3.C0.S.las draft.fssamp1.3.C1.S.las draft.fssamp1.3.C2.S.las draft.fssamp1.3.C3.S.las
rm draft.fssamp1.3.N0.S.las draft.fssamp1.3.N1.S.las draft.fssamp1.3.N2.S.las draft.fssamp1.3.N3.S.las
# Level 1 jobs (1)
LAmerge draft.fssamp1 L1.1.1 L1.1.2 L1.1.3
# Check level 2 .las files jobs (1) (optional but recommended)
LAcheck -vS draft fssamp1 draft.fssamp1
  fssamp1: Read indices out of range
  draft.fssamp1: Read indices out of range
# Remove level 1 .las files
rm L1.1.1.las L1.1.2.las L1.1.3.las

As far as I can tell, the following two commands in the HOWTO

HPC.daligner draft ecoli | zsh -v  
LAmerge draft.ecoli.las draft.ecoli.*.las

do not work any way (Cannot open ./draft.ecoli.*.las for 'r'). If you want to HPC.daligner line to stay the same, the second line should be LAmerge draft.ecoli.las ecoli.*.draft.las

Though as I said, I think the solution is to use only the following: HPC.daligner ecoli draft | zsh -v

Can you confirm this?

alimayy commented 8 years ago

I've made some changes in the HOWTO code. Can you perhaps have a look at it and confirm/not confirm that this is how it should be run?

fasta2DB ecoli reads.fasta
DBsplit -x500 -s100 ecoli     
HPC.daligner -t5 -T32 ecoli | csh -v
LAmerge ecoli.las ecoli.+([[:digit:]]).las
rm ecoli.*.las # we only need ecoli.las
DASqv -c100 ecoli ecoli.las

# Run filter

mkdir log
Reads_filter --db ecoli --las ecoli.las -x ecoli --config ~/packages/HINGE/utils/nominal.ini

# Run layout

hinging --db ecoli --las ecoli.las -x ecoli --config ~/packages/HINGE/utils/nominal.ini -o ecoli

# Run postprocessing

pruning_and_clipping.py ecoli.edges.hinges ecoli.hinge.list run_id

# get draft assembly 

get_draft_path.py ./ ecoli ecolirun_id.G2.graphml
draft_assembly --db ecoli --las ecoli.las --prefix ecoli --config ~/packages/HINGE/utils/nominal.ini --out ecoli.draft

# get consensus assembly

correct_head.py ecoli.draft.fasta ecoli.draft.pb.fasta draft_map.txt
fasta2DB draft ecoli.draft.pb.fasta 
HPC.daligner ecoli draft | zsh -v  
consensus draft ecoli draft.ecoli.las ecoli.consensus.fasta ~/packages/HINGE/utils/nominal.ini
get_consensus_gfa.py ./ ecoli ecoli.consensus.fasta
ilanshom commented 8 years ago

@alimayy, you are correct! The new version of DAligner swapped the order of the arguments. We did change the run.sh in ecoli_demo, but forgot to change it in the README... I'm sorry about that. Thank you for the help.