EI-CoreBioinformatics / portcullis

Splice junction analysis and filtering from BAM files
https://ei-corebioinformatics.github.io/portcullis/
GNU General Public License v3.0
38 stars 9 forks source link

[0.16.0] Portcullis filter dies as it cannot find the junction file #18

Closed lucventurini closed 8 years ago

lucventurini commented 8 years ago

This seems a bug in the file opening. Error:

bash-4.2$ head -n 3 junc/portcullis.junctions.tab
index   refid   refname reflen  start   end left    right   ss1 ss2 read-strand ss-strand   consensus-strand    M1-canonical_ss M2-nb_reads M3-nb_dist_aln  M4-nb_rel_aln   M5-intron_size  M6-left_anc_size    M7-right_anc_size   M8-max_min_anc  M9-dif_anc  M10-dist_anc    M11-entropy M12-maxmmes M13-hamming5p   M14-hamming3p   M15-coverage    M16-uniq_junc   M17-primary_junc    M18-mm_score    M19-mean_mismatches M20-nb_usrs M21-nb_msrs M22-rel2raw M23-nb_up_juncs M24-nb_down_juncs   M25-up_aln  M26-down_aln    M27-dist_2_up_junc  M28-dist_2_down_junc    M29-dist_nearest_junc   MQL Suspect PFP JO01    JO02    JO03    JO04    JO05    JO06    JO07    JO08    JO09    JO10    JO11    JO12    JO13    JO14    JO15    JO16JO17    JO18    JO19    JO20
0   0   Chr1    30427671    3876    3994    3817    4063    GT  AG  +   +   +   C   2   2   2   119 59  69  41  28  2   0   41  78  0   0   0   0   1.5 2   0   1   0   0   0   0   0   -1  0   118 0   0   2   2   2   2   2   2   2   22  2   2   2   2   2   2   2   2   2   2   2
1   0   Chr1    30427671    3913    3994    3789    4075    GT  AG  +   +   +   C   138 28  138 82  124 81  71  55  28  3.87313 69  97  0   0   1   0   1.50725 138 0   1   0   0   0   0   0   0   0   118 0   0   136 136 136 136 135 134 134134  134 134 133 133 133 132 132 132 132 132 132 132
bash-4.2$ /tgac/software/testing/portcullis/0.16.0/x86_64/bin/portcullis filter junc/portcullis.junctions.tab
Portcullis V0.16.0

Running portcullis in junction filter mode
------------------------------------------

Portcullis junction filter completed.
Total runtime: 0.0s

junction_filter.cc(104): Throw in function void portcullis::JunctionFilter::filter()
Dynamic exception type: boost::exception_detail::clone_impl<portcullis::JuncFilterException>
std::exception::what: std::exception
[portcullis::JuncFilterError*] = Could not find junction file at: 
maplesond commented 8 years ago

Not a bug. the interface has changed. you need both the genome file then the junction file now in order to train the mark of chains for the splicing signal and position weights.

Sent from my Samsung Galaxy smartphone.

-------- Original message -------- From: Luca Venturini notifications@github.com Date: 06/05/2016 15:01 (GMT+00:00) To: maplesond/portcullis portcullis@noreply.github.com Subject: [maplesond/portcullis] [0.16.0] Portcullis filter dies as it cannot find the junction file (#18)

This seems a bug in the file opening. Error:

bash-4.2$ head -n 3 junc/portcullis.junctions.tab index refid refname reflen start end left right ss1 ss2 read-strand ss-strand consensus-strand M1-canonical_ss M2-nb_reads M3-nb_dist_aln M4-nb_rel_aln M5-intron_size M6-left_anc_size M7-right_anc_size M8-max_min_anc M9-dif_anc M10-dist_anc M11-entropy M12-maxmmes M13-hamming5p M14-hamming3p M15-coverage M16-uniq_junc M17-primary_junc M18-mm_score M19-mean_mismatches M20-nb_usrs M21-nb_msrs M22-rel2raw M23-nb_up_juncs M24-nb_down_juncs M25-up_aln M26-down_aln M27-dist_2_up_junc M28-dist_2_down_junc M29-dist_nearest_junc MQL Suspect PFP JO01 JO02 JO03 JO04 JO05 JO06 JO07 JO08 JO09 JO10 JO11 JO12 JO13 JO14 JO15 JO16JO17 JO18 JO19 JO20 0 0 Chr1 30427671 3876 3994 3817 4063 GT AG + + + C 2 2 2 119 59 69 41 28 2 0 41 78 0 0 0 0 1.5 2 0 1 0 0 0 0 0 -1 0 118 0 0 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 1 0 Chr1 30427671 3913 3994 3789 4075 GT AG + + + C 138 28 138 82 124 81 71 55 28 3.87313 69 97 0 0 1 0 1.50725 138 0 1 0 0 0 0 0 0 0 118 0 0 136 136 136 136 135 134 134134 134 134 133 133 133 132 132 132 132 132 132 132 bash-4.2$ /tgac/software/testing/portcullis/0.16.0/x86_64/bin/portcullis filter junc/portcullis.junctions.tab Portcullis V0.16.0

Running portcullis in junction filter mode

Portcullis junction filter completed. Total runtime: 0.0s

junction_filter.cc(104): Throw in function void portcullis::JunctionFilter::filter() Dynamic exception type: boost::exception_detail::clone_implportcullis::JuncFilterException std::exception::what: std::exception [portcullis::JuncFilterError*] = Could not find junction file at:

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHubhttps://github.com/maplesond/portcullis/issues/18

lucventurini commented 8 years ago

Ah, I see. When I add the genome file filter starts now. However, the interface help has not changed, hence my confusion and the bug report:

$ /tgac/software/testing/portcullis/0.16.0/x86_64/bin/portcullis filter --help junc/portcullis.junctions.tab
Portcullis V0.16.0

Portcullis Filter Mode Help.

Filters out junctions that are unlikely to be genuine or that have too little
supporting evidence.  The user can control three stages of the filtering
process.  First the user can perform filtering based on a pre-defined random
forest model.  Second the user can specify a configuration file described a
set of filtering rules to apply.  Third, the user can directly through the
command line filter based on junction (intron) length, or the canonical label.

Usage: portcullis filter [options] <junction-file>

Cheers

maplesond commented 8 years ago

Ah ok. I must have forgotten to update the help. I was thinking of changing the genome file argument to instead request the output dir from the prep stage as I need a .fai file as well as the fasta. Any preference / opinion?

Sent from my Samsung Galaxy smartphone.

-------- Original message -------- From: Luca Venturini notifications@github.com Date: 06/05/2016 18:31 (GMT+00:00) To: maplesond/portcullis portcullis@noreply.github.com Cc: "Daniel Mapleson (TGAC)" Daniel.Mapleson@tgac.ac.uk, Comment comment@noreply.github.com Subject: Re: [maplesond/portcullis] [0.16.0] Portcullis filter dies as it cannot find the junction file (#18)

Ah, I see. When I add the genome file filter starts now. However, the interface help has not changed, hence my confusion and the bug report:

$ /tgac/software/testing/portcullis/0.16.0/x86_64/bin/portcullis filter --help junc/portcullis.junctions.tab Portcullis V0.16.0

Portcullis Filter Mode Help.

Filters out junctions that are unlikely to be genuine or that have too little supporting evidence. The user can control three stages of the filtering process. First the user can perform filtering based on a pre-defined random forest model. Second the user can specify a configuration file described a set of filtering rules to apply. Third, the user can directly through the command line filter based on junction (intron) length, or the canonical label.

Usage: portcullis filter [options]

Cheers

— You are receiving this because you commented. Reply to this email directly or view it on GitHubhttps://github.com/maplesond/portcullis/issues/18#issuecomment-217507880

lucventurini commented 8 years ago

I think that the most straightforward way is to ask for the preparation directory rather than the file. It should prevent bugs like the missing FAI or, even worse, users inadvertently giving the wrong reference by mistake (it can happen!).

Relatedly, if portcullis had a master directory and predefined children directories (e.g portcullis/{prep,junc,filter}) the file finding could be done automatically.

maplesond commented 8 years ago

Fixed in latest release