Commit edb0104c authored by Andreas Tille's avatar Andreas Tille

Imported Upstream version 2.1.0+dfsg

parent 6f808e19
......@@ -53,8 +53,7 @@ subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
THANKS ar-lib config.guess config.sub depcomp install-sh \
missing
THANKS ar-lib config.guess config.sub install-sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/ax_boost_base.m4 \
$(top_srcdir)/ax_boost_thread.m4 $(top_srcdir)/configure.ac
......
TopHat is a fast splice junction mapper for RNA-Seq reads. It aligns RNA-Seq
reads to mammalian-sized genomes using the ultra high-throughput short read
aligner Bowtie, and then analyzes the mapping results to identify splice
junctions between exons.
TopHat is a collaborative effort between the Institute of Genetic Medicine at
Johns Hopkins University, the Department of Mathematics at the University of
California, Berkeley, and the Department of Stem Cell and Regenerative Biology
at Harvard University.
TopHat2 (the current release) is a collaborative effort between the Center for Computational Biology at
Johns Hopkins University and the Genome Sciences Department at the University of Washington.
Please see http://ccb.jhu.edu/software/tophat for more information.
......
This diff is collapsed.
This diff is collapsed.
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for tophat 2.0.14.
# Generated by GNU Autoconf 2.69 for tophat 2.1.0.
#
# Report bugs to <tophat.cufflinks@gmail.com>.
#
......@@ -580,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='tophat'
PACKAGE_TARNAME='tophat'
PACKAGE_VERSION='2.0.14'
PACKAGE_STRING='tophat 2.0.14'
PACKAGE_VERSION='2.1.0'
PACKAGE_STRING='tophat 2.1.0'
PACKAGE_BUGREPORT='tophat.cufflinks@gmail.com'
PACKAGE_URL=''
......@@ -1304,7 +1304,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures tophat 2.0.14 to adapt to many kinds of systems.
\`configure' configures tophat 2.1.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1374,7 +1374,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of tophat 2.0.14:";;
short | recursive ) echo "Configuration of tophat 2.1.0:";;
esac
cat <<\_ACEOF
......@@ -1484,7 +1484,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
tophat configure 2.0.14
tophat configure 2.1.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -1945,7 +1945,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by tophat $as_me 2.0.14, which was
It was created by tophat $as_me 2.1.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
......@@ -2294,7 +2294,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
$as_echo "#define SVN_REVISION \"4318\"" >>confdefs.h
$as_echo "#define SVN_REVISION \"exported\"" >>confdefs.h
......@@ -2777,7 +2777,7 @@ fi
# Define the identity of the package.
PACKAGE='tophat'
VERSION='2.0.14'
VERSION='2.1.0'
cat >>confdefs.h <<_ACEOF
......@@ -6925,7 +6925,7 @@ fi
# Define the identity of the package.
PACKAGE='tophat'
VERSION='2.0.14'
VERSION='2.1.0'
cat >>confdefs.h <<_ACEOF
......@@ -7868,7 +7868,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by tophat $as_me 2.0.14, which was
This file was extended by tophat $as_me 2.1.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -7934,7 +7934,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
tophat config.status 2.0.14
tophat config.status 2.1.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
......
define([svnversion], esyscmd([sh -c "svnversion|tr -d '\n'"]))dnl
AC_INIT([tophat],[2.0.14],[tophat.cufflinks@gmail.com])
AC_INIT([tophat],[2.1.0],[tophat.cufflinks@gmail.com])
AC_DEFINE(SVN_REVISION, "svnversion", [SVN Revision])
AC_CONFIG_SRCDIR([config.h.in])
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#include "GBase.h"
#include <stdarg.h>
#include <ctype.h>
#include <sys/stat.h>
#ifndef S_ISDIR
#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
......@@ -56,8 +55,13 @@ void GAssert(const char* expression, const char* filename, unsigned int lineno){
char msg[4096];
sprintf(msg,"%s(%d): ASSERT(%s) failed.\n",filename,lineno,expression);
fprintf(stderr,"%s",msg);
//abort();
}
#ifdef DEBUG
// modify here if you [don't] want a core dump
abort();
#endif
exit(1);
}
// Error routine (prints error message and exits!)
void GError(const char* format,...){
#ifdef __WIN32__
......@@ -166,7 +170,7 @@ char* newEmptyStr() {
char* Gstrdup(const char* sfrom, const char* sto) {
if (sfrom==NULL || sto==NULL) return NULL;
char *copy=NULL;
if (sfrom[0]==0) return newEmptyStr();
if (sfrom[0]==0 || sto<sfrom) return newEmptyStr();
GMALLOC(copy, sto-sfrom+2);
strncpy(copy, sfrom, sto-sfrom+1);
copy[sto-sfrom+1]=0;
......@@ -184,6 +188,69 @@ int Gstrcmp(const char* a, const char* b, int n) {
}
int G_mkdir(const char* path, int perms=0775) {
#ifdef __WIN32__
return _mkdir(path);
#else
//#if _POSIX_C_SOURCE
// return ::mkdir(path);
//#else
return mkdir(path, perms); // not sure if this works on mac
//#endif
#endif
}
int Gmkdir(const char *path, bool recursive, int perms) {
if (path==NULL || path[0]==0) return -1;
if (!recursive) return G_mkdir(path, perms);
int plen=strlen(path);
char* gpath=NULL;
//make sure gpath ends with /
if (path[plen-1]=='/') {
gpath=Gstrdup(path);
}
else {
GMALLOC(gpath, plen+2);
strcpy(gpath,path);
gpath[plen]='/';
gpath[plen+1]=0;
}
char* ss=gpath;
char* psep = NULL;
while (*ss!=0 && (psep=strchr(ss, '/'))!=NULL) {
*psep=0; //now gpath is the path up to this /
ss=psep; ++ss; //ss repositioned just after the /
// create current level
if (fileExists(gpath)!=1 && G_mkdir(gpath, perms)!=0) {
GFREE(gpath);
return -1;
}
*psep='/';
}
GFREE(gpath);
return 0;
}
bool GstrEq(const char* a, const char* b) {
if (a==NULL || b==NULL) return false;
register int i=0;
while (a[i]==b[i]) {
if (a[i]==0) return true;
++i;
}
return false;
}
bool GstriEq(const char* a, const char* b) {
if (a==NULL || b==NULL) return false;
register int i=0;
while (tolower((unsigned char)a[i])==tolower((unsigned char)b[i])) {
if (a[i]==0) return true;
}
return false;
}
int Gstricmp(const char* a, const char* b, int n) {
if (a==NULL || b==NULL) return a==NULL ? -1 : 1;
register int ua, ub;
......@@ -492,7 +559,7 @@ char* strifind(const char* str, const char* substr) {
char* p=(char*)str;
while (p<=smax) {
for (i=0; i<l && tolower(*(p+i))==tolower(*(substr+i)); i++) ;
if (i==l) return p; //found!
if (i==l) return p;
p++;
}
return NULL;
......@@ -508,6 +575,14 @@ bool startsWith(const char* s, const char* prefix) {
return (prefix[i]=='\0');
}
bool startsiWith(const char* s, const char* prefix) {
if (prefix==NULL || s==NULL) return false;
int i=0;
while (prefix[i]!='\0' && tolower(prefix[i])==tolower(s[i])) i++;
return (prefix[i]=='\0');
}
// tests if string s ends with given suffix
bool endsWith(const char* s, const char* suffix) {
if (suffix==NULL || s==NULL) return false;
......@@ -773,5 +848,5 @@ char* commaprintnum(uint64 n) {
n /= 10;
i++;
} while(n != 0);
return p;
return Gstrdup(p);
}
......@@ -21,6 +21,7 @@
#define __WIN32__
#endif
#include <windows.h>
#include <direct.h>
#include <io.h>
#define CHPATHSEP '\\'
#undef off_t
......@@ -43,10 +44,6 @@
#ifdef _ftelli64
#define ftello(stream) _ftelli64(stream)
#else
/*
#define _DEFINE_WIN32_FTELLO
off_t ftello(FILE *stream);
*/
#define ftello ftell
#endif
#endif
......@@ -64,6 +61,8 @@
#ifdef DEBUG
#undef NDEBUG
#define _DEBUG 1
#define _DEBUG_ 1
#endif
typedef int32_t int32;
......@@ -172,6 +171,9 @@ inline int iround(double x) {
return (int)floor(x + 0.5);
}
int Gmkdir(const char *path, bool recursive=true, int perms=0775);
/****************************************************************************/
inline int Gintcmp(int a, int b) {
......@@ -183,6 +185,8 @@ int Gstrcmp(const char* a, const char* b, int n=-1);
//same as strcmp but doesn't crash on NULL pointers
int Gstricmp(const char* a, const char* b, int n=-1);
bool GstrEq(const char* a, const char* b);
bool GstriEq(const char* a, const char* b);
//basic swap template function
template<class T> void Gswap(T& lhs, T& rhs) {
......@@ -257,14 +261,17 @@ char* rstrstr(const char* rstart, const char *lend, const char* substr);
a pointer to the last (right) matching character in str */
char* strifind(const char* str, const char* substr);
// the case insensitive version of strstr -- finding a string within a strin
// case insensitive version of strstr -- finding a string within another string
// returns NULL if not found
//Determines if a string begins with a given prefix
//(returns false when any of the params is NULL,
// but true when prefix is '' (empty string)!)
bool startsWith(const char* s, const char* prefix);
bool startsiWith(const char* s, const char* prefix); //case insensitive
bool endsWith(const char* s, const char* suffix);
//Note: returns true if suffix is empty string, but false if it's NULL
......
......@@ -326,6 +326,7 @@ template <class OBJ> OBJ* GHash<OBJ>::Replace(const char* ky,const OBJ* pdata,
template <class OBJ> OBJ* GHash<OBJ>::Remove(const char* ky){
register int p,x,h,n;
if(!ky){ GError("GHash::remove: NULL key argument.\n"); }
OBJ* removed=NULL;
if(0<fCount){
h=strhash(ky);
GASSERT(0<=h);
......@@ -342,18 +343,19 @@ template <class OBJ> OBJ* GHash<OBJ>::Remove(const char* ky){
hash[p].mark=false;
if (hash[p].keyalloc) GFREE((hash[p].key));
if (FREEDATA) (*fFreeProc)(hash[p].data);
else removed=(OBJ*)hash[p].data;
hash[p].key=NULL;
hash[p].data=NULL;
fCount--;
if((100*fCount)<=(MIN_LOAD*fCapacity)) Resize(fCount);
GASSERT(fCount<fCapacity);
return NULL;
return removed;
}
p=(p+x)%fCapacity;
n--;
}
}
return NULL;
return removed;
}
......
......@@ -86,7 +86,8 @@ template <class OBJ> class GList:public GPVec<OBJ> {
else return 0;
}
public:
void sortInsert(int idx, OBJ* item);
void sortInsert(int idx, OBJ* item); //special insert in sorted lists
//WARNING: the caller must know the insert index such that the sort order is preserved!
GList(GCompareProc* compareProc=NULL); //free by default
GList(GCompareProc* compareProc, //unsorted by default
GFreeProc *freeProc,
......@@ -110,7 +111,7 @@ template <class OBJ> class GList:public GPVec<OBJ> {
}
else fCompareProc=NULL;
}
int Add(OBJ* item); //-- specific implementation if sorted
int Add(OBJ* item); //-- specific implementation if sorted - may become an Insert()
void Add(GList<OBJ>& list); //add all pointers from another list
OBJ* AddIfNew(OBJ* item, bool deleteIfFound=true, int* fidx=NULL);
......@@ -588,7 +589,7 @@ template <class OBJ> bool GList<OBJ>::Found(OBJ* item, int& idx) {
template <class OBJ> void GList<OBJ>::sortInsert(int idx, OBJ* item) {
//idx must be the new position this new item must have
//so the allowed range is [0..fCount]
//the old idx item all the above will be shifted to idx+1
//the current fList[idx] and all the above will be shifted +1
if (idx<0 || idx>this->fCount) GError(GVEC_INDEX_ERR, idx);
if (this->fCount==this->fCapacity) {
GPVec<OBJ>::Grow(idx, item);
......
......@@ -29,6 +29,7 @@ template<class T> struct IsPrimitiveType {
template<> struct IsPrimitiveType<bool> { enum { VAL = 1 }; };
template<> struct IsPrimitiveType<void*> { enum { VAL = 1 }; };
template<> struct IsPrimitiveType<char*> { enum { VAL = 1 }; };
template<> struct IsPrimitiveType<float> { enum { VAL = 1 }; };
template<> struct IsPrimitiveType<double> { enum { VAL = 1 }; };
......@@ -73,7 +74,8 @@ template <class OBJ> class GVec {
public:
GVec(int init_capacity=2);
GVec(int init_count, const OBJ init_val);
GVec(GVec<OBJ>& array); //copy constructor
GVec(int init_count, OBJ* init_val, bool delete_initval=true); //convenience constructor for complex vectors
GVec(const GVec<OBJ>& array); //copy constructor
const GVec<OBJ>& operator=(GVec<OBJ>& array); //copy operator
virtual ~GVec();
void Insert(int idx, OBJ item) { Insert(idx, &item); }
......@@ -206,6 +208,7 @@ template <class OBJ> GVec<OBJ>::GVec(int init_capacity) {
fCapacity=0;
fArray=NULL;
setCapacity(init_capacity);
//if (set_count) fCount = init_capacity;
}
......@@ -219,8 +222,19 @@ template <class OBJ> GVec<OBJ>::GVec(int init_count, const OBJ init_val) {
fArray[i]=init_val;
}
template <class OBJ> GVec<OBJ>::GVec(int init_count, OBJ* init_val, bool delete_initval) {
fCount=0;
fCapacity=0;
fArray=NULL;
setCapacity(init_count);
fCount = init_count;
for (int i=0;i<fCount;i++)
fArray[i]=*init_val;
if (delete_initval) { delete init_val; }
}
template <class OBJ> GVec<OBJ>::GVec(GVec<OBJ>& array) { //copy constructor
template <class OBJ> GVec<OBJ>::GVec(const GVec<OBJ>& array) { //copy constructor
this->fCount=array.fCount;
this->fCapacity=array.fCapacity;
this->fArray=NULL;
......@@ -232,7 +246,7 @@ template <class OBJ> GVec<OBJ>::GVec(GVec<OBJ>& array) { //copy constructor
else {
fArray=new OBJ[this->fCapacity]; //]()
// uses OBJ operator=
for (int i=0;i<this->fCount;i++) fArray[i]=array[i];
for (int i=0;i<this->fCount;i++) fArray[i]=array.fArray[i];
}
}
this->fCount=array.fCount;
......@@ -741,7 +755,6 @@ template <class OBJ> void GPVec<OBJ>::Grow(int idx, OBJ* newitem) {
}
template <class OBJ> int GPVec<OBJ>::IndexOf(pointer item) {
int result=-1;
for (int i=0;i<fCount;i++) {
if (item==(pointer)fList[i]) return i;
}
......
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
......@@ -672,7 +672,7 @@ int parse_options(int argc, char** argv, void (*print_usage)())
fusion_multireads = parseIntOpt(1, "--fusion-multireads must be at least 1", print_usage);
break;
case OPT_FUSION_MULTIPAIRS:
fusion_multipairs = parseIntOpt(1, "--fusion-multipairs must be at least 0", print_usage);
fusion_multipairs = parseIntOpt(1, "--fusion-multipairs must be at least 1", print_usage);
break;
case OPT_FUSION_IGNORE_CHROMOSOMES:
tokenize(optarg, ",", fusion_ignore_chromosomes);
......
......@@ -9,6 +9,7 @@
*
*/
#include <stdint.h>
#include <unistd.h>
#include <cassert>
#include <cstring>
#include <cstdlib>
......
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
......@@ -555,7 +555,7 @@ void pair_support(const vector<pair<BowtieHit, BowtieHit> >& best_hits, FusionSe
// int inner_dist = max_report_intron_length * 2;
const int range = min((int)fusion_min_dist, 10000);
const int range = min((int)fusion_min_dist, (1<<16));
int inner_dist = range;
int outer_dist = range * 2;
int max_dist = range * 2;
......
File mode changed from 100755 to 100644
This diff is collapsed.
#ifndef GFF_H
#define GFF_H
//#define CUFFLINKS 1
#include "GBase.h"
#include "gdna.h"
#include "codons.h"
......@@ -8,6 +11,10 @@
#include "GList.hh"
#include "GHash.hh"
#ifdef CUFFLINKS
#include <boost/crc.hpp> // for boost::crc_32_type
#endif
/*
const byte exMskMajSpliceL = 0x01;
const byte exMskMajSpliceR = 0x02;
......@@ -78,13 +85,22 @@ class GffLine {
uint qlen; //query len, if given
double score;
char strand;
bool skip;
bool is_gff3; //if the line appears to be in GFF3 format
bool is_cds; //"cds" and "stop_codon" features
bool is_exon; //"exon" and "utr" features
union {
uint8_t flags;
struct {
bool is_exonlike:2;
};
struct {
bool is_cds:1; //"cds" or "start/stop_codon" features
bool is_exon:1; //"exon" and "utr" features
bool is_transcript:1; //if current feature is *RNA or *transcript
bool is_gene:1; //if current feature is *gene
bool is_gff3:1; //if the line appears to be in GFF3 format
bool can_discard:1; //flag unwanted/unrecognized parent features
bool skipLine:1;
};
};
char exontype; // gffExonType
bool is_transcript; //if current feature is *RNA or *transcript
bool is_gene; //if current feature is *gene
char phase; // '.' , '0', '1' or '2'
// -- allocated strings:
char* gene_name; //value of gene_name attribute (GTF) if present or Name attribute of a gene feature (GFF3)
......@@ -95,66 +111,64 @@ class GffLine {
char* ID; // if a ID=.. attribute was parsed, or a GTF with 'transcript' line (transcript_id)
GffLine(GffReader* reader, const char* l); //parse the line accordingly
void discardParent() {
GFREE(_parents);
_parents_len=0;
num_parents=0;
parents=NULL;
}
GFREE(_parents);
_parents_len=0;
num_parents=0;
parents=NULL;
}
char* extractAttr(const char* pre, bool caseStrict=false, bool enforce_GTF2=false);
GffLine(GffLine* l):_parents(NULL), _parents_len(0),
dupline(NULL), line(NULL), llen(0), gseqname(NULL), track(NULL),
ftype(NULL), info(NULL), fstart(0), fend(0), qstart(0), qend(0), qlen(0),
score(0), strand(0), skip(true), is_gff3(false), is_cds(false), is_exon(false),
exontype(0), is_transcript(false), is_gene(false), phase(0),
gene_name(NULL), gene_id(NULL),
parents(NULL), num_parents(0), ID(NULL) { //a copy constructor
dupline(NULL), line(NULL), llen(0), gseqname(NULL), track(NULL),
ftype(NULL), info(NULL), fstart(0), fend(0), qstart(0), qend(0), qlen(0),
score(0), strand(0), flags(0), exontype(0), phase(0),
gene_name(NULL), gene_id(NULL),
parents(NULL), num_parents(0), ID(NULL) { //a copy constructor
if (l==NULL || l->line==NULL)
GError("Error: invalid GffLine(l)\n");
memcpy((void*)this, (void*)l, sizeof(GffLine));
GMALLOC(line, llen+1);
memcpy(line, l->line, llen+1);
GMALLOC(dupline, llen+1);
memcpy(dupline, l->dupline, llen+1);
//--offsets within line[]
gseqname=line+(l->gseqname-l->line);
track=line+(l->track-l->line);
ftype=line+(l->ftype-l->line);
info=line+(l->info-l->line);
if (num_parents>0 && parents) {
parents=NULL; //re-init, just copied earlier
GMALLOC(parents, num_parents*sizeof(char*));
//_parents_len=l->_parents_len; copied above
_parents=NULL; //re-init, forget pointer copy
GMALLOC(_parents, _parents_len);
memcpy(_parents, l->_parents, _parents_len);
for (int i=0;i<num_parents;i++) {
parents[i]=_parents+(l->parents[i] - l->_parents);
}
}
//-- allocated string copies:
ID=Gstrdup(l->ID);
if (l->gene_name!=NULL)
gene_name=Gstrdup(l->gene_name);
if (l->gene_id!=NULL)
gene_id=Gstrdup(l->gene_id);
}
memcpy((void*)this, (void*)l, sizeof(GffLine));
GMALLOC(line, llen+1);
memcpy(line, l->line, llen+1);
GMALLOC(dupline, llen+1);
memcpy(dupline, l->dupline, llen+1);
//--offsets within line[]
gseqname=line+(l->gseqname-l->line);
track=line+(l->track-l->line);
ftype=line+(l->ftype-l->line);
info=line+(l->info-l->line);
if (num_parents>0 && parents) {
parents=NULL; //re-init, just copied earlier
GMALLOC(parents, num_parents*sizeof(char*));
//_parents_len=l->_parents_len; copied above
_parents=NULL; //re-init, forget pointer copy
GMALLOC(_parents, _parents_len);
memcpy(_parents, l->_parents, _parents_len);
for (int i=0;i<num_parents;i++) {
parents[i]=_parents+(l->parents[i] - l->_parents);
}
}
//-- allocated string copies:
ID=Gstrdup(l->ID);
if (l->gene_name!=NULL)
gene_name=Gstrdup(l->gene_name);
if (l->gene_id!=NULL)
gene_id=Gstrdup(l->gene_id);
}
GffLine():_parents(NULL), _parents_len(0),
dupline(NULL), line(NULL), llen(0), gseqname(NULL), track(NULL),
ftype(NULL), info(NULL), fstart(0), fend(0), qstart(0), qend(0), qlen(0),
score(0), strand(0), skip(true), is_gff3(false), is_cds(false), is_exon(false),
exontype(0), is_transcript(false), is_gene(false), phase(0),
gene_name(NULL), gene_id(NULL),
parents(NULL), num_parents(0), ID(NULL) {
}
dupline(NULL), line(NULL), llen(0), gseqname(NULL), track(NULL),
ftype(NULL), info(NULL), fstart(0), fend(0), qstart(0), qend(0), qlen(0),
score(0), strand(0), flags(0), exontype(0), phase(0),
gene_name(NULL), gene_id(NULL),
parents(NULL), num_parents(0), ID(NULL) {
}
~GffLine() {
GFREE(dupline);
GFREE(line);
GFREE(_parents);
GFREE(parents);
GFREE(ID);
GFREE(gene_name);
GFREE(gene_id);
}
GFREE(dupline);
GFREE(line);
GFREE(_parents);
GFREE(parents);
GFREE(ID);
GFREE(gene_name);
GFREE(gene_id);
}
};
class GffAttr {
......@@ -1003,13 +1017,17 @@ class GffReader {
GffObj* gfoAdd(GffObj* gfo);
GffObj* gfoAdd(GPVec<GffObj>& glst, GffObj* gfo);
// const char* id, const char* ctg, char strand, GVec<GfoHolder>** glst, uint start, uint end
GffObj* gfoFind(const char* id, const char* ctg=NULL, GPVec<GffObj>** glst=NULL,
bool pFind(const char* id, GPVec<GffObj>*& glst);
GffObj* gfoFind(const char* id, GPVec<GffObj>* & glst, const char* ctg=NULL,
char strand=0, uint start=0, uint end=0);
CNonExon* subfPoolCheck(GffLine* gffline, GHash<CNonExon>& pex, char*& subp_name);
void subfPoolAdd(GHash<CNonExon>& pex, GffObj* newgfo);
GffObj* promoteFeature(CNonExon* subp, char*& subp_name, GHash<CNonExon>& pex,
bool keepAttr, bool noExonAttr);
GList<GSeqStat> gseqstats; //list of all genomic sequences seen by this reader, accumulates stats
#ifdef CUFFLINKS
boost::crc_32_type _crc_result;
#endif
public:
GffNames* names; //just a pointer to the global static Gff names repository in GffObj
GfList gflst; //accumulate GffObjs being read
......@@ -1076,7 +1094,9 @@ class GffReader {
// load all subfeatures, re-group them:
void readAll(bool keepAttr=false, bool mergeCloseExons=false, bool noExonAttr=true);
#ifdef CUFFLINKS
boost::crc_32_type current_crc_result() const { return _crc_result; }
#endif
}; // end of GffReader
#endif
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
This diff is collapsed.
......@@ -23,7 +23,7 @@ import warnings
import re
import glob
import signal
from datetime import datetime, date, time
from datetime import datetime
from shutil import copy, rmtree, move
import logging
......@@ -100,7 +100,7 @@ Advanced Options:
--max-segment-intron <int> [ default: 500000 ]
--no-sort-bam (Output BAM is not coordinate-sorted)
--no-convert-bam (Do not output bam format.
Output is <output_dir>/accepted_hit.sam)
Output is <output_dir>/accepted_hits.sam)
--keep-fasta-order
--allow-partial-mapping
......@@ -288,8 +288,8 @@ def init_logger(log_fname):
tophat_logger.addHandler(logfh)
tophat_log=logfh.stream
# TopHatParams captures all of the runtime paramaters used by TopHat, and many
# of these are passed as command line options to exectubles run by the pipeline
# TopHatParams captures all of the runtime parameters used by TopHat, and many
# of these are passed as command line options to executables run by the pipeline
# This class and its nested classes also do options parsing through parse_options()
# and option validation via the member function check()
......
......@@ -468,7 +468,10 @@ if (lh.insert_id() == 10790262)
}//for j in right mate hits
} //for i in left mate hits
std::sort(best_hits.begin(), best_hits.end(), cmp_pair_less());
{
cmp_pair_alignment cmp(final_report ? junctions : gtf_junctions);
sort(best_hits.begin(), best_hits.end(), cmp);
}
// daehwan - for debugging purposes
#if 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!