Skip to content

Commit

Permalink
Implemented --avoid-pseudogene to try to avoid aligning reads to pseu…
Browse files Browse the repository at this point in the history
…dogenes. This is an experimental option needing further investigation
  • Loading branch information
infphilo committed Jun 1, 2017
1 parent da647a7 commit 30bc8c6
Show file tree
Hide file tree
Showing 7 changed files with 38 additions and 10 deletions.
11 changes: 11 additions & 0 deletions MANUAL.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -894,6 +894,17 @@ HISAT2 produces an optional field, XS:A:[+-], for every spliced alignment.

</td></tr>

<tr><td id="hisat2-options-avoid-pseudogene">
[`--avoid-pseudogene`]: #hisat2-options-avoid-pseudogene

--avoid-pseudogene

</td><td>

Try to avoid aligning reads to pseudogenes. Note this option is experimental and needs further investigation.

</td></tr>

<tr><td id="hisat2-options-no-templatelen-adjustment">
[`--no-templatelen-adjustment`]: #hisat2-options-no-templatelen-adjustment

Expand Down
3 changes: 2 additions & 1 deletion doc/index.shtml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@
<!--#include virtual="sidebar.inc.shtml"-->
</div> <!-- End of "rightside" -->
<div id="leftside">
<h2>HISAT2 2.1.0 release 6/0X/2017</h2>
<h2>HISAT2 2.1.0 release 6/8/2017</h2>
<ul>
<li>This major version includes the first release of HISAT-genotype, which currently performs HLA typing, DNA fingerprinting analysis, CYP typing on whole genome sequencing (WGS) reads. We plan to extend the system to analyze a whole human genome, not just a few genes. Please refer to <a href="http://ccb.jhu.edu/hisat-genotype">the HISAT-genotype website</a> for more details.</li>
<li>HISAT2 can be directly compiled and executed on Windows system using Visual Studio, thanks to <a href="http://www2.warwick.ac.uk/fac/sci/systemsbiology/staff/dyer/"Nigel Dyer.</a> </li>
<li>Implemented --new-summary to output a new style of alignment summary, which is easier to parse or machine friendly.</li>
<li>Implemented --summary-file to output alignment summary to a file in addition to a terminal (e.g. stderr).</li>
<li>Implemented --no-templatelen-adjustment option to disable automaitc template length adjustment for RNA-seq reads.</li>
Expand Down
8 changes: 4 additions & 4 deletions doc/sidebar.inc.shtml
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@
<a href="ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads"><h2><u>Releases</u></h2></a>
<div class="box">
<ul>
<table width="100%"><tbody><tr><td>version 2.0.5</td> <td align="right">11/4/2016</td></tr>
<table width="100%"><tbody><tr><td>version 2.1.0</td> <td align="right">6/8/2017</td></tr>
<tr>
<td><a href="ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.0.5-source.zip" onclick="javascript: pageTracker._trackPageview('/downloads/hisat'); ">&nbsp;&nbsp;&nbsp;Source code</a></td>
<td><a href="ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-source.zip" onclick="javascript: pageTracker._trackPageview('/downloads/hisat'); ">&nbsp;&nbsp;&nbsp;Source code</a></td>
</tr>
<tr>
<td><a href="ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.0.5-Linux_x86_64.zip" onclick="javascript: pageTracker._trackPageview('/downloads/hisat'); ">&nbsp;&nbsp;&nbsp;Linux x86_64 binary</a></td>
<td><a href="ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-Linux_x86_64.zip" onclick="javascript: pageTracker._trackPageview('/downloads/hisat'); ">&nbsp;&nbsp;&nbsp;Linux x86_64 binary</a></td>
</tr>
<tr>
<td><a href="ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.0.5-OSX_x86_64.zip" onclick="javascript: pageTracker._trackPageview('/downloads/hisat'); ">&nbsp;&nbsp;&nbsp;Mac OS X x86_64 binary</a></td>
<td><a href="ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-OSX_x86_64.zip" onclick="javascript: pageTracker._trackPageview('/downloads/hisat'); ">&nbsp;&nbsp;&nbsp;Mac OS X x86_64 binary</a></td>
</tr>
<tr>
<td><a href="http://www.di.fc.ul.pt/~afalcao/hisat2_windows.html" onclick="javascript: pageTracker._trackPageview('/downloads/hisat'); ">&nbsp;&nbsp;&nbsp;Windowns binary</a></td>
Expand Down
2 changes: 1 addition & 1 deletion hi_aligner.h
Original file line number Diff line number Diff line change
Expand Up @@ -5173,7 +5173,7 @@ bool HI_Aligner<index_t, local_index_t>::reportHit(
if(hit.splicing_dir() == SPL_UNKNOWN)
return false;
}
if(tpol.no_spliced_alignment()) {
if(!tpol.no_spliced_alignment() && tpol.avoid_pseudogene()) {
if(!spliced.first) {
assert(!spliced.second);
const index_t max_exon_size = 10000;
Expand Down
11 changes: 10 additions & 1 deletion hisat2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,7 @@ static bool pseudogeneStop;
static bool tranMapOnly; // transcriptome mapping only
static bool tranAssm; // alignments selected for downstream transcript assembly such as StringTie and Cufflinks
static string tranAssm_program;
static bool avoid_pseudogene;

#ifdef USE_SRA
static EList<string> sra_accs;
Expand Down Expand Up @@ -496,6 +497,7 @@ static void resetOptions() {
tranMapOnly = false;
tranAssm = false;
tranAssm_program = "";
avoid_pseudogene = false;

#ifdef USE_SRA
sra_accs.clear();
Expand Down Expand Up @@ -720,6 +722,7 @@ static struct option long_options[] = {
{(char*)"downstream-transcriptome-assembly", no_argument, 0, ARG_TRANSCRIPTOME_ASSEMBLY},
{(char*)"dta", no_argument, 0, ARG_TRANSCRIPTOME_ASSEMBLY},
{(char*)"dta-cufflinks", no_argument, 0, ARG_TRANSCRIPTOME_ASSEMBLY_CUFFLINKS},
{(char*)"avoid-pseudogene",no_argument, 0, ARG_AVOID_PSEUDOGENE},
{(char*)"no-templatelen-adjustment", no_argument, 0, ARG_NO_TEMPLATELEN_ADJUSTMENT},
#ifdef USE_SRA
{(char*)"sra-acc", required_argument, 0, ARG_SRA_ACC},
Expand Down Expand Up @@ -871,6 +874,7 @@ static void printUsage(ostream& out) {
<< " --tmo reports only those alignments within known transcriptome" << endl
<< " --dta reports alignments tailored for transcript assemblers" << endl
<< " --dta-cufflinks reports alignments tailored specifically for cufflinks" << endl
<< " --avoid-pseudogene tries to avoid aligning reads to pseudogenes (experimental option)" << endl
<< " --no-templatelen-adjustment disables template length adjustment for RNA-seq reads" << endl
<< endl
<< " Scoring:" << endl
Expand Down Expand Up @@ -1669,6 +1673,10 @@ static void parseOption(int next_option, const char *arg) {
tranAssm_program = "cufflinks";
break;
}
case ARG_AVOID_PSEUDOGENE: {
avoid_pseudogene = true;
break;
}
#ifdef USE_SRA
case ARG_SRA_ACC: {
tokenize(arg, ",", sra_accs); format = SRA_FASTA;
Expand Down Expand Up @@ -3840,7 +3848,8 @@ static void driver(
no_spliced_alignment,
tranMapOnly,
tranAssm,
xsOnly);
xsOnly,
avoid_pseudogene);

GraphPolicy gpol(max_alts_tried,
use_haplotype,
Expand Down
1 change: 1 addition & 0 deletions opts.h
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ enum {
ARG_TRANSCRIPTOME_MAPPING_ONLY,
ARG_TRANSCRIPTOME_ASSEMBLY,
ARG_TRANSCRIPTOME_ASSEMBLY_CUFFLINKS,
ARG_AVOID_PSEUDOGENE,
#ifdef USE_SRA
ARG_SRA_ACC,
#endif
Expand Down
12 changes: 9 additions & 3 deletions tp.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ class TranscriptomePolicy {
bool no_spliced_alignment = false,
bool transcriptome_mapping_only = false,
bool transcriptome_assembly = false,
bool xs_only = false)
bool xs_only = false,
bool avoid_pseudogene = false)
{
init(minIntronLen,
maxIntronLen,
Expand All @@ -54,7 +55,8 @@ class TranscriptomePolicy {
no_spliced_alignment,
transcriptome_mapping_only,
transcriptome_assembly,
xs_only);
xs_only,
avoid_pseudogene);
}

/**
Expand All @@ -73,7 +75,8 @@ class TranscriptomePolicy {
bool no_spliced_alignment = false,
bool transcriptome_mapping_only = false,
bool transcriptome_assembly = false,
bool xs_only = false)
bool xs_only = false,
bool avoid_pseudogene = false)
{
minIntronLen_ = minIntronLen;
maxIntronLen_ = maxIntronLen;
Expand All @@ -83,6 +86,7 @@ class TranscriptomePolicy {
transcriptome_mapping_only_ = transcriptome_mapping_only;
transcriptome_assembly_ = transcriptome_assembly;
xs_only_ = xs_only;
avoid_pseudogene_ = avoid_pseudogene;
}

size_t minIntronLen() const { return minIntronLen_; }
Expand All @@ -93,6 +97,7 @@ class TranscriptomePolicy {
bool transcriptome_mapping_only() const { return transcriptome_mapping_only_; }
bool transcriptome_assembly() const { return transcriptome_assembly_; }
bool xs_only() const { return xs_only_; }
bool avoid_pseudogene() const { return avoid_pseudogene_; }

private:
size_t minIntronLen_;
Expand All @@ -107,6 +112,7 @@ class TranscriptomePolicy {
bool transcriptome_mapping_only_;
bool transcriptome_assembly_;
bool xs_only_;
bool avoid_pseudogene_;
};

#endif /*ndef TP_H_*/

0 comments on commit 30bc8c6

Please sign in to comment.