Repository: cole-trapnell-lab/cufflinks Branch: master Commit: dc3b0cb72a4a Files: 235 Total size: 4.7 MB Directory structure: gitextract_l5aioowe/ ├── .gitignore ├── AUTHORS ├── LICENSE ├── Makefile.am ├── README.md ├── autogen.sh ├── ax_bam.m4 ├── ax_boost_base.m4 ├── ax_boost_filesystem.m4 ├── ax_boost_serialization.m4 ├── ax_boost_system.m4 ├── ax_boost_thread.m4 ├── ax_check_eigen.m4 ├── ax_check_zlib.m4 ├── ax_openmp.m4 ├── boost.m4 ├── configure.ac ├── cufflinks.xcodeproj/ │ ├── cole.pbxuser │ ├── cole.perspectivev3 │ └── project.pbxproj ├── doc/ │ ├── CL_figure_scratch.doc │ ├── CL_main_text.doc │ ├── CL_supplement.tex │ ├── CL_versions.tex │ ├── Cartoons.pptx │ ├── Paper Outline.doc │ ├── algorithm/ │ │ ├── algorithm.bib │ │ ├── algorithm.tex │ │ └── homework.cls │ ├── cufflinks.bib │ ├── html/ │ │ ├── css/ │ │ │ └── style.css │ │ ├── downloads/ │ │ │ └── test_data.sam │ │ ├── faq.html │ │ ├── gff.html │ │ ├── howitworks.html │ │ ├── igenome/ │ │ │ └── igenome_table.py │ │ ├── igenomes.html │ │ ├── images/ │ │ │ └── ucsc-track.tiff │ │ ├── index.html │ │ ├── manual.html │ │ ├── site.tmproj │ │ └── tutorial.html │ └── illustrator/ │ └── Fig 2 - Tuxedo Workflow.ai ├── external_tests/ │ └── tiny_tests/ │ └── 2x75/ │ ├── accepted_hits.sam │ └── test_ref.fa ├── index.md ├── make_bin.sh ├── src/ │ ├── GArgs.cpp │ ├── GArgs.h │ ├── GBase.cpp │ ├── GBase.h │ ├── GFaSeqGet.cpp │ ├── GFaSeqGet.h │ ├── GFastaIndex.cpp │ ├── GFastaIndex.h │ ├── GHash.hh │ ├── GList.hh │ ├── GStr.cpp │ ├── GStr.h │ ├── GVec.hh │ ├── LICENSE │ ├── Makefile.am │ ├── abundances.cpp │ ├── abundances.h │ ├── assemble.cpp │ ├── assemble.h │ ├── biascorrection.cpp │ ├── biascorrection.h │ ├── bundles.cpp │ ├── bundles.h │ ├── clustering.cpp │ ├── clustering.h │ ├── codons.cpp │ ├── codons.h │ ├── common.cpp │ ├── common.h │ ├── compress_gtf.cpp │ ├── cuffcluster.cpp │ ├── cuffcompare.cpp │ ├── cuffdiff.cpp │ ├── cuffdiff_to_gct.py │ ├── cufflinks.cpp │ ├── cufflinks.xcodeproj/ │ │ ├── cole.pbxuser │ │ ├── cole.perspectivev3 │ │ └── project.pbxproj │ ├── cuffmerge │ ├── cuffnorm.cpp │ ├── cuffquant.cpp │ ├── differential.cpp │ ├── differential.h │ ├── filters.cpp │ ├── filters.h │ ├── gdna.cpp │ ├── gdna.h │ ├── genes.cpp │ ├── genes.h │ ├── gff.cpp │ ├── gff.h │ ├── gff_utils.cpp │ ├── gff_utils.h │ ├── gffread.cpp │ ├── graph_optimize.cpp │ ├── graph_optimize.h │ ├── gtf_reads.cpp │ ├── gtf_to_sam.cpp │ ├── gtf_tracking.cpp │ ├── gtf_tracking.h │ ├── hits.cpp │ ├── hits.h │ ├── jensen_shannon.cpp │ ├── jensen_shannon.h │ ├── lemon/ │ │ ├── bfs.h │ │ ├── bin_heap.h │ │ ├── bipartite_matching.h │ │ ├── bits/ │ │ │ ├── alteration_notifier.h │ │ │ ├── array_map.h │ │ │ ├── base_extender.h │ │ │ ├── debug_map.h │ │ │ ├── default_map.h │ │ │ ├── graph_adaptor_extender.h │ │ │ ├── graph_extender.h │ │ │ ├── invalid.h │ │ │ ├── map_extender.h │ │ │ ├── path_dump.h │ │ │ ├── traits.h │ │ │ ├── utility.h │ │ │ ├── variant.h │ │ │ └── vector_map.h │ │ ├── bucket_heap.h │ │ ├── concept_check.h │ │ ├── concepts/ │ │ │ ├── bpugraph.h │ │ │ ├── graph.h │ │ │ ├── graph_components.h │ │ │ ├── heap.h │ │ │ ├── maps.h │ │ │ ├── matrix_maps.h │ │ │ ├── path.h │ │ │ └── ugraph.h │ │ ├── dfs.h │ │ ├── error.h │ │ ├── fib_heap.h │ │ ├── graph_adaptor.h │ │ ├── graph_utils.h │ │ ├── list_graph.h │ │ ├── maps.h │ │ ├── math.h │ │ ├── smart_graph.h │ │ ├── tolerance.h │ │ └── topology.h │ ├── locfit/ │ │ ├── adap.c │ │ ├── ar_funs.c │ │ ├── arith.c │ │ ├── band.c │ │ ├── c_args.c │ │ ├── c_plot.c │ │ ├── cmd.c │ │ ├── dens_haz.c │ │ ├── dens_int.c │ │ ├── dens_odi.c │ │ ├── density.c │ │ ├── design.h │ │ ├── dist.c │ │ ├── ev_atree.c │ │ ├── ev_interp.c │ │ ├── ev_kdtre.c │ │ ├── ev_main.c │ │ ├── ev_trian.c │ │ ├── family.c │ │ ├── fitted.c │ │ ├── frend.c │ │ ├── help.c │ │ ├── imatlb.h │ │ ├── lf_dercor.c │ │ ├── lf_fitfun.c │ │ ├── lf_robust.c │ │ ├── lf_vari.c │ │ ├── lfcons.h │ │ ├── lfd.c │ │ ├── lffuns.h │ │ ├── lfstr.c │ │ ├── lfstruc.h │ │ ├── lfwin.h │ │ ├── linalg.c │ │ ├── local.h │ │ ├── locfit.c │ │ ├── m_chol.c │ │ ├── m_eigen.c │ │ ├── m_jacob.c │ │ ├── m_max.c │ │ ├── makecmd.c │ │ ├── math.c │ │ ├── minmax.c │ │ ├── mutil.h │ │ ├── nbhd.c │ │ ├── pcomp.c │ │ ├── pout.c │ │ ├── preplot.c │ │ ├── random.c │ │ ├── readfile.c │ │ ├── scb.c │ │ ├── scb_cons.c │ │ ├── simul.c │ │ ├── solve.c │ │ ├── startlf.c │ │ ├── strings.c │ │ ├── vari.cpp │ │ ├── vari.hpp │ │ ├── wdiag.c │ │ └── weight.c │ ├── matching_merge.cpp │ ├── matching_merge.h │ ├── multireads.cpp │ ├── multireads.h │ ├── negative_binomial_distribution.h │ ├── progressbar.h │ ├── replicates.cpp │ ├── replicates.h │ ├── rounding.h │ ├── sampling.cpp │ ├── sampling.h │ ├── scaffold_graph.cpp │ ├── scaffold_graph.h │ ├── scaffolds.cpp │ ├── scaffolds.h │ ├── tokenize.cpp │ ├── tokenize.h │ ├── tracking.cpp │ ├── tracking.h │ ├── transitive_closure.h │ ├── transitive_reduction.h │ └── update_check.h ├── tests/ │ └── unit_tests/ │ ├── test_abundances.cpp │ ├── test_main.cpp │ └── test_scaffolds.cpp └── version.m4 ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ *.o Makefile Makefile.in aclocal.m4 autom4te.cache build-aux config.h config.h.in config.log config.status configure .deps Makefile.in compress_gtf cuffcompare cuffdiff cufflinks cuffnorm cuffquant gffread gtf_to_sam *.a stamp-h1 ================================================ FILE: AUTHORS ================================================ Cufflinks authors Primary contact Cole Trapnell designed and wrote Cufflinks and Cuffdiff, with substantial technical input from Geo Pertea, Brian Williams, Ali Mortazavi, Jeltje van Baren, Steven Salzberg, Barbara Wold, and Lior Pachter. Geo Pertea wrote Cuffcompare. Adam Roberts made substantial improvements to the abundance estimation model used by Cufflinks and Cuffdiff. "Tuxedo" Websites: Cufflinks: http://cole-trapnell-lab.github.io/cufflinks/ TopHat: http://tophat.cbcb.umd.edu Bowtie: http://bowtie-bio.sf.net As of version 1.0, Cufflinks depends on and includes LOCFIT, a regression package originally written by Catherine Loader and Jiayang Sun. Some modifications were made to LOCFIT. Modified source for LOCFIT lives in src/locfit. ================================================ FILE: LICENSE ================================================ Copyright (C) 2003-2009 Cole Trapnell et al =========================================================================== Boost Software License, Version 1.0 =========================================================================== Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: Makefile.am ================================================ ALWAYS_BUILT = src SUBDIRS = $(ALWAYS_BUILT) DIST_SUBDIRS = $(ALWAYS_BUILT) EXTRA_DIST = LICENSE .PHONY: FORCE ================================================ FILE: README.md ================================================ # Cufflinks The main *website* for cufflinks is [here](http://cole-trapnell-lab.github.io/cufflinks/) *NOTE*: If you're looking for old releases of Cufflinks, including source, you can find them [here](http://cole-trapnell-lab.github.io/cufflinks/install/). Cufflinks assembles transcripts, estimates their abundances, and tests for differential expression and regulation in RNA-Seq samples. It accepts aligned RNA-Seq reads and assembles the alignments into a parsimonious set of transcripts. Cufflinks then estimates the relative abundances of these transcripts based on how many reads support each one, taking into account biases in library preparation protocols. Cufflinks was originally developed as part of a collaborative effort between the [Laboratory for Mathematical and Computational Biology](http://bio.math.berkeley.edu/), led by Lior Pachter at UC Berkeley, Steven Salzberg's [computational genomics group](http://ccb.jhu.edu/people/salzberg/) at the Institute of Genetic Medicine at Johns Hopkins University, and [Barbara Wold's lab](http://woldlab.caltech.edu/) at Caltech. The project is now maintained by [Cole Trapnell's](http://cole-trapnell-lab.github.io/) lab at the University of Washington. Cufflinks is provided under the OSI-approved [Boost License](http://en.wikipedia.org/wiki/Boost_Software_License) # News *To get the latest updates on the Cufflinks project and the rest of the "Tuxedo tools", please subscribe to our [**mailing list**](https://lists.sourceforge.net/lists/listinfo/bowtie-bio-announce)* # Install quick-start ## Installing a pre-compiled binary release In order to make it easy to install Cufflinks, we provide a few binary packages [here](http://cole-trapnell-lab.github.io/cufflinks/install/) to save users from the occasionally frustrating process of building Cufflinks, which requires that you install the Boost libraries. To use the binary packages, simply download the appropriate one for your machine, untar it, and make sure the cufflinks,cuffdiff and cuffcompare binaries are in a directory in your PATH environment variable. # Building Cufflinks from source In order to build Cufflinks, you must have the [Boost C++ libraries](http://www.boost.org/) (version 1.47 or higher) installed on your system. See below for instructions on installing Boost. ## Installing Boost 1. Download Boost and the bjam build engine. **WARNING:** Due to a serious issue with Boost Serlialization library introduced in version 1.56, Cufflinks currently can only be built with Boost version 1.55 or lower. The issue is expected to be fixed in the upcoming Boost v1.59. 2. Unpack bjam and add it to your PATH. 3. Unpack the Boost tarball and cd to the Boost source directory. This directory is called the BOOST_ROOT in some Boost installation instructions. 4. Build Boost. Note that you can specify where to put Boost with the --prefix option. The default Boost installation directory is /usr/local. Take note of the boost installation directory, because you will need to tell the Cufflinks installer where to find Boost later on. - If you are on Mac OS X, type (all on one line): ```bash bjam --prefix= --toolset=darwin architecture=x86 address_model=32_64 link=static runtime-link=static --layout=versioned stage install ``` - If you are on a 32-bit Linux system, type (all on one line): ```bash bjam --prefix= --toolset=gcc architecture=x86 address_model=32 link=static runtime-link=static stage install ``` - If you are on a 64-bit Linux system, type (all on one line): ```bash bjam --prefix= --toolset=gcc architecture=x86 address_model=64 link=static runtime-link=static stage install ``` ## Installing the SAM tools 1. [Download the SAM tools](http://samtools.sourceforge.net/) 2. Unpack the SAM tools tarball and cd to the SAM tools source directory. 3. Build the SAM tools by typing make at the command line. 4. Choose a directory into which you wish to copy the SAM tools binary, the included library libbam.a, and the library headers. A common choice is /usr/local/. 5. Copy libbam.a to the lib/ directory in the folder you've chosen above (e.g. /usr/local/lib/) 6. Create a directory called "bam" in the include/ directory (e.g. /usr/local/include/bam) 7. Copy the headers (files ending in .h) to the include/bam directory you've created above (e.g. /usr/local/include/bam) 8. Copy the samtools binary to some directory in your PATH. ## Installing the Eigen libraries 1. [Download Eigen](http://eigen.tuxfamily.org/) 2. Unpack the Eigen tarball and cd to the Eigen source directory. 3. Copy the Eigen/ subdirectory someplace on your system where you keep header files (e.g. /usr/local/include) ## Building Cufflinks ### If you are starting from a source tarball downloaded from [here](http://cole-trapnell-lab.github.io/cufflinks/install/): Unpack the Cufflinks source tarball (in this example for version 2.2.1): ```bash tar zxvf cufflinks-2.2.1.tar.gz ``` Change to the Cufflinks directory: ```bash cd cufflinks-2.2.1 ``` ### If you want to clone the Cufflinks github repo: ```bash git clone https://github.com/cole-trapnell-lab/cufflinks.git cd cufflinks autoreconf --install ``` The above will generate the configure script. ### To configure Cufflinks prior to the build If Boost is installed somewhere other than /usr/local, you will need to tell the installer where to find it using the --with-boost option. Specify where to install Cufflinks using the --prefix option. ```bash ./configure --prefix=/path/to/cufflinks/install --with-boost=/path/to/boost --with-eigen=/path/to/eigen ``` If you see any errors during configuration, verify that you are using Boost version 1.47 or higher, and that the directory you specified via --with-boost contains the boost header files and libraries. See the Boost Getting started page for more details. If you copied the SAM tools binaries to someplace other than /usr/local/, you may need to supply the --with-bam configuration option. Finally, make and install Cufflinks. ```bash make make install ``` ## Testing the installation 1. [Download](http://cufflinks.cbcb.umd.edu/downloads/test_data.sam) the test data 2. In the directory where you placed the test file, type: ```bash cufflinks ./test_data.sam ``` You should see the following output:
[bam_header_read] EOF marker is absent. The input is probably truncated.
[bam_header_read] invalid BAM binary header (this is not a BAM file).
File ./test_data.sam doesn't appear to be a valid BAM file, trying SAM...
[13:23:15] Inspecting reads and determining fragment length distribution.
> Processed 1 loci.                            [*************************] 100%
Warning: Using default Gaussian distribution due to insufficient paired-end reads in open ranges.  
It is recommended that correct paramaters (--frag-len-mean and --frag-len-std-dev) be provided.
> Map Properties:
>       Total Map Mass: 102.50
>       Read Type: 75bp x 75bp
>       Fragment Length Distribution: Truncated Gaussian (default)
>                     Estimated Mean: 200
>                  Estimated Std Dev: 80
[13:23:15] Assembling transcripts and estimating abundances.
> Processed 1 loci.                            [*************************] 100%
Verify that the file transcripts.gtf is in the current directory and looks like this (your file will have GTF attributes, omitted here for clarity)
test_chromosome Cufflinks       exon    53      250     1000    +       . 
test_chromosome Cufflinks       exon    351     400     1000    +       . 
test_chromosome Cufflinks       exon    501     550     1000    +       .
# Common uses of the Cufflinks package Cufflinks includes a number of tools for analyzing RNA-Seq experiments. Some of these tools can be run on their own, while others are pieces of a larger workflow. The complexity of your workflow depends on what you want to achieve with your analysis. For a complete discussion of how Cufflinks can help you with your analysis, please [see our protocol paper](http://www.nature.com/nprot/journal/v7/n3/full/nprot.2012.016.html). The paper includes a diagram (Figure 2) describing how the various parts of the Cufflinks package (and its companion tool TopHat) fit together. As of version 2.2.0, you can also run Cuffquant and Cuffnorm to make large scale analyses easier to handle. The figure below is an updated version of Figure 2 showing how the two utilities released after the protocol paper appeared fit into the workflow:
![Workflow]({{ site.url }}/images/tuxedo_workflow.png)
You can use Cuffquant to pre-compute gene expression levels for each of your samples, which can save time if you have to re-run part of your analysis. Using Cuffquant also makes it easier to spread the load of computation for lots of samples across multiple computers. If you don't want to perform differential expression analysis, you can run Cuffnorm instead of Cuffdiff. Cuffnorm produces simple tables of expression values that you can look at in R (for example) to cluster samples and perform other follow up analysis. # Using pre-built annotation packages A number of steps in the Tuxedo package work better if you have pre-existing gene annotations. How you can use these annotations is detailed in our [protocol paper](http://www.nature.com/nprot/journal/v7/n3/full/nprot.2012.016.html). Illumina has kindly provided a large number of annotation packages for commonly used model organisms and humans. You can find these packages [here]({{ site.url }}/igenome_table/index.html). # References Cufflinks is an ongoing research project as well as a suite of tools. Here are the papers that describe the science behind the programs. If you use Cufflinks, please cite these papers in your work! **Transcript assembly and quantification by RNA-Seq reveals unannotated transcripts and isoform switching during cell differentiation** Cole Trapnell, Brian Williams, Geo Pertea, Ali Mortazavi, Gordon Kwan, Jeltje van Baren, Steven Salzberg, Barbara Wold, Lior Pachter. *Nature Biotechnology*, 2010, doi:10.1038/nbt.1621 *Note: This is the original Cufflinks paper. Please cite this paper if you use Cufflinks in your work.* **Improving RNA-Seq expression estimates by correcting for fragment bias** Adam Roberts, Cole Trapnell, Julie Donaghey, John L. Rinn, Lior Pachter. *Genome Biology*, 2011, doi:10.1186/gb-2011-12-3-r22 *Note: This paper describes improvements made to Cufflinks to handle bias in RNA-Seq read coverage. Please cite this paper if you use Cufflinks with the -b option in your work.* **Identification of novel transcripts in annotated genomes using RNA-Seq** Adam Roberts, Harold Pimentel, Cole Trapnell, Lior Pachter. *Bioinformatics*, 2011, doi:10.1093/bioinformatics/btr355 *Note: This paper describes the RABT assembly algorithm. Please cite this paper if you use Cufflinks in RABT mode in your work.* **Differential analysis of gene regulation at transcript resolution with RNA-seq** Cole Trapnell, David Hendrickson, Martin Sauvageau, Loyal Goff, John L. Rinn, Lior Pachter *Nature Biotechnology*, 2012, doi:10.1038/nbt.2450 *Note: This paper describes Cuffdiff 2. Please cite this paper if you use Cuffdiff in your work.* Cufflinks builds on many ideas, including some proposed in the following papers: 1. Ali Mortazavi, Brian A Williams, Kenneth McCue, Lorian Schaeffer and Barbara Wold, "Mapping and quantifying mammalian transcriptomes by RNA-Seq",Nature Methods, volume 5, 621 - 628 (2008) 2. Hui Jiang and Wing Hung Wong, "Statistical Inferences for isoform expression", Bioinformatics, 2009 25(8):1026-1032= 3.Nicholas Eriksson, Lior Pachter, Yumi Mitsuya, Soo-Yon Rhee, Chunlin Wang, Baback Gharizadeh, Mostafa Ronaghi, Robert W. Shafer, Niko Beerenwinkel, "Viral population estimation using pyrosequencing", PLoS Computational Biology, 4(5):e1000074 ================================================ FILE: autogen.sh ================================================ #!/bin/sh submodule_init ( ) { local SUBMODULES=$(git submodule | awk '{print $2}') for submodule in $SUBMODULES; do echo "Initializing submodule $submodule" git submodule init $submodule git submodule update $submodule cd $submodule if test -f version.sh then ./version.sh fi submodule_init cd .. done } ./version.sh submodule_init autoreconf --install ================================================ FILE: ax_bam.m4 ================================================ # SYNOPSIS # # AX_BAM # # DESCRIPTION # # Test for the BAM libraries (htslib or bamlib) # # If no path to the installed bam library is given the macro searchs # under /usr, /usr/local, /opt and /opt/local and evaluates the # $BAM_ROOT environment variable. # Adapted from AX_BOOST_BASE # # This macro calls: # # AC_SUBST(BAM_CPPFLAGS) / AC_SUBST(BAM_LDFLAGS) # # And sets: # # HAVE_BAM, HAVE_HTSLIB # # LICENSE # # Copyright (c) 2010 Cole Trapnell # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. AC_DEFUN([AX_BAM], [ AC_ARG_WITH([bam], AS_HELP_STRING([--with-bam@<:@=DIR@:>@], [use BAM libraries (default is yes) - it is possible to specify the root directory for BAM (optional)]), [ if test "$withval" = "no"; then want_bam="no" elif test "$withval" = "yes"; then want_bam="yes" ac_bam_path="" else want_bam="yes" ac_bam_path="$withval" fi ], [want_bam="yes"]) AC_ARG_WITH([bam-libdir], AS_HELP_STRING([--with-bam-libdir=LIB_DIR], [Force given directory for bam libraries. Note that this will overwrite library path detection, so use this parameter only if default library detection fails and you know exactly where your bam libraries are located.]), [ if test -d $withval then ac_bam_lib_path="$withval" else AC_MSG_ERROR(--with-bam-libdir expected directory name) fi ], [ac_bam_lib_path=""] ) if test "x$want_bam" = "xyes"; then # bam_lib_version_req=ifelse([$1], ,1.20.0,$1) # bam_lib_version_req_shorten=`expr $bam_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'` # bam_lib_version_req_major=`expr $bam_lib_version_req : '\([[0-9]]*\)'` # bam_lib_version_req_minor=`expr $bam_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'` # bam_lib_version_req_sub_minor=`expr $bam_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` # if test "x$bam_lib_version_req_sub_minor" = "x" ; then # bam_lib_version_req_sub_minor="0" # fi # WANT_BAM_VERSION=`expr $bam_lib_version_req_major \* 100000 \+ $bam_lib_version_req_minor \* 100 \+ $bam_lib_version_req_sub_minor` AC_MSG_CHECKING(for htslib or bamlib) succeeded=no USE_HTSLIB=0 dnl first we check the system location for bam libraries SEARCH_DIRS="/usr /usr/local /opt /opt/local" if test "$ac_bam_path" != ""; then SEARCH_DIRS=$ac_bam_path fi for ac_bam_path_tmp in $SEARCH_DIRS ; do if test -d "$ac_bam_path_tmp/include/htslib" && test -r "$ac_bam_path_tmp/include/htslib"; then BAM_LDFLAGS="-L$ac_bam_path_tmp/lib" BAM_CPPFLAGS="-I$ac_bam_path_tmp/include" BAM_LIB_PARAM="-lhts" USE_HTSLIB=1 AC_DEFINE(HAVE_HTSLIB,,[define if the BAM library is htslib]) break; fi if test -d "$ac_bam_path_tmp/include/bam" && test -r "$ac_bam_path_tmp/include/bam"; then BAM_LDFLAGS="-L$ac_bam_path_tmp/lib" BAM_CPPFLAGS="-I$ac_bam_path_tmp/include" BAM_LIB_PARAM="-lbam" break; fi done dnl overwrite ld flags if we have required special directory with dnl --with-bam-libdir parameter if test "$ac_bam_lib_path" != ""; then BAM_LDFLAGS="-L$ac_bam_lib_path" fi CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BAM_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BAM_LDFLAGS" export LDFLAGS if test "$USE_HTSLIB" == "0"; then AC_LANG_PUSH(C++) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @%:@include ]], [[]])],[ AC_MSG_RESULT(yes) succeeded=yes found_system=yes ],[ ]) AC_LANG_POP([C++]) else AC_LANG_PUSH(C++) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @%:@include ]], [[]])],[ AC_MSG_RESULT(yes) succeeded=yes found_system=yes ],[ ]) AC_LANG_POP([C++]) fi if test "$succeeded" != "yes" ; then AC_MSG_ERROR([[We could not detect the bam libraries. Try installing htslib or libbam, or specifying a path to one with --with-bam=/some/path]]) else BAM_LIB="$BAM_LIB_PARAM" AC_SUBST(BAM_CPPFLAGS) AC_SUBST(BAM_LDFLAGS) AC_SUBST(BAM_LIB) AC_DEFINE(HAVE_BAM,,[define if the BAM library is available]) fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi ]) ================================================ FILE: ax_boost_base.m4 ================================================ # =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_boost_base.html # =========================================================================== # # SYNOPSIS # # AX_BOOST_BASE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # DESCRIPTION # # Test for the Boost C++ libraries of a particular version (or newer) # # If no path to the installed boost library is given the macro searchs # under /usr, /usr/local, /opt and /opt/local and evaluates the # $BOOST_ROOT environment variable. Further documentation is available at # . # # This macro calls: # # AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS) # # And sets: # # HAVE_BOOST # # LICENSE # # Copyright (c) 2008 Thomas Porschberg # Copyright (c) 2009 Peter Adolphs # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 45 # example boost program (need to pass version) m4_define([_AX_BOOST_BASE_PROGRAM], [AC_LANG_PROGRAM([[ #include ]],[[ (void) ((void)sizeof(char[1 - 2*!!((BOOST_VERSION) < ($1))])); ]])]) AC_DEFUN([AX_BOOST_BASE], [ AC_ARG_WITH([boost], [AS_HELP_STRING([--with-boost@<:@=ARG@:>@], [use Boost library from a standard location (ARG=yes), from the specified location (ARG=), or disable it (ARG=no) @<:@ARG=yes@:>@ ])], [ AS_CASE([$withval], [no],[want_boost="no";_AX_BOOST_BASE_boost_path=""], [yes],[want_boost="yes";_AX_BOOST_BASE_boost_path=""], [want_boost="yes";_AX_BOOST_BASE_boost_path="$withval"]) ], [want_boost="yes"]) AC_ARG_WITH([boost-libdir], [AS_HELP_STRING([--with-boost-libdir=LIB_DIR], [Force given directory for boost libraries. Note that this will override library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.])], [ AS_IF([test -d "$withval"], [_AX_BOOST_BASE_boost_lib_path="$withval"], [AC_MSG_ERROR([--with-boost-libdir expected directory name])]) ], [_AX_BOOST_BASE_boost_lib_path=""]) BOOST_LDFLAGS="" BOOST_CPPFLAGS="" AS_IF([test "x$want_boost" = "xyes"], [_AX_BOOST_BASE_RUNDETECT([$1],[$2],[$3])]) AC_SUBST(BOOST_CPPFLAGS) AC_SUBST(BOOST_LDFLAGS) ]) # convert a version string in $2 to numeric and affect to polymorphic var $1 AC_DEFUN([_AX_BOOST_BASE_TONUMERICVERSION],[ AS_IF([test "x$2" = "x"],[_AX_BOOST_BASE_TONUMERICVERSION_req="1.20.0"],[_AX_BOOST_BASE_TONUMERICVERSION_req="$2"]) _AX_BOOST_BASE_TONUMERICVERSION_req_shorten=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\.[[0-9]]*\)'` _AX_BOOST_BASE_TONUMERICVERSION_req_major=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '\([[0-9]]*\)'` AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_major" = "x"], [AC_MSG_ERROR([You should at least specify libboost major version])]) _AX_BOOST_BASE_TONUMERICVERSION_req_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.\([[0-9]]*\)'` AS_IF([test "x$_AX_BOOST_BASE_TONUMERICVERSION_req_minor" = "x"], [_AX_BOOST_BASE_TONUMERICVERSION_req_minor="0"]) _AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'` AS_IF([test "X$_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor" = "X"], [_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor="0"]) _AX_BOOST_BASE_TONUMERICVERSION_RET=`expr $_AX_BOOST_BASE_TONUMERICVERSION_req_major \* 100000 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_minor \* 100 \+ $_AX_BOOST_BASE_TONUMERICVERSION_req_sub_minor` AS_VAR_SET($1,$_AX_BOOST_BASE_TONUMERICVERSION_RET) ]) dnl Run the detection of boost should be run only if $want_boost AC_DEFUN([_AX_BOOST_BASE_RUNDETECT],[ _AX_BOOST_BASE_TONUMERICVERSION(WANT_BOOST_VERSION,[$1]) succeeded=no AC_REQUIRE([AC_CANONICAL_HOST]) dnl On 64-bit systems check for system libraries in both lib64 and lib. dnl The former is specified by FHS, but e.g. Debian does not adhere to dnl this (as it rises problems for generic multi-arch support). dnl The last entry in the list is chosen by default when no libraries dnl are found, e.g. when only header-only libraries are installed! AS_CASE([${host_cpu}], [x86_64],[libsubdirs="lib64 libx32 lib lib64"], [ppc64|powerpc64|s390x|sparc64|aarch64|ppc64le|powerpc64le|riscv64],[libsubdirs="lib64 lib lib64"], [libsubdirs="lib"] ) dnl allow for real multi-arch paths e.g. /usr/lib/x86_64-linux-gnu. Give dnl them priority over the other paths since, if libs are found there, they dnl are almost assuredly the ones desired. AS_CASE([${host_cpu}], [i?86],[multiarch_libsubdir="lib/i386-${host_os}"], [multiarch_libsubdir="lib/${host_cpu}-${host_os}"] ) dnl first we check the system location for boost libraries dnl this location ist chosen if boost libraries are installed with the --layout=system option dnl or if you install boost with RPM AS_IF([test "x$_AX_BOOST_BASE_boost_path" != "x"],[ AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) includes in "$_AX_BOOST_BASE_boost_path/include"]) AS_IF([test -d "$_AX_BOOST_BASE_boost_path/include" && test -r "$_AX_BOOST_BASE_boost_path/include"],[ AC_MSG_RESULT([yes]) BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include" for _AX_BOOST_BASE_boost_path_tmp in $multiarch_libsubdir $libsubdirs; do AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION) lib path in "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp"]) AS_IF([test -d "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" && test -r "$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp" ],[ AC_MSG_RESULT([yes]) BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$_AX_BOOST_BASE_boost_path_tmp"; break; ], [AC_MSG_RESULT([no])]) done],[ AC_MSG_RESULT([no])]) ],[ if test X"$cross_compiling" = Xyes; then search_libsubdirs=$multiarch_libsubdir else search_libsubdirs="$multiarch_libsubdir $libsubdirs" fi for _AX_BOOST_BASE_boost_path_tmp in /usr /usr/local /opt /opt/local ; do if test -d "$_AX_BOOST_BASE_boost_path_tmp/include/boost" && test -r "$_AX_BOOST_BASE_boost_path_tmp/include/boost" ; then for libsubdir in $search_libsubdirs ; do if ls "$_AX_BOOST_BASE_boost_path_tmp/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi done BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path_tmp/$libsubdir" BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path_tmp/include" break; fi done ]) dnl overwrite ld flags if we have required special directory with dnl --with-boost-libdir parameter AS_IF([test "x$_AX_BOOST_BASE_boost_lib_path" != "x"], [BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_lib_path"]) AC_MSG_CHECKING([for boostlib >= $1 ($WANT_BOOST_VERSION)]) CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS AC_REQUIRE([AC_PROG_CXX]) AC_LANG_PUSH(C++) AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[ AC_MSG_RESULT(yes) succeeded=yes found_system=yes ],[ ]) AC_LANG_POP([C++]) dnl if we found no boost with system layout we search for boost libraries dnl built and installed without the --layout=system option or for a staged(not installed) version if test "x$succeeded" != "xyes" ; then CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" BOOST_CPPFLAGS= if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then BOOST_LDFLAGS= fi _version=0 if test -n "$_AX_BOOST_BASE_boost_path" ; then if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path"; then for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do _version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` V_CHECK=`expr $_version_tmp \> $_version` if test "x$V_CHECK" = "x1" ; then _version=$_version_tmp fi VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path/include/boost-$VERSION_UNDERSCORE" done dnl if nothing found search for layout used in Windows distributions if test -z "$BOOST_CPPFLAGS"; then if test -d "$_AX_BOOST_BASE_boost_path/boost" && test -r "$_AX_BOOST_BASE_boost_path/boost"; then BOOST_CPPFLAGS="-I$_AX_BOOST_BASE_boost_path" fi fi dnl if we found something and BOOST_LDFLAGS was unset before dnl (because "$_AX_BOOST_BASE_boost_lib_path" = ""), set it here. if test -n "$BOOST_CPPFLAGS" && test -z "$BOOST_LDFLAGS"; then for libsubdir in $libsubdirs ; do if ls "$_AX_BOOST_BASE_boost_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi done BOOST_LDFLAGS="-L$_AX_BOOST_BASE_boost_path/$libsubdir" fi fi else if test "x$cross_compiling" != "xyes" ; then for _AX_BOOST_BASE_boost_path in /usr /usr/local /opt /opt/local ; do if test -d "$_AX_BOOST_BASE_boost_path" && test -r "$_AX_BOOST_BASE_boost_path" ; then for i in `ls -d $_AX_BOOST_BASE_boost_path/include/boost-* 2>/dev/null`; do _version_tmp=`echo $i | sed "s#$_AX_BOOST_BASE_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'` V_CHECK=`expr $_version_tmp \> $_version` if test "x$V_CHECK" = "x1" ; then _version=$_version_tmp best_path=$_AX_BOOST_BASE_boost_path fi done fi done VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'` BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE" if test -z "$_AX_BOOST_BASE_boost_lib_path" ; then for libsubdir in $libsubdirs ; do if ls "$best_path/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi done BOOST_LDFLAGS="-L$best_path/$libsubdir" fi fi if test -n "$BOOST_ROOT" ; then for libsubdir in $libsubdirs ; do if ls "$BOOST_ROOT/stage/$libsubdir/libboost_"* >/dev/null 2>&1 ; then break; fi done if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/$libsubdir" && test -r "$BOOST_ROOT/stage/$libsubdir"; then version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'` stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'` stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'` V_CHECK=`expr $stage_version_shorten \>\= $_version` if test "x$V_CHECK" = "x1" && test -z "$_AX_BOOST_BASE_boost_lib_path" ; then AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT) BOOST_CPPFLAGS="-I$BOOST_ROOT" BOOST_LDFLAGS="-L$BOOST_ROOT/stage/$libsubdir" fi fi fi fi CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS AC_LANG_PUSH(C++) AC_COMPILE_IFELSE([_AX_BOOST_BASE_PROGRAM($WANT_BOOST_VERSION)],[ AC_MSG_RESULT(yes) succeeded=yes found_system=yes ],[ ]) AC_LANG_POP([C++]) fi if test "x$succeeded" != "xyes" ; then if test "x$_version" = "x0" ; then AC_MSG_NOTICE([[We could not detect the boost libraries (version $1 or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in . See http://randspringer.de/boost for more documentation.]]) else AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).]) fi # execute ACTION-IF-NOT-FOUND (if present): ifelse([$3], , :, [$3]) else AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available]) # execute ACTION-IF-FOUND (if present): ifelse([$2], , :, [$2]) fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" ]) ================================================ FILE: ax_boost_filesystem.m4 ================================================ # =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_boost_filesystem.html # =========================================================================== # # SYNOPSIS # # AX_BOOST_FILESYSTEM # # DESCRIPTION # # Test for Filesystem library from the Boost C++ libraries. The macro # requires a preceding call to AX_BOOST_BASE. Further documentation is # available at . # # This macro calls: # # AC_SUBST(BOOST_FILESYSTEM_LIB) # # And sets: # # HAVE_BOOST_FILESYSTEM # # LICENSE # # Copyright (c) 2009 Thomas Porschberg # Copyright (c) 2009 Michael Tindal # Copyright (c) 2009 Roman Rybalko # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 27 AC_DEFUN([AX_BOOST_FILESYSTEM], [ AC_ARG_WITH([boost-filesystem], AS_HELP_STRING([--with-boost-filesystem@<:@=special-lib@:>@], [use the Filesystem library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-filesystem=boost_filesystem-gcc-mt ]), [ if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ax_boost_user_filesystem_lib="" else want_boost="yes" ax_boost_user_filesystem_lib="$withval" fi ], [want_boost="yes"] ) if test "x$want_boost" = "xyes"; then AC_REQUIRE([AC_PROG_CC]) CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS LIBS_SAVED=$LIBS LIBS="$LIBS $BOOST_SYSTEM_LIB" export LIBS AC_CACHE_CHECK(whether the Boost::Filesystem library is available, ax_cv_boost_filesystem, [AC_LANG_PUSH([C++]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], [[using namespace boost::filesystem; path my_path( "foo/bar/data.txt" ); return 0;]])], ax_cv_boost_filesystem=yes, ax_cv_boost_filesystem=no) AC_LANG_POP([C++]) ]) if test "x$ax_cv_boost_filesystem" = "xyes"; then AC_DEFINE(HAVE_BOOST_FILESYSTEM,,[define if the Boost::Filesystem library is available]) BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` if test "x$ax_boost_user_filesystem_lib" = "x"; then for libextension in `ls -r $BOOSTLIBDIR/libboost_filesystem* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, main, [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break], [link_filesystem="no"]) done if test "x$link_filesystem" != "xyes"; then for libextension in `ls -r $BOOSTLIBDIR/boost_filesystem* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, main, [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break], [link_filesystem="no"]) done fi else for ax_lib in $ax_boost_user_filesystem_lib boost_filesystem-$ax_boost_user_filesystem_lib; do AC_CHECK_LIB($ax_lib, main, [BOOST_FILESYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_FILESYSTEM_LIB) link_filesystem="yes"; break], [link_filesystem="no"]) done fi if test "x$ax_lib" = "x"; then AC_MSG_ERROR(Could not find a version of the library!) fi if test "x$link_filesystem" != "xyes"; then AC_MSG_ERROR(Could not link against $ax_lib !) fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" LIBS="$LIBS_SAVED" fi ]) ================================================ FILE: ax_boost_serialization.m4 ================================================ # =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_boost_serialization.html # =========================================================================== # # SYNOPSIS # # AX_BOOST_SERIALIZATION # # DESCRIPTION # # Test for Serialization library from the Boost C++ libraries. The macro # requires a preceding call to AX_BOOST_BASE. Further documentation is # available at . # # This macro calls: # # AC_SUBST(BOOST_SERIALIZATION_LIB) # # And sets: # # HAVE_BOOST_SERIALIZATION # # LICENSE # # Copyright (c) 2008 Thomas Porschberg # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 22 AC_DEFUN([AX_BOOST_SERIALIZATION], [ AC_ARG_WITH([boost-serialization], AS_HELP_STRING([--with-boost-serialization@<:@=special-lib@:>@], [use the Serialization library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-serialization=boost_serialization-gcc-mt-d-1_33_1 ]), [ if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ax_boost_user_serialization_lib="" else want_boost="yes" ax_boost_user_serialization_lib="$withval" fi ], [want_boost="yes"] ) if test "x$want_boost" = "xyes"; then AC_REQUIRE([AC_PROG_CC]) CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" AC_MSG_WARN(BOOST_CPPFLAGS $BOOST_CPPFLAGS) export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS AC_CACHE_CHECK(whether the Boost::Serialization library is available, ax_cv_boost_serialization, [AC_LANG_PUSH([C++]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include @%:@include @%:@include ]], [[std::ofstream ofs("filename"); boost::archive::text_oarchive oa(ofs); return 0; ]])], ax_cv_boost_serialization=yes, ax_cv_boost_serialization=no) AC_LANG_POP([C++]) ]) if test "x$ax_cv_boost_serialization" = "xyes"; then AC_DEFINE(HAVE_BOOST_SERIALIZATION,,[define if the Boost::Serialization library is available]) BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` if test "x$ax_boost_user_serialization_lib" = "x"; then for libextension in `ls $BOOSTLIBDIR/libboost_serialization*.so* $BOOSTLIBDIR/libboost_serialization*.dylib* $BOOSTLIBDIR/libboost_serialization*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_serialization.*\)\.so.*$;\1;' -e 's;^lib\(boost_serialization.*\)\.dylib.*$;\1;' -e 's;^lib\(boost_serialization.*\)\.a*$;\1;'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, main, [BOOST_SERIALIZATION_LIB="-l$ax_lib"; AC_SUBST(BOOST_SERIALIZATION_LIB) link_serialization="yes"; break], [link_serialization="no"]) done if test "x$link_serialization" != "xyes"; then for libextension in `ls $BOOSTLIBDIR/boost_serialization*.dll* $BOOSTLIBDIR/boost_serialization*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_serialization.*\)\.dll.*$;\1;' -e 's;^\(boost_serialization.*\)\.a.*$;\1;'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, main, [BOOST_SERIALIZATION_LIB="-l$ax_lib"; AC_SUBST(BOOST_SERIALIZATION_LIB) link_serialization="yes"; break], [link_serialization="no"]) done fi else for ax_lib in $ax_boost_user_serialization_lib boost_serialization-$ax_boost_user_serialization_lib; do AC_CHECK_LIB($ax_lib, main, [BOOST_SERIALIZATION_LIB="-l$ax_lib"; AC_SUBST(BOOST_SERIALIZATION_LIB) link_serialization="yes"; break], [link_serialization="no"]) done fi if test "x$ax_lib" = "x"; then AC_MSG_ERROR(Could not find a version of the library!) fi if test "x$link_serialization" != "xyes"; then AC_MSG_ERROR(Could not link against $ax_lib !) fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi ]) ================================================ FILE: ax_boost_system.m4 ================================================ # =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_boost_system.html # =========================================================================== # # SYNOPSIS # # AX_BOOST_SYSTEM # # DESCRIPTION # # Test for System library from the Boost C++ libraries. The macro requires # a preceding call to AX_BOOST_BASE. Further documentation is available at # . # # This macro calls: # # AC_SUBST(BOOST_SYSTEM_LIB) # # And sets: # # HAVE_BOOST_SYSTEM # # LICENSE # # Copyright (c) 2008 Thomas Porschberg # Copyright (c) 2008 Michael Tindal # Copyright (c) 2008 Daniel Casimiro # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 19 AC_DEFUN([AX_BOOST_SYSTEM], [ AC_ARG_WITH([boost-system], AS_HELP_STRING([--with-boost-system@<:@=special-lib@:>@], [use the System library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-system=boost_system-gcc-mt ]), [ if test "$withval" = "no"; then want_boost="no" elif test "$withval" = "yes"; then want_boost="yes" ax_boost_user_system_lib="" else want_boost="yes" ax_boost_user_system_lib="$withval" fi ], [want_boost="yes"] ) if test "x$want_boost" = "xyes"; then AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_BUILD]) CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS AC_CACHE_CHECK(whether the Boost::System library is available, ax_cv_boost_system, [AC_LANG_PUSH([C++]) CXXFLAGS_SAVE=$CXXFLAGS CXXFLAGS= AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include ]], [[boost::system::error_category *a = 0;]])], ax_cv_boost_system=yes, ax_cv_boost_system=no) CXXFLAGS=$CXXFLAGS_SAVE AC_LANG_POP([C++]) ]) if test "x$ax_cv_boost_system" = "xyes"; then AC_SUBST(BOOST_CPPFLAGS) AC_DEFINE(HAVE_BOOST_SYSTEM,,[define if the Boost::System library is available]) BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` LDFLAGS_SAVE=$LDFLAGS if test "x$ax_boost_user_system_lib" = "x"; then for libextension in `ls -r $BOOSTLIBDIR/libboost_system* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, main, [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break], [link_system="no"]) done if test "x$link_system" != "xyes"; then for libextension in `ls -r $BOOSTLIBDIR/boost_system* 2>/dev/null | sed 's,.*/,,' | sed -e 's,\..*,,'` ; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, main, [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break], [link_system="no"]) done fi else for ax_lib in $ax_boost_user_system_lib boost_system-$ax_boost_user_system_lib; do AC_CHECK_LIB($ax_lib, main, [BOOST_SYSTEM_LIB="-l$ax_lib"; AC_SUBST(BOOST_SYSTEM_LIB) link_system="yes"; break], [link_system="no"]) done fi if test "x$ax_lib" = "x"; then AC_MSG_ERROR(Could not find a version of the library!) fi if test "x$link_system" = "xno"; then AC_MSG_ERROR(Could not link against $ax_lib !) fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi ]) ================================================ FILE: ax_boost_thread.m4 ================================================ # =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_boost_thread.html # =========================================================================== # # SYNOPSIS # # AX_BOOST_THREAD # # DESCRIPTION # # Test for Thread library from the Boost C++ libraries. The macro requires # a preceding call to AX_BOOST_BASE. Further documentation is available at # . # # This macro calls: # # AC_SUBST(BOOST_THREAD_LIB) # # And sets: # # HAVE_BOOST_THREAD # # LICENSE # # Copyright (c) 2009 Thomas Porschberg # Copyright (c) 2009 Michael Tindal # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 31 AC_DEFUN([AX_BOOST_THREAD], [ AC_ARG_WITH([boost-thread], AS_HELP_STRING([--with-boost-thread@<:@=special-lib@:>@], [use the Thread library from boost - it is possible to specify a certain library for the linker e.g. --with-boost-thread=boost_thread-gcc-mt ]), [ if test "$withval" = "yes"; then want_boost="yes" ax_boost_user_thread_lib="" else want_boost="yes" ax_boost_user_thread_lib="$withval" fi ], [want_boost="yes"] ) if test "x$want_boost" = "xyes"; then AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_BUILD]) CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" export CPPFLAGS LDFLAGS_SAVED="$LDFLAGS" LDFLAGS="$LDFLAGS $BOOST_LDFLAGS" export LDFLAGS AC_CACHE_CHECK(whether the Boost::Thread library is available, ax_cv_boost_thread, [AC_LANG_PUSH([C++]) CXXFLAGS_SAVE=$CXXFLAGS if test "x$host_os" = "xsolaris" ; then CXXFLAGS="-pthreads $CXXFLAGS" elif test "x$host_os" = "xmingw32" ; then CXXFLAGS="-mthreads $CXXFLAGS" else CXXFLAGS="-pthread $CXXFLAGS" fi AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( [[@%:@include ]], [[boost::thread_group thrds; return 0;]])], ax_cv_boost_thread=yes, ax_cv_boost_thread=no) CXXFLAGS=$CXXFLAGS_SAVE AC_LANG_POP([C++]) ]) if test "x$ax_cv_boost_thread" = "xyes"; then if test "x$host_os" = "xsolaris" ; then BOOST_CPPFLAGS="-pthreads $BOOST_CPPFLAGS" elif test "x$host_os" = "xmingw32" ; then BOOST_CPPFLAGS="-mthreads $BOOST_CPPFLAGS" else BOOST_CPPFLAGS="-pthread $BOOST_CPPFLAGS" fi AC_SUBST(BOOST_CPPFLAGS) AC_DEFINE(HAVE_BOOST_THREAD,, [define if the Boost::Thread library is available]) BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'` LDFLAGS_SAVE=$LDFLAGS case "x$host_os" in *bsd* ) LDFLAGS="-pthread $LDFLAGS" break; ;; esac if test "x$ax_boost_user_thread_lib" = "x"; then for libextension in `ls -r $BOOSTLIBDIR/libboost_thread* 2>/dev/null | sed 's,.*/lib,,' | sed 's,\..*,,'`; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, main, [link_thread="yes"; break], [link_thread="no"]) done if test "x$link_thread" != "xyes"; then for libextension in `ls -r $BOOSTLIBDIR/boost_thread* 2>/dev/null | sed 's,.*/,,' | sed 's,\..*,,'`; do ax_lib=${libextension} AC_CHECK_LIB($ax_lib, main, [link_thread="yes"; break], [link_thread="no"]) done fi else for ax_lib in $ax_boost_user_thread_lib boost_thread-$ax_boost_user_thread_lib; do AC_CHECK_LIB($ax_lib, main, [link_thread="yes"; break], [link_thread="no"]) done fi if test "x$ax_lib" = "x"; then AC_MSG_ERROR(Could not find a version of the library!) fi if test "x$link_thread" = "xno"; then AC_MSG_ERROR(Could not link against $ax_lib !) else BOOST_THREAD_LIB="-l$ax_lib" case "x$host_os" in *bsd* ) BOOST_LDFLAGS="-pthread $BOOST_LDFLAGS" break; ;; xsolaris ) BOOST_THREAD_LIB="$BOOST_THREAD_LIB -lpthread" break; ;; xmingw32 ) break; ;; * ) BOOST_THREAD_LIB="$BOOST_THREAD_LIB -lpthread" break; ;; esac AC_SUBST(BOOST_THREAD_LIB) fi fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi ]) ================================================ FILE: ax_check_eigen.m4 ================================================ # SYNOPSIS # # AX_EIGEN # # DESCRIPTION # # Test for the EIGEN libraries of a particular version (or newer) # # If no path to the installed eigen library is given the macro searchs # under /usr, /usr/local, /opt and /opt/local and evaluates the # $EIGEN_ROOT environment variable. # Adapted from AX_BOOST_BASE # # This macro calls: # # AC_SUBST(EIGEN_CPPFLAGS) / AC_SUBST(EIGEN_LDFLAGS) # # And sets: # # HAVE_EIGEN # # LICENSE # # Copyright (c) 2010 Cole Trapnell # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. AC_DEFUN([AX_EIGEN], [ AC_ARG_WITH([eigen], AS_HELP_STRING([--with-eigen@<:@=DIR@:>@], [use EIGEN libraries (default is yes) - it is possible to specify the root directory for EIGEN (optional)]), [ if test "$withval" = "no"; then want_eigen="no" elif test "$withval" = "yes"; then want_eigen="yes" ac_eigen_path="" else want_eigen="yes" ac_eigen_path="$withval" fi ], [want_eigen="yes"]) if test "x$want_eigen" = "xyes"; then AC_MSG_CHECKING(for eigenlib) succeeded=no dnl first we check the system location for eigen libraries if test "$ac_eigen_path" != ""; then EIGEN_CPPFLAGS="-I$ac_eigen_path/include" else for ac_eigen_path_tmp in /usr /usr/local /opt /opt/local ; do for ac_eigen_subdir in eigen eigen3 ; do ac_candidate_path="$ac_eigen_path_tmp/include/$ac_eigen_subdir" if test -d "$ac_candidate_path" && test -r "$ac_candidate_path"; then EIGEN_CPPFLAGS="-I$ac_candidate_path" break; fi done done fi CPPFLAGS_SAVED="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $EIGEN_CPPFLAGS" export EIGEN_CPPFLAGS AC_LANG_PUSH(C++) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ @%:@include ]], [[ ]])],[ AC_MSG_RESULT(yes) succeeded=yes found_system=yes ],[ AC_MSG_ERROR([[We could not detect the Eigen3 library. Try installing libeigen3, or specifying a path with --with-eigen=/some/path]]) ]) AC_LANG_POP([C++]) CPPFLAGS="$CPPFLAGS $EIGEN_CPPFLAGS" export CPPFLAGS LDFLAGS="$LDFLAGS $EIGEN_LDFLAGS" export LDFLAGS export EIGEN_CPPFLAGS if test "$succeeded" == "yes" ; then AC_SUBST(EIGEN_CPPFLAGS) AC_DEFINE(HAVE_EIGEN,,[define if the EIGEN library is available]) fi CPPFLAGS="$CPPFLAGS_SAVED" LDFLAGS="$LDFLAGS_SAVED" fi ]) ================================================ FILE: ax_check_zlib.m4 ================================================ # =========================================================================== # http://www.gnu.org/software/autoconf-archive/ax_check_zlib.html # =========================================================================== # # SYNOPSIS # # AX_CHECK_ZLIB() # # DESCRIPTION # # This macro searches for an installed zlib library. If nothing was # specified when calling configure, it searches first in /usr/local and # then in /usr. If the --with-zlib=DIR is specified, it will try to find # it in DIR/include/zlib.h and DIR/lib/libz.a. If --without-zlib is # specified, the library is not searched at all. # # If either the header file (zlib.h) or the library (libz) is not found, # the configuration exits on error, asking for a valid zlib installation # directory or --without-zlib. # # The macro defines the symbol HAVE_LIBZ if the library is found. You # should use autoheader to include a definition for this symbol in a # config.h file. Sample usage in a C/C++ source is as follows: # # #ifdef HAVE_LIBZ # #include # #endif /* HAVE_LIBZ */ # # LICENSE # # Copyright (c) 2008 Loic Dachary # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. #serial 7 AU_ALIAS([CHECK_ZLIB], [AX_CHECK_ZLIB]) AC_DEFUN([AX_CHECK_ZLIB], # # Handle user hints # [AC_MSG_CHECKING(if zlib is wanted) AC_ARG_WITH(zlib, [ --with-zlib=DIR root directory path of zlib installation [defaults to /usr/local or /usr if not found in /usr/local] --without-zlib to disable zlib usage completely], [if test "$withval" != no ; then AC_MSG_RESULT(yes) if test -d "$withval" then ZLIB_HOME="$withval" else AC_MSG_WARN([Sorry, $withval does not exist, checking usual places]) fi else AC_MSG_RESULT(no) fi], [AC_MSG_RESULT(yes)]) ZLIB_HOME=/usr/local if test ! -f "${ZLIB_HOME}/include/zlib.h" then ZLIB_HOME=/usr fi # # Locate zlib, if wanted # if test -n "${ZLIB_HOME}" then ZLIB_OLD_LDFLAGS=$LDFLAGS ZLIB_OLD_CPPFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -L${ZLIB_HOME}/lib" CPPFLAGS="$CPPFLAGS -I${ZLIB_HOME}/include" AC_LANG_SAVE AC_LANG_C AC_CHECK_LIB(z, inflateEnd, [zlib_cv_libz=yes], [zlib_cv_libz=no]) AC_CHECK_HEADER(zlib.h, [zlib_cv_zlib_h=yes], [zlib_cv_zlib_h=no]) AC_LANG_RESTORE if test "$zlib_cv_libz" = "yes" -a "$zlib_cv_zlib_h" = "yes" then # # If both library and header were found, use them # AC_CHECK_LIB(z, inflateEnd) AC_MSG_CHECKING(zlib in ${ZLIB_HOME}) AC_MSG_RESULT(ok) ZLIB="-lz" AC_SUBST(ZLIB) else # # If either header or library was not found, revert and bomb # AC_MSG_CHECKING(zlib in ${ZLIB_HOME}) LDFLAGS="$ZLIB_OLD_LDFLAGS" CPPFLAGS="$ZLIB_OLD_CPPFLAGS" AC_MSG_RESULT(failed) AC_MSG_ERROR(either specify a valid zlib installation with --with-zlib=DIR or disable zlib usage with --without-zlib) fi fi ]) ================================================ FILE: ax_openmp.m4 ================================================ # AC_C_OPENMP # ----------- # Check which options need to be passed to the C compiler to support OpenMP. # Set the OPENMP_CFLAGS variable to these options. # The options are necessary at compile time (so the #pragmas are understood) # and at link time (so the appropriate library is linked with). # This macro takes care to not produce redundant options if $CC $CFLAGS already # supports OpenMP. It also is careful to not pass options to compilers that # misinterpret them; for example, most compilers accept "-openmp" and create # an output file called 'penmp' rather than activating OpenMP support. AC_DEFUN([AC_C_OPENMP], [ AC_MSG_CHECKING([whether to use OpenMP]) AC_ARG_ENABLE(openmp, [AS_HELP_STRING([--disable-openmp], [do not use OpenMP])], [], [enable_openmp=yes]) AC_MSG_RESULT([$enable_openmp]) OPENMP_CFLAGS= if test "$enable_openmp" = yes; then AC_MSG_CHECKING([for $CC option to support OpenMP]) AC_CACHE_VAL([ac_cv_prog_cc_openmp], [ ac_cv_prog_cc_openmp=unsupported AC_LINK_IFELSE([ #ifndef _OPENMP choke me #endif #include int main () { return omp_get_num_threads (); } ], [ac_cv_prog_cc_openmp="none needed"]) if test "$ac_cv_prog_cc_openmp" = unsupported; then dnl Try these flags: dnl GCC >= 4.2 -fopenmp dnl SunPRO C -xopenmp dnl Intel C -openmp dnl SGI C, PGI C -mp dnl Tru64 Compaq C -omp dnl IBM C (AIX, Linux) -qsmp=omp for brand in GCC SunPRO Intel SGI/PGI Compaq IBM; do case $brand in GCC) ac_conditional='defined __GNUC__' ac_option='-fopenmp' ;; SunPRO) ac_conditional='defined __SUNPRO_C || defined __SUNPRO_CC' ac_option='-xopenmp' ;; Intel) ac_conditional='defined __INTEL_COMPILER' ac_option='-openmp' ;; SGI/PGI) ac_conditional='defined __sgi || defined __PGI || defined __PGIC__' ac_option='-mp' ;; Compaq) ac_conditional='defined __DECC || defined __DECCXX' ac_option='-omp' ;; IBM) ac_conditional='defined __xlc__ || defined __xlC__' ac_option='-qsmp=omp' ;; esac if test $brand = GCC; then if test "$GCC" = yes; then ac_openmp_result=yes else ac_openmp_result=no fi else AC_EGREP_CPP([Brand], [ #if $ac_conditional Brand #endif ], [ac_openmp_result=yes], [ac_openmp_result=no]) fi if test $ac_openmp_result = yes; then ac_save_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $ac_option" AC_LINK_IFELSE([ #ifndef _OPENMP choke me #endif #include int main () { return omp_get_num_threads (); } ], [ac_cv_prog_cc_openmp=$ac_option]) CFLAGS=$ac_save_CFLAGS break fi done fi ]) AC_MSG_RESULT([$ac_cv_prog_cc_openmp]) case $ac_cv_prog_cc_openmp in "none needed" | unsupported) OPENMP_CFLAGS= ;; *) OPENMP_CFLAGS=$ac_cv_prog_cc_openmp ;; esac fi AC_SUBST([OPENMP_CFLAGS]) ]) ================================================ FILE: boost.m4 ================================================ dnl AC_PATH_BOOST([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl Test for the Boost C++ libraries of a particular version (or newer) dnl Defines: dnl BOOST_CXXFLAGS to the set of flags required to compiled Boost AC_DEFUN([AC_PATH_BOOST], [ BOOST_CXXFLAGS="" path_given="no" dnl Extract the path name from a --with-boost=PATH argument AC_ARG_WITH(boost, [ --with-boost=PATH absolute path name where the Boost C++ libraries reside. Alternatively, the BOOST_ROOT environment variable will be used], if test "$withval" = no ; then path_given="no" BOOST_CXXFLAGS="" else if test "$withval" != yes ; then path_given="yes" BOOST_CXXFLAGS="-I$withval" BOOST_ROOT="$withval" fi fi ) dnl If no path with given and there is a BOOST_ROOT environment variable, dnl use it if test "$path_given" = "no"; then if test "x$BOOST_ROOT" = "x"; then BOOST_CXXFLAGS="" else BOOST_CXXFLAGS="-I$BOOST_ROOT" fi fi boost_min_version=ifelse([$1], ,1.20.0,$1) AC_LANG_SAVE AC_LANG_CPLUSPLUS OLD_CXX_FLAGS=$CXXFLAGS CXXFLAGS="$CXXFLAGS $BOOST_CXXFLAGS" AC_MSG_CHECKING([for the Boost C++ libraries, version $boost_min_version or newer]) AC_TRY_COMPILE( [ #include ], [], [ have_boost="yes" ], [ AC_MSG_RESULT(no) have_boost="no" ifelse([$3], , :, [$3]) ]) if test "$have_boost" = "yes"; then WANT_BOOST_MAJOR=`expr $boost_min_version : '\([[0-9]]\+\)'` WANT_BOOST_MINOR=`expr $boost_min_version : '[[0-9]]\+\.\([[0-9]]\+\)'` WANT_BOOST_SUB_MINOR=`expr $boost_min_version : '[[0-9]]\+\.[[0-9]]\+\.\([[0-9]]\+\)'` WANT_BOOST_VERSION=`expr $WANT_BOOST_MAJOR \* 100000 \+ $WANT_BOOST_MINOR \* 100 \+ $WANT_BOOST_SUB_MINOR` AC_TRY_COMPILE( [ #include ], [ #if BOOST_VERSION >= $WANT_BOOST_VERSION // Everything is okay #else # error Boost version is too old #endif ], [ AC_MSG_RESULT(yes) ifelse([$2], , :, [$2]) ], [ AC_MSG_RESULT([no, version of installed Boost libraries is too old]) ifelse([$3], , :, [$3]) ]) fi CXXFLAGS=$OLD_CXXFLAGS AC_LANG_RESTORE ]) ================================================ FILE: configure.ac ================================================ m4_include([ax_boost_base.m4]) m4_include([ax_boost_thread.m4]) m4_include([ax_boost_system.m4]) m4_include([ax_boost_serialization.m4]) m4_include([ax_boost_filesystem.m4]) m4_include([ax_bam.m4]) m4_include([ax_check_eigen.m4]) m4_include([ax_check_zlib.m4]) define([svnversion], esyscmd([sh -c "svnversion|tr -d '\n'"]))dnl AC_INIT([cufflinks], [2.2.2], [cole@cs.umd.edu]) AC_DEFINE(SVN_REVISION, "svnversion", [SVN Revision]) AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR([build-aux]) AM_INIT_AUTOMAKE #AM_PATH_CPPUNIT(1.10.2) AC_ARG_VAR(PYTHON, [python program]) # Make sure CXXFLAGS is defined so that AC_PROG_CXX doesn't set it. CXXFLAGS="$CXXFLAGS" CFLAGS="$CFLAGS" AC_LANG(C) # Checks for programs. AC_PROG_AWK AC_PROG_CXX AC_PROG_CC AC_PROG_MAKE_SET AC_PROG_RANLIB AC_PROG_INSTALL m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) AM_PATH_PYTHON([2.4]) AX_BOOST_BASE([1.47.0]) AX_BAM AX_BOOST_SYSTEM AX_BOOST_SERIALIZATION AX_BOOST_FILESYSTEM AX_BOOST_THREAD AX_CHECK_ZLIB() #PKG_CHECK_MODULES([EIGEN3], [eigen3]) AX_EIGEN # Checks for header files. AC_CHECK_HEADERS([stdlib.h string.h unistd.h]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_INLINE AC_TYPE_PID_T AC_TYPE_SIZE_T AC_CHECK_TYPES([ptrdiff_t]) # Checks for library functions. #AC_FUNC_FORK #AC_CHECK_FUNCS([floor memmove pow regcomp sqrt strchr strcspn strspn strstr]) # check the platform AC_CANONICAL_HOST # set CFLAGS and CXXFLAGS user_CFLAGS=${CFLAGS} generic_CFLAGS="-Wall -Wno-strict-aliasing -g -gdwarf-2 -Wunused -Wuninitialized -ftemplate-depth-1024" ext_CFLAGS="" debug_CFLAGS="" #echo "${host_cpu}-${host_os}" case "${host_cpu}-${host_os}" in i*86-*linux*) ext_CFLAGS="-march=i686";; i*86-darwin*) CFLAGS="-m64" AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [ext_CFLAGS="-arch x86_64"], []);; *) AC_MSG_CHECKING([if gcc accepts -m64]) CFLAGS="-m64" AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [ext_CFLAGS="-m64"; AC_MSG_RESULT([yes])], [ext_CFLAGS="-D_FILE_OFFSET_BITS=64"; AC_MSG_RESULT([no])]);; esac AC_ARG_ENABLE(vectorize, [ --enable-vectorize Enable GCC auto-vectorization], [ext_CFLAGS="${ext_CFLAGS} -ftree-vectorize -msse3 -ffast-math -ftree-vectorizer-verbose=99"], []) AC_ARG_ENABLE(intel64, [ --enable-intel64 optimize for Intel64 CPU such as Xeon and Core2], [ext_CFLAGS="${ext_CFLAGS} -march=nocona"], []) AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], [enable debugging info (default is no)])], [], [enable_debug=no]) AC_ARG_ENABLE([optim], [AS_HELP_STRING([--enable-optim@<:@=0|1|2|3@:>@], [set optimization level (default is 3)])], [if test "x$enable_optim" = xyes; then enable_optim=3; fi], [enable_optim=3]) AS_IF([test "x$enable_optim" != xno], [ext_CFLAGS="$ext_CFLAGS -O$enable_optim"]) AS_IF([test "x$enable_debug" = xyes], [debug_CFLAGS="-DDEBUG"], [debug_CFLAGS="-DNDEBUG"]) AC_ARG_ENABLE(profiling, [ --enable-profiling enable profiling with google-perftools], [ext_LDFLAGS="-lprofiler -ltcmalloc"], []) CFLAGS="${generic_CFLAGS} ${ext_CFLAGS} ${user_CFLAGS} ${debug_CFLAGS} ${OPENMP_CFLAGS}" CXXFLAGS="$CFLAGS -std=c++03" CXXFLAGS="${CXXFLAGS} ${BOOST_CPPFLAGS} ${BAM_CPPFLAGS} ${EIGEN_CPPFLAGS}" user_LDFLAGS="$LDFLAGS" LDFLAGS="${ext_LDFLAGS} ${user_LDFLAGS}" # Checks for structures/functions that can be used to determine system memory AC_CHECK_MEMBERS([struct sysinfo.totalram], [], [], [#include ]) AC_CHECK_DECLS([sysctl, CTL_HW, HW_PHYSMEM], [], [], [#include ]) AM_INIT_AUTOMAKE([-Wall tar-pax foreign]) AC_CONFIG_FILES([Makefile src/Makefile]) AC_OUTPUT # dump some configuration confirmations echo \ " -- ${PACKAGE_STRING} Configuration Results -- C++ compiler: ${CXX} ${CXXFLAGS} ${LDFLAGS}" if test x"${GCC}" = x"yes" ; then gcc_version=`${CC} --version | head -n 1` echo " GCC version: ${gcc_version}" else gcc_version='' fi echo \ " Host System type: ${host} Install prefix: ${prefix} Install eprefix: ${exec_prefix} See config.h for further configuration information. Email <${PACKAGE_BUGREPORT}> with questions and bug reports. " if test x"${PYTHON}" = x":" || ! test -x "${PYTHON}"; then echo "WARNING! python was not found and is required to run some utility scripts" echo " We recommend installing python and pointing configure to the installed location" fi ================================================ FILE: cufflinks.xcodeproj/cole.pbxuser ================================================ // !$*UTF8*$! { 08FB7793FE84155DC02AAC07 /* Project object */ = { activeArchitecturePreference = x86_64; activeBuildConfigurationName = Debug; activeExecutable = EDD0CD9D10C72AC200AF308F /* cufflinks */; activeTarget = 8DD76F620486A84900D96B5E /* cufflinks */; addToTargets = ( EDFE39B0122BE65600F24CD3 /* cuffcluster */, ); breakpoints = ( ED0E3F3F12CBA86F00074D2E /* sorting_hat.cpp:725 */, ED0E3F4312CBA89F00074D2E /* sorting_hat.cpp:735 */, EDC57AC912F7D53300493081 /* cufflinks.cpp:483 */, EDC57ACD12F7D56A00493081 /* scaffolds.cpp:539 */, EDC57AE812F8578000493081 /* cufflinks.cpp:543 */, EDC57AEE12F857FF00493081 /* filters.cpp:506 */, EDDC69AA1304DCE000637B75 /* cuffdiff.cpp:435 */, EDDC69BF1304DEF800637B75 /* cuffdiff.cpp:458 */, EDDC69C51304DF9000637B75 /* cuffdiff.cpp:452 */, EDDC69D41304E09600637B75 /* differential.cpp:28 */, EDDC69EC1304E2C600637B75 /* differential.cpp:35 */, EDC583B21308455A0013090E /* cufflinks.cpp:646 */, EDC583C0130847140013090E /* filters.cpp:867 */, EDC583CA130853530013090E /* filters.cpp:897 */, EDC583F41308558F0013090E /* filters.cpp:936 */, EDC583FF130855D10013090E /* filters.cpp:927 */, EDC58405130856060013090E /* filters.cpp:916 */, EDC5840D130856B00013090E /* filters.cpp:931 */, EDC5843C130859F80013090E /* filters.cpp:894 */, EDC5844A13085AD90013090E /* filters.cpp:930 */, EDC5845C13085BDA0013090E /* filters.cpp:912 */, EDC584A8130863A20013090E /* filters.cpp:985 */, EDC584AC130863FE0013090E /* filters.cpp:992 */, ); codeSenseManager = EDA5150110C72929000A4F41 /* Code sense */; executables = ( EDD0CD9D10C72AC200AF308F /* cufflinks */, EDD0CE2310C72F7D00AF308F /* cuffdiff */, EDD6A9D611598ABA00D3F668 /* cuffcompare */, EDD6AA241159BA2E00D3F668 /* Unit Tests */, EDD94CD31208E48B00AA1086 /* gtf_to_sam */, EDFE39CF122BE65600F24CD3 /* cuffcluster */, ED41B839127602C60000B5A2 /* gtf_reads */, ); perUserDictionary = { "PBXConfiguration.PBXBreakpointsDataSource.v1:1CA23EDF0692099D00951B8B" = { PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID; PBXFileTableDataSourceColumnWidthsKey = ( 20, 20, 165, 20, 165, 165, 165, 20, ); PBXFileTableDataSourceColumnsKey = ( PBXBreakpointsDataSource_ActionID, PBXBreakpointsDataSource_TypeID, PBXBreakpointsDataSource_BreakpointID, PBXBreakpointsDataSource_UseID, PBXBreakpointsDataSource_LocationID, PBXBreakpointsDataSource_ConditionID, PBXBreakpointsDataSource_IgnoreCountID, PBXBreakpointsDataSource_ContinueID, ); }; PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = { PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID; PBXFileTableDataSourceColumnWidthsKey = ( 22, 300, 372, ); PBXFileTableDataSourceColumnsKey = ( PBXExecutablesDataSource_ActiveFlagID, PBXExecutablesDataSource_NameID, PBXExecutablesDataSource_CommentsID, ); }; PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; PBXFileTableDataSourceColumnWidthsKey = ( 20, 484, 20, 48, 43, 43, 20, ); PBXFileTableDataSourceColumnsKey = ( PBXFileDataSource_FiletypeID, PBXFileDataSource_Filename_ColumnID, PBXFileDataSource_Built_ColumnID, PBXFileDataSource_ObjectSize_ColumnID, PBXFileDataSource_Errors_ColumnID, PBXFileDataSource_Warnings_ColumnID, PBXFileDataSource_Target_ColumnID, ); }; PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = { PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID; PBXFileTableDataSourceColumnWidthsKey = ( 200, 750.20849609375, ); PBXFileTableDataSourceColumnsKey = ( PBXFindDataSource_MessageID, PBXFindDataSource_LocationID, ); }; PBXConfiguration.PBXFileTableDataSource3.PBXSymbolsDataSource = { PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; PBXFileTableDataSourceColumnSortingKey = PBXSymbolsDataSource_SymbolNameID; PBXFileTableDataSourceColumnWidthsKey = ( 16, 200, 50, 513, ); PBXFileTableDataSourceColumnsKey = ( PBXSymbolsDataSource_SymbolTypeIconID, PBXSymbolsDataSource_SymbolNameID, PBXSymbolsDataSource_SymbolTypeID, PBXSymbolsDataSource_ReferenceNameID, ); }; PBXConfiguration.PBXFileTableDataSource3.XCSCMDataSource = { PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; PBXFileTableDataSourceColumnWidthsKey = ( 20, 20, 815, 20, 48.16259765625, 43, 43, 20, ); PBXFileTableDataSourceColumnsKey = ( PBXFileDataSource_SCM_ColumnID, PBXFileDataSource_FiletypeID, PBXFileDataSource_Filename_ColumnID, PBXFileDataSource_Built_ColumnID, PBXFileDataSource_ObjectSize_ColumnID, PBXFileDataSource_Errors_ColumnID, PBXFileDataSource_Warnings_ColumnID, PBXFileDataSource_Target_ColumnID, ); }; PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; PBXFileTableDataSourceColumnWidthsKey = ( 20, 510, 60, 20, 48, 43, 43, ); PBXFileTableDataSourceColumnsKey = ( PBXFileDataSource_FiletypeID, PBXFileDataSource_Filename_ColumnID, PBXTargetDataSource_PrimaryAttribute, PBXFileDataSource_Built_ColumnID, PBXFileDataSource_ObjectSize_ColumnID, PBXFileDataSource_Errors_ColumnID, PBXFileDataSource_Warnings_ColumnID, ); }; PBXPerProjectTemplateStateSaveDate = 319308049; PBXWorkspaceStateSaveDate = 319308049; }; perUserProjectItems = { ED0E3EF212CB949000074D2E /* PBXTextBookmark */ = ED0E3EF212CB949000074D2E /* PBXTextBookmark */; ED0E3F0712CB97B000074D2E /* PBXTextBookmark */ = ED0E3F0712CB97B000074D2E /* PBXTextBookmark */; ED291363122D32B500C3703E /* PBXTextBookmark */ = ED291363122D32B500C3703E /* PBXTextBookmark */; ED48339D12400ED100642337 /* PBXTextBookmark */ = ED48339D12400ED100642337 /* PBXTextBookmark */; ED48351812415CA300642337 /* PBXTextBookmark */ = ED48351812415CA300642337 /* PBXTextBookmark */; ED4835AE12481D1900642337 /* PBXTextBookmark */ = ED4835AE12481D1900642337 /* PBXTextBookmark */; ED70726B11F79D170028F305 /* PBXTextBookmark */ = ED70726B11F79D170028F305 /* PBXTextBookmark */; ED78C54112F52C6E00111993 /* PBXTextBookmark */ = ED78C54112F52C6E00111993 /* PBXTextBookmark */; ED79DB8512A49C3400ABC8B3 /* PBXTextBookmark */ = ED79DB8512A49C3400ABC8B3 /* PBXTextBookmark */; ED79DC1E12AC5D4E00ABC8B3 /* PBXTextBookmark */ = ED79DC1E12AC5D4E00ABC8B3 /* PBXTextBookmark */; ED79DC9912AC5F1A00ABC8B3 /* PBXTextBookmark */ = ED79DC9912AC5F1A00ABC8B3 /* PBXTextBookmark */; ED79DC9B12AC5F1A00ABC8B3 /* PBXTextBookmark */ = ED79DC9B12AC5F1A00ABC8B3 /* PBXTextBookmark */; ED79DCB212AC629D00ABC8B3 /* PBXTextBookmark */ = ED79DCB212AC629D00ABC8B3 /* PBXTextBookmark */; ED7CFAE71294286100DB052B /* PBXTextBookmark */ = ED7CFAE71294286100DB052B /* PBXTextBookmark */; ED7CFAEA1294286100DB052B /* PBXTextBookmark */ = ED7CFAEA1294286100DB052B /* PBXTextBookmark */; EDA5B99312F6599F005AEC09 /* PBXTextBookmark */ = EDA5B99312F6599F005AEC09 /* PBXTextBookmark */; EDAE42851298369000F35B48 /* PBXTextBookmark */ = EDAE42851298369000F35B48 /* PBXTextBookmark */; EDBBA10211DA433F0015175B /* PBXTextBookmark */ = EDBBA10211DA433F0015175B /* PBXTextBookmark */; EDBBA3FA11DD8E140015175B /* PBXTextBookmark */ = EDBBA3FA11DD8E140015175B /* PBXTextBookmark */; EDBCDD4B1235E4090050A8E4 /* PBXTextBookmark */ = EDBCDD4B1235E4090050A8E4 /* PBXTextBookmark */; EDBCDD4D1235E4090050A8E4 /* PBXTextBookmark */ = EDBCDD4D1235E4090050A8E4 /* PBXTextBookmark */; EDBCDDFB1235EEB60050A8E4 /* PBXTextBookmark */ = EDBCDDFB1235EEB60050A8E4 /* PBXTextBookmark */; EDBCDDFC1235EEB60050A8E4 /* PBXTextBookmark */ = EDBCDDFC1235EEB60050A8E4 /* PBXTextBookmark */; EDBCDF80123721790050A8E4 /* PBXTextBookmark */ = EDBCDF80123721790050A8E4 /* PBXTextBookmark */; EDC57A9512F7CC9F00493081 /* PBXTextBookmark */ = EDC57A9512F7CC9F00493081 /* PBXTextBookmark */; EDC57AE012F7D66C00493081 /* PBXTextBookmark */ = EDC57AE012F7D66C00493081 /* PBXTextBookmark */; EDC57AF312F8580200493081 /* PBXTextBookmark */ = EDC57AF312F8580200493081 /* PBXTextBookmark */; EDC57AF612F8580200493081 /* PBXTextBookmark */ = EDC57AF612F8580200493081 /* PBXTextBookmark */; EDC57B0C12F859B500493081 /* PBXTextBookmark */ = EDC57B0C12F859B500493081 /* PBXTextBookmark */; EDC57B1212F85B6E00493081 /* PBXTextBookmark */ = EDC57B1212F85B6E00493081 /* PBXTextBookmark */; EDC58391130833E90013090E /* PBXTextBookmark */ = EDC58391130833E90013090E /* PBXTextBookmark */; EDC58392130833E90013090E /* PBXTextBookmark */ = EDC58392130833E90013090E /* PBXTextBookmark */; EDC58393130833E90013090E /* PBXTextBookmark */ = EDC58393130833E90013090E /* PBXTextBookmark */; EDC58394130833E90013090E /* PBXTextBookmark */ = EDC58394130833E90013090E /* PBXTextBookmark */; EDC583B6130845640013090E /* PBXTextBookmark */ = EDC583B6130845640013090E /* PBXTextBookmark */; EDC583B7130845640013090E /* PBXTextBookmark */ = EDC583B7130845640013090E /* PBXTextBookmark */; EDC583F0130855740013090E /* PBXTextBookmark */ = EDC583F0130855740013090E /* PBXTextBookmark */; EDC584BD130865E80013090E /* PBXTextBookmark */ = EDC584BD130865E80013090E /* PBXTextBookmark */; EDC584C5130866820013090E /* PBXTextBookmark */ = EDC584C5130866820013090E /* PBXTextBookmark */; EDC584C6130866820013090E /* PBXTextBookmark */ = EDC584C6130866820013090E /* PBXTextBookmark */; EDC584C7130866820013090E /* XCBuildMessageTextBookmark */ = EDC584C7130866820013090E /* XCBuildMessageTextBookmark */; EDC584C913087F870013090E /* PBXTextBookmark */ = EDC584C913087F870013090E /* PBXTextBookmark */; EDDBF71412D2BD4400130D8A /* PBXTextBookmark */ = EDDBF71412D2BD4400130D8A /* PBXTextBookmark */; EDDBF71512D2BD4400130D8A /* PBXTextBookmark */ = EDDBF71512D2BD4400130D8A /* PBXTextBookmark */; EDDC69911304DBC100637B75 /* PBXTextBookmark */ = EDDC69911304DBC100637B75 /* PBXTextBookmark */; EDDC69F01304E2FC00637B75 /* PBXTextBookmark */ = EDDC69F01304E2FC00637B75 /* PBXTextBookmark */; EDFDE77312BEA9100044EDD0 /* PBXTextBookmark */ = EDFDE77312BEA9100044EDD0 /* PBXTextBookmark */; EDFDE78F12BEACA20044EDD0 /* PBXTextBookmark */ = EDFDE78F12BEACA20044EDD0 /* PBXTextBookmark */; EDFE393512299AE500F24CD3 /* PBXTextBookmark */ = EDFE393512299AE500F24CD3 /* PBXTextBookmark */; EDFE3A0C122BE93000F24CD3 /* PBXTextBookmark */ = EDFE3A0C122BE93000F24CD3 /* PBXTextBookmark */; EDFE3A0D122BE93000F24CD3 /* PBXTextBookmark */ = EDFE3A0D122BE93000F24CD3 /* PBXTextBookmark */; EDFE3A5B122C04D700F24CD3 /* PBXTextBookmark */ = EDFE3A5B122C04D700F24CD3 /* PBXTextBookmark */; }; sourceControlManager = EDA5150010C72929000A4F41 /* Source Control */; userBuildSettings = { }; }; 0A5D9A35123B5BE0002BEFD5 /* GFastaIndex.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1084, 2197}}"; sepNavSelRange = "{1068, 0}"; sepNavVisRange = "{0, 1544}"; }; }; 0A5D9A3F123B5BFE002BEFD5 /* GFastaIndex.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1084, 1196}}"; sepNavSelRange = "{0, 0}"; sepNavVisRange = "{0, 824}"; }; }; 0ACD78C612E6647B00310E07 /* update_check.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1475, 1248}}"; sepNavSelRange = "{2052, 32}"; sepNavVisRange = "{1052, 1451}"; }; }; 8DD76F620486A84900D96B5E /* cufflinks */ = { activeExec = 0; executables = ( EDD0CD9D10C72AC200AF308F /* cufflinks */, ); }; ED0E3ED812CB937D00074D2E /* stl_iterator_base_types.h */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = stl_iterator_base_types.h; path = "/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/stl_iterator_base_types.h"; sourceTree = ""; uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1002, 2210}}"; sepNavSelRange = "{4481, 0}"; sepNavVisRange = "{4047, 936}"; }; }; ED0E3EF212CB949000074D2E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = ED0E3ED812CB937D00074D2E /* stl_iterator_base_types.h */; name = "stl_iterator_base_types.h: 84"; rLen = 0; rLoc = 3524; rType = 0; vrLen = 1922; vrLoc = 2559; }; ED0E3F0712CB97B000074D2E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5151E10C72963000A4F41 /* abundances.cpp */; name = "abundances.cpp: 363"; rLen = 45; rLoc = 7849; rType = 0; vrLen = 1563; vrLoc = 7505; }; ED0E3F3F12CBA86F00074D2E /* sorting_hat.cpp:725 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDFE39AF122BE4F400F24CD3 /* sorting_hat.cpp */; functionName = "driver(FILE* fpkm_file, FILE* spec_out, FILE* row_matrix_out, FILE* row_density_out)"; hitCount = 0; ignoreCount = 0; lineNumber = 725; location = cufflinks_xcode; modificationTime = 319317165.204594; originalNumberOfMultipleMatches = 1; state = 2; }; ED0E3F4312CBA89F00074D2E /* sorting_hat.cpp:735 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDFE39AF122BE4F400F24CD3 /* sorting_hat.cpp */; functionName = "driver(FILE* fpkm_file, FILE* spec_out, FILE* row_matrix_out, FILE* row_density_out)"; hitCount = 0; ignoreCount = 0; lineNumber = 735; location = cufflinks_xcode; modificationTime = 319317165.205203; originalNumberOfMultipleMatches = 1; state = 2; }; ED1C0C7111D7D9E500CFD663 /* ax_boost_base.m4 */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {3064, 2860}}"; sepNavSelRange = "{3845, 13}"; sepNavVisRange = "{2759, 1708}"; }; }; ED1C0C7211D7D9E500CFD663 /* ax_boost_thread.m4 */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1860, 1872}}"; sepNavSelRange = "{4519, 26}"; sepNavVisRange = "{0, 1482}"; }; }; ED1C0C7411D7DA3200CFD663 /* ax_bam.m4 */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {2952, 2704}}"; sepNavSelRange = "{6426, 4}"; sepNavVisRange = "{5471, 1174}"; }; }; ED1C0CAA11D7E52400CFD663 /* ax_check_zlib.m4 */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {943, 1651}}"; sepNavSelRange = "{4111, 0}"; sepNavVisRange = "{2926, 1646}"; }; }; ED291363122D32B500C3703E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = ED291364122D32B500C3703E /* bind.hpp */; name = "bind.hpp: 306"; rLen = 0; rLoc = 7929; rType = 0; vrLen = 1655; vrLoc = 7187; }; ED291364122D32B500C3703E /* bind.hpp */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = bind.hpp; path = "/usr/local/include/boost-1_41/boost/bind/bind.hpp"; sourceTree = ""; }; ED41B816127602C60000B5A2 /* gtf_reads */ = { activeExec = 0; executables = ( ED41B839127602C60000B5A2 /* gtf_reads */, ); }; ED41B839127602C60000B5A2 /* gtf_reads */ = { isa = PBXExecutable; activeArgIndices = ( ); argumentStrings = ( ); autoAttachOnCrash = 1; breakpointsEnabled = 0; configStateDict = { }; customDataFormattersEnabled = 1; dataTipCustomDataFormattersEnabled = 1; dataTipShowTypeColumn = 1; dataTipSortType = 0; debuggerPlugin = GDBDebugging; disassemblyDisplayState = 0; dylibVariantSuffix = ""; enableDebugStr = 1; environmentEntries = ( ); executableSystemSymbolLevel = 0; executableUserSymbolLevel = 0; libgmallocEnabled = 0; name = gtf_reads; showTypeColumn = 0; sourceDirectories = ( ); }; ED48339D12400ED100642337 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5150C10C72963000A4F41 /* codons.h */; name = "codons.h: 1"; rLen = 0; rLoc = 0; rType = 0; vrLen = 795; vrLoc = 0; }; ED48351812415CA300642337 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */; name = "gtf_tracking.cpp: 458"; rLen = 0; rLoc = 15301; rType = 0; vrLen = 1332; vrLoc = 14452; }; ED4835AE12481D1900642337 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDE78A2C11B5F4F0000F8846 /* graph_optimize.cpp */; name = "graph_optimize.cpp: 691"; rLen = 0; rLoc = 18780; rType = 0; vrLen = 1336; vrLoc = 2617; }; ED4835D81249057500642337 /* progressbar.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {728, 1131}}"; sepNavSelRange = "{709, 8}"; sepNavVisRange = "{395, 757}"; }; }; ED70726B11F79D170028F305 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = ED70726C11F79D170028F305 /* vector_map.h */; name = "vector_map.h: 152"; rLen = 0; rLoc = 4673; rType = 0; vrLen = 921; vrLoc = 4204; }; ED70726C11F79D170028F305 /* vector_map.h */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = vector_map.h; path = /Users/cole/develop/cufflinks/src/lemon/bits/vector_map.h; sourceTree = ""; }; ED78C54112F52C6E00111993 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDDBF70912D29DF000130D8A /* cuffcluster.cpp */; name = "cuffcluster.cpp: 793"; rLen = 0; rLoc = 24115; rType = 0; vrLen = 1037; vrLoc = 23577; }; ED79DB8512A49C3400ABC8B3 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = ED4835D81249057500642337 /* progressbar.h */; name = "progressbar.h: 39"; rLen = 8; rLoc = 709; rType = 0; vrLen = 757; vrLoc = 395; }; ED79DC1E12AC5D4E00ABC8B3 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5153010C72963000A4F41 /* hits.cpp */; name = "hits.cpp: 552"; rLen = 0; rLoc = 13884; rType = 0; vrLen = 779; vrLoc = 7836; }; ED79DC9712AC5F0900ABC8B3 /* sp_counted_base_gcc_x86.hpp */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = sp_counted_base_gcc_x86.hpp; path = /Users/cole/boost_install/boost_1_41_0/./boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp; sourceTree = ""; }; ED79DC9912AC5F1A00ABC8B3 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = ED79DC9A12AC5F1A00ABC8B3 /* thread.cpp */; name = "thread.cpp: 184"; rLen = 0; rLoc = 6214; rType = 0; vrLen = 704; vrLoc = 5786; }; ED79DC9A12AC5F1A00ABC8B3 /* thread.cpp */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = thread.cpp; path = /Users/cole/boost_install/boost_1_41_0/libs/thread/src/pthread/thread.cpp; sourceTree = ""; }; ED79DC9B12AC5F1A00ABC8B3 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = ED79DC9C12AC5F1A00ABC8B3 /* thread.hpp */; name = "thread.hpp: 184"; rLen = 0; rLoc = 4934; rType = 0; vrLen = 569; vrLoc = 4657; }; ED79DC9C12AC5F1A00ABC8B3 /* thread.hpp */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = thread.hpp; path = /usr/local/include/boost/thread/detail/thread.hpp; sourceTree = ""; }; ED79DCB212AC629D00ABC8B3 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = ED79DC9712AC5F0900ABC8B3 /* sp_counted_base_gcc_x86.hpp */; name = "sp_counted_base_gcc_x86.hpp: 132"; rLen = 0; rLoc = 2701; rType = 0; vrLen = 643; vrLoc = 2613; }; ED79DCDB12AC63F200ABC8B3 /* stl_vector.h */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = stl_vector.h; path = "/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/stl_vector.h"; sourceTree = ""; uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1002, 12766}}"; sepNavSelRange = "{16871, 0}"; sepNavVisRange = "{16542, 887}"; }; }; ED7CFAE71294286100DB052B /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = ED7CFAE81294286100DB052B /* exceptions.hpp */; name = "exceptions.hpp: 87"; rLen = 53; rLoc = 2928; rType = 0; vrLen = 1216; vrLoc = 2223; }; ED7CFAE81294286100DB052B /* exceptions.hpp */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = exceptions.hpp; path = "/usr/local/include/boost-1_41/boost/format/exceptions.hpp"; sourceTree = ""; }; ED7CFAEA1294286100DB052B /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDBAC4C011FF5AD3002B7162 /* biascorrection.h */; name = "biascorrection.h: 71"; rLen = 0; rLoc = 2034; rType = 0; vrLen = 1171; vrLoc = 1468; }; EDA5150010C72929000A4F41 /* Source Control */ = { isa = PBXSourceControlManager; fallbackIsa = XCSourceControlManager; isSCMEnabled = 0; scmConfiguration = { repositoryNamesForRoots = { "" = "SR Trac"; }; }; }; EDA5150110C72929000A4F41 /* Code sense */ = { isa = PBXCodeSenseManager; indexTemplatePath = ""; }; EDA5150910C72963000A4F41 /* abundances.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1118, 6045}}"; sepNavSelRange = "{4600, 9}"; sepNavVisRange = "{3906, 1089}"; }; }; EDA5150A10C72963000A4F41 /* assemble.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {654, 650}}"; sepNavSelRange = "{0, 0}"; sepNavVisRange = "{0, 844}"; }; }; EDA5150B10C72963000A4F41 /* bundles.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1020, 8632}}"; sepNavSelRange = "{2226, 0}"; sepNavVisRange = "{1684, 1237}"; }; }; EDA5150C10C72963000A4F41 /* codons.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1084, 663}}"; sepNavSelRange = "{0, 0}"; sepNavVisRange = "{0, 795}"; }; }; EDA5150D10C72963000A4F41 /* common.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {852, 3640}}"; sepNavSelRange = "{7402, 0}"; sepNavVisRange = "{5413, 1998}"; }; }; EDA5150E10C72963000A4F41 /* filters.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {662, 585}}"; sepNavSelRange = "{928, 5}"; sepNavVisRange = "{0, 968}"; }; }; EDA5151010C72963000A4F41 /* GBase.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1132, 5473}}"; sepNavSelRange = "{7541, 0}"; sepNavVisRange = "{7070, 1033}"; }; }; EDA5151210C72963000A4F41 /* genes.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1132, 2028}}"; sepNavSelRange = "{800, 15}"; sepNavVisRange = "{245, 1229}"; }; }; EDA5151310C72963000A4F41 /* GFaSeqGet.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {861, 1391}}"; sepNavSelRange = "{1468, 12}"; sepNavVisRange = "{1179, 919}"; }; }; EDA5151510C72963000A4F41 /* gff.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {747, 11011}}"; sepNavSelRange = "{8355, 6}"; sepNavVisRange = "{7906, 1526}"; }; }; EDA5151710C72963000A4F41 /* gtf_tracking.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {705, 15639}}"; sepNavSelRange = "{23139, 3}"; sepNavVisRange = "{85, 950}"; }; }; EDA5151810C72963000A4F41 /* hits.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {845, 12480}}"; sepNavSelRange = "{3093, 8}"; sepNavVisRange = "{2587, 821}"; sepNavWindowFrame = "{{15, 615}, {750, 558}}"; }; }; EDA5151910C72963000A4F41 /* scaffolds.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {662, 8749}}"; sepNavSelRange = "{4712, 6}"; sepNavVisRange = "{4559, 841}"; }; }; EDA5151A10C72963000A4F41 /* tokenize.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {845, 719}}"; sepNavSelRange = "{380, 0}"; sepNavVisRange = "{0, 417}"; }; }; EDA5151B10C72963000A4F41 /* transitive_closure.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {845, 5096}}"; sepNavSelRange = "{4199, 5}"; sepNavVisRange = "{3205, 1910}"; }; }; EDA5151C10C72963000A4F41 /* GHash.hh */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {662, 6565}}"; sepNavSelRange = "{4533, 5}"; sepNavVisRange = "{3766, 1765}"; }; }; EDA5151D10C72963000A4F41 /* GList.hh */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1132, 14742}}"; sepNavSelRange = "{20676, 0}"; sepNavVisRange = "{20108, 862}"; }; }; EDA5151E10C72963000A4F41 /* abundances.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {880, 25415}}"; sepNavSelRange = "{7849, 45}"; sepNavVisRange = "{7505, 1563}"; }; }; EDA5151F10C72963000A4F41 /* assemble.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {951, 7644}}"; sepNavSelRange = "{4744, 36}"; sepNavVisRange = "{5633, 728}"; sepNavWindowFrame = "{{56, 0}, {1224, 778}}"; }; }; EDA5152010C72963000A4F41 /* bundles.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1017, 20930}}"; sepNavSelRange = "{4607, 0}"; sepNavVisRange = "{4608, 683}"; }; }; EDA5152110C72963000A4F41 /* codons.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {845, 962}}"; sepNavSelRange = "{0, 0}"; sepNavVisRange = "{0, 3657}"; }; }; EDA5152210C72963000A4F41 /* common.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {866, 4576}}"; sepNavSelRange = "{798, 0}"; sepNavVisRange = "{410, 1245}"; }; }; EDA5152310C72963000A4F41 /* cuffcompare.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1167, 32825}}"; sepNavSelRange = "{11662, 0}"; sepNavVisRange = "{10667, 2154}"; }; }; EDA5152410C72963000A4F41 /* cuffdiff.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1216, 16562}}"; sepNavSelRange = "{13672, 19}"; sepNavVisRange = "{13345, 770}"; }; }; EDA5152510C72963000A4F41 /* cufflinks.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1002, 17082}}"; sepNavSelRange = "{20436, 0}"; sepNavVisRange = "{0, 638}"; }; }; EDA5152610C72963000A4F41 /* filters.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {880, 13338}}"; sepNavSelRange = "{28447, 0}"; sepNavVisRange = "{27593, 1534}"; }; }; EDA5152710C72963000A4F41 /* GArgs.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {939, 3367}}"; sepNavSelRange = "{0, 0}"; sepNavVisRange = "{115, 1213}"; }; }; EDA5152810C72963000A4F41 /* GBase.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {846, 8008}}"; sepNavSelRange = "{449, 37}"; sepNavVisRange = "{353, 1048}"; }; }; EDA5152A10C72963000A4F41 /* genes.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1419, 1495}}"; sepNavSelRange = "{2215, 9}"; sepNavVisRange = "{408, 1088}"; }; }; EDA5152B10C72963000A4F41 /* GFaSeqGet.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {939, 3848}}"; sepNavSelRange = "{948, 12}"; sepNavVisRange = "{1858, 1226}"; }; }; EDA5152C10C72963000A4F41 /* gff.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {943, 17147}}"; sepNavSelRange = "{20913, 0}"; sepNavVisRange = "{20451, 902}"; }; }; EDA5152D10C72963000A4F41 /* GStr.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {859, 16757}}"; sepNavSelRange = "{0, 0}"; sepNavVisRange = "{0, 818}"; }; }; EDA5152E10C72963000A4F41 /* gtf_reads.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {670, 2353}}"; sepNavSelRange = "{2396, 0}"; sepNavVisRange = "{1704, 1284}"; }; }; EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1084, 7748}}"; sepNavSelRange = "{15301, 0}"; sepNavVisRange = "{14452, 1332}"; }; }; EDA5153010C72963000A4F41 /* hits.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {859, 11713}}"; sepNavSelRange = "{13884, 0}"; sepNavVisRange = "{7836, 779}"; }; }; EDA5153110C72963000A4F41 /* scaffolds.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {951, 19591}}"; sepNavSelRange = "{37749, 0}"; sepNavVisRange = "{35854, 962}"; }; }; EDA5153210C72963000A4F41 /* tokenize.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {802, 764}}"; sepNavSelRange = "{0, 0}"; sepNavVisRange = "{0, 1223}"; }; }; EDA5B99312F6599F005AEC09 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDE78BC411B716C3000F8846 /* matching_merge.cpp */; name = "matching_merge.cpp: 1"; rLen = 0; rLoc = 0; rType = 0; vrLen = 773; vrLoc = 0; }; EDACE430114EFF5C009024DB /* differential.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {951, 3874}}"; sepNavSelRange = "{858, 24}"; sepNavVisRange = "{906, 696}"; }; }; EDACE431114EFF5C009024DB /* differential.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {782, 10322}}"; sepNavSelRange = "{771, 6}"; sepNavVisRange = "{478, 1424}"; }; }; EDACE438114F031B009024DB /* clustering.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1084, 1885}}"; sepNavSelRange = "{685, 0}"; sepNavVisRange = "{2026, 1419}"; }; }; EDACE439114F031B009024DB /* clustering.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {911, 1833}}"; sepNavSelRange = "{0, 0}"; sepNavVisRange = "{464, 988}"; }; }; EDAE42851298369000F35B48 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDBAC4BF11FF5AD3002B7162 /* biascorrection.cpp */; name = "biascorrection.cpp: 669"; rLen = 0; rLoc = 18761; rType = 0; vrLen = 1361; vrLoc = 17949; }; EDBAC4BF11FF5AD3002B7162 /* biascorrection.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {728, 10140}}"; sepNavSelRange = "{18761, 0}"; sepNavVisRange = "{17949, 1361}"; }; }; EDBAC4C011FF5AD3002B7162 /* biascorrection.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {845, 1287}}"; sepNavSelRange = "{2034, 0}"; sepNavVisRange = "{1468, 1171}"; }; }; EDBBA10211DA433F0015175B /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5151210C72963000A4F41 /* genes.h */; name = "genes.h: 121"; rLen = 5; rLoc = 2683; rType = 0; vrLen = 1027; vrLoc = 2186; }; EDBBA3FA11DD8E140015175B /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5153210C72963000A4F41 /* tokenize.cpp */; name = "tokenize.cpp: 1"; rLen = 0; rLoc = 0; rType = 0; vrLen = 1223; vrLoc = 0; }; EDBBE9C811AA3F5E006AC14A /* transitive_reduction.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {751, 1690}}"; sepNavSelRange = "{4405, 0}"; sepNavVisRange = "{876, 2560}"; }; }; EDBCDD4B1235E4090050A8E4 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDBCDD4C1235E4090050A8E4 /* checked_delete.hpp */; name = "checked_delete.hpp: 34"; rLen = 0; rLoc = 895; rType = 0; vrLen = 614; vrLoc = 618; }; EDBCDD4C1235E4090050A8E4 /* checked_delete.hpp */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = checked_delete.hpp; path = "/usr/local/include/boost-1_41/boost/checked_delete.hpp"; sourceTree = ""; }; EDBCDD4D1235E4090050A8E4 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDBCDD4E1235E4090050A8E4 /* sp_counted_impl.hpp */; name = "sp_counted_impl.hpp: 78"; rLen = 0; rLoc = 1917; rType = 0; vrLen = 555; vrLoc = 1679; }; EDBCDD4E1235E4090050A8E4 /* sp_counted_impl.hpp */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = sp_counted_impl.hpp; path = "/usr/local/include/boost-1_41/boost/smart_ptr/detail/sp_counted_impl.hpp"; sourceTree = ""; }; EDBCDDFB1235EEB60050A8E4 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDFE38AC12298E3400F24CD3 /* sp_counted_base_gcc_x86.hpp */; name = "sp_counted_base_gcc_x86.hpp: 133"; rLen = 0; rLoc = 2707; rType = 0; vrLen = 807; vrLoc = 2328; }; EDBCDDFC1235EEB60050A8E4 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDBEA60411EA75CD00C661A7 /* shared_count.hpp */; name = "shared_count.hpp: 223"; rLen = 0; rLoc = 4802; rType = 0; vrLen = 675; vrLoc = 4534; }; EDBCDF80123721790050A8E4 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5152810C72963000A4F41 /* GBase.cpp */; name = "GBase.cpp: 15"; rLen = 37; rLoc = 449; rType = 0; vrLen = 1048; vrLoc = 353; }; EDBEA60411EA75CD00C661A7 /* shared_count.hpp */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = shared_count.hpp; path = "/usr/local/include/boost-1_41/boost/smart_ptr/detail/shared_count.hpp"; sourceTree = ""; }; EDBEA60611EA75CD00C661A7 /* stl_iterator.h */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = stl_iterator.h; path = "/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/stl_iterator.h"; sourceTree = ""; }; EDC57A9512F7CC9F00493081 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5151F10C72963000A4F41 /* assemble.cpp */; name = "assemble.cpp: 201"; rLen = 36; rLoc = 4744; rType = 0; vrLen = 1463; vrLoc = 4729; }; EDC57AC912F7D53300493081 /* cufflinks.cpp:483 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152510C72963000A4F41 /* cufflinks.cpp */; functionName = "pseudohits_from_ref(vector >& ref_scaffs, vector& pseudohits, int hit_len)"; hitCount = 0; ignoreCount = 0; lineNumber = 483; location = cufflinks; modificationTime = 319317165.205485; originalNumberOfMultipleMatches = 1; state = 2; }; EDC57ACD12F7D56A00493081 /* scaffolds.cpp:539 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5153110C72963000A4F41 /* scaffolds.cpp */; functionName = "Scaffold::sub_scaffold(Scaffold& sub_scaff, int g_left, int match_length)"; hitCount = 0; ignoreCount = 0; lineNumber = 539; location = cufflinks; modificationTime = 319317165.205942; originalNumberOfMultipleMatches = 1; state = 2; }; EDC57AE012F7D66C00493081 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDC57AE112F7D66C00493081 /* shared_ptr.hpp */; name = "shared_ptr.hpp: 418"; rLen = 0; rLoc = 10346; rType = 0; vrLen = 750; vrLoc = 9887; }; EDC57AE112F7D66C00493081 /* shared_ptr.hpp */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = shared_ptr.hpp; path = /usr/local/include/boost/smart_ptr/shared_ptr.hpp; sourceTree = ""; }; EDC57AE812F8578000493081 /* cufflinks.cpp:543 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152510C72963000A4F41 /* cufflinks.cpp */; functionName = "scaffolds_for_bundle(const HitBundle& bundle, vector >& scaffolds, vector >* ref_scaffs = NULL, BundleStats* stats = NULL)"; hitCount = 0; ignoreCount = 0; lineNumber = 543; location = cufflinks; modificationTime = 319317165.206342; originalNumberOfMultipleMatches = 1; state = 2; }; EDC57AEE12F857FF00493081 /* filters.cpp:506 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "filter_hits(int bundle_length, int bundle_left, vector& hits)"; hitCount = 0; ignoreCount = 0; lineNumber = 506; location = cufflinks; modificationTime = 319317165.206833; originalNumberOfMultipleMatches = 1; state = 2; }; EDC57AF312F8580200493081 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDBEA60611EA75CD00C661A7 /* stl_iterator.h */; name = "stl_iterator.h: 653"; rLen = 0; rLoc = 20926; rType = 0; vrLen = 1260; vrLoc = 20301; }; EDC57AF612F8580200493081 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5150B10C72963000A4F41 /* bundles.h */; name = "bundles.h: 82"; rLen = 0; rLoc = 2226; rType = 0; vrLen = 1237; vrLoc = 1684; }; EDC57B0C12F859B500493081 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5151910C72963000A4F41 /* scaffolds.h */; name = "scaffolds.h: 204"; rLen = 6; rLoc = 4712; rType = 0; vrLen = 841; vrLoc = 4559; }; EDC57B1212F85B6E00493081 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5153110C72963000A4F41 /* scaffolds.cpp */; name = "scaffolds.cpp: 1417"; rLen = 0; rLoc = 36434; rType = 0; vrLen = 1537; vrLoc = 36099; }; EDC58391130833E90013090E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDACE431114EFF5C009024DB /* differential.cpp */; name = "differential.cpp: 35"; rLen = 6; rLoc = 771; rType = 0; vrLen = 1424; vrLoc = 478; }; EDC58392130833E90013090E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 0ACD78C612E6647B00310E07 /* update_check.h */; name = "update_check.h: 86"; rLen = 32; rLoc = 2052; rType = 0; vrLen = 1451; vrLoc = 1052; }; EDC58393130833E90013090E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5151510C72963000A4F41 /* gff.h */; name = "gff.h: 328"; rLen = 6; rLoc = 8355; rType = 0; vrLen = 1526; vrLoc = 7906; }; EDC58394130833E90013090E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5152310C72963000A4F41 /* cuffcompare.cpp */; rLen = 11; rLoc = 11530; rType = 0; }; EDC583B21308455A0013090E /* cufflinks.cpp:646 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152510C72963000A4F41 /* cufflinks.cpp */; functionName = "scaffolds_for_bundle(const HitBundle& bundle, vector >& scaffolds, vector >* ref_scaffs = NULL, BundleStats* stats = NULL)"; hitCount = 0; ignoreCount = 0; lineNumber = 646; location = cufflinks; modificationTime = 319317165.208697; originalNumberOfMultipleMatches = 1; state = 2; }; EDC583B6130845640013090E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5150E10C72963000A4F41 /* filters.h */; name = "filters.h: 39"; rLen = 5; rLoc = 928; rType = 0; vrLen = 968; vrLoc = 0; }; EDC583B7130845640013090E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5151C10C72963000A4F41 /* GHash.hh */; name = "GHash.hh: 108"; rLen = 5; rLoc = 4533; rType = 0; vrLen = 1765; vrLoc = 3766; }; EDC583C0130847140013090E /* filters.cpp:867 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "clip_by_3_prime_dropoff(Scaffold& scaff)"; hitCount = 0; ignoreCount = 0; lineNumber = 867; location = cufflinks; modificationTime = 319317165.209119; originalNumberOfMultipleMatches = 1; state = 2; }; EDC583CA130853530013090E /* filters.cpp:897 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "clip_by_3_prime_dropoff(Scaffold& scaff)"; hitCount = 0; ignoreCount = 0; lineNumber = 897; location = cufflinks; modificationTime = 319317165.209418; originalNumberOfMultipleMatches = 1; state = 2; }; EDC583F0130855740013090E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = ED79DCDB12AC63F200ABC8B3 /* stl_vector.h */; name = "stl_vector.h: 478"; rLen = 0; rLoc = 16903; rType = 0; vrLen = 1624; vrLoc = 16136; }; EDC583F41308558F0013090E /* filters.cpp:936 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "clip_by_3_prime_dropoff(Scaffold& scaff)"; hitCount = 0; ignoreCount = 0; lineNumber = 936; location = cufflinks; modificationTime = 319317165.209702; originalNumberOfMultipleMatches = 1; state = 2; }; EDC583FF130855D10013090E /* filters.cpp:927 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "clip_by_3_prime_dropoff(Scaffold& scaff)"; hitCount = 0; ignoreCount = 0; lineNumber = 927; location = cufflinks; modificationTime = 319317165.210135; originalNumberOfMultipleMatches = 1; state = 2; }; EDC58405130856060013090E /* filters.cpp:916 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "clip_by_3_prime_dropoff(Scaffold& scaff)"; hitCount = 0; ignoreCount = 0; lineNumber = 916; location = cufflinks; modificationTime = 319317165.210451; originalNumberOfMultipleMatches = 1; state = 2; }; EDC5840D130856B00013090E /* filters.cpp:931 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "clip_by_3_prime_dropoff(Scaffold& scaff)"; hitCount = 0; ignoreCount = 0; lineNumber = 931; location = cufflinks; modificationTime = 319317165.210683; originalNumberOfMultipleMatches = 1; state = 2; }; EDC5843C130859F80013090E /* filters.cpp:894 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "clip_by_3_prime_dropoff(Scaffold& scaff)"; hitCount = 0; ignoreCount = 0; lineNumber = 894; location = cufflinks; modificationTime = 319317165.210957; originalNumberOfMultipleMatches = 1; state = 2; }; EDC5844A13085AD90013090E /* filters.cpp:930 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "clip_by_3_prime_dropoff(Scaffold& scaff)"; hitCount = 0; ignoreCount = 0; lineNumber = 930; location = cufflinks; modificationTime = 319317165.211209; originalNumberOfMultipleMatches = 1; state = 2; }; EDC5845C13085BDA0013090E /* filters.cpp:912 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "clip_by_3_prime_dropoff(Scaffold& scaff)"; hitCount = 0; ignoreCount = 0; lineNumber = 912; location = cufflinks; modificationTime = 319317165.21152; originalNumberOfMultipleMatches = 1; state = 2; }; EDC584A8130863A20013090E /* filters.cpp:985 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "clip_by_3_prime_dropoff(Scaffold& scaff)"; hitCount = 0; ignoreCount = 0; lineNumber = 985; location = cufflinks; modificationTime = 319317165.211774; originalNumberOfMultipleMatches = 1; state = 2; }; EDC584AC130863FE0013090E /* filters.cpp:992 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152610C72963000A4F41 /* filters.cpp */; functionName = "clip_by_3_prime_dropoff(Scaffold& scaff)"; hitCount = 0; ignoreCount = 0; lineNumber = 992; location = cufflinks; modificationTime = 319317165.212033; originalNumberOfMultipleMatches = 1; state = 2; }; EDC584BD130865E80013090E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5152610C72963000A4F41 /* filters.cpp */; name = "filters.cpp: 965"; rLen = 0; rLoc = 28447; rType = 0; vrLen = 1534; vrLoc = 27593; }; EDC584C5130866820013090E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5152210C72963000A4F41 /* common.cpp */; name = "common.cpp: 46"; rLen = 0; rLoc = 798; rType = 0; vrLen = 1245; vrLoc = 410; }; EDC584C6130866820013090E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5150D10C72963000A4F41 /* common.h */; name = "common.h: 311"; rLen = 0; rLoc = 7402; rType = 0; vrLen = 1998; vrLoc = 5413; }; EDC584C7130866820013090E /* XCBuildMessageTextBookmark */ = { isa = PBXTextBookmark; comments = "'OPT_3_PRIME_DROPOFF_FRAC' was not declared in this scope"; fRef = EDA5152510C72963000A4F41 /* cufflinks.cpp */; fallbackIsa = XCBuildMessageTextBookmark; rLen = 0; rLoc = 293; rType = 1; }; EDC584C913087F870013090E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5152510C72963000A4F41 /* cufflinks.cpp */; name = "cufflinks.cpp: 294"; rLen = 0; rLoc = 11409; rType = 0; vrLen = 1066; vrLoc = 10672; }; EDD0CD9D10C72AC200AF308F /* cufflinks */ = { isa = PBXExecutable; activeArgIndices = ( NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, YES, YES, ); argumentStrings = ( "--max-mle-iterations 4", "--num-importance-samples 100", "-G MB8_plus_exons.cannonical_chr_names.gtf", tsr.sam, "-F 0.0", "-j 0.25", "-m 194", Y3_FYB.sam, "--output-dir test_dir", "--collapse-thresh 30", short.sam, "-m 100", "-j 0.05", "-F 0.05", nanog.sam, Y4_IL7R.sam, long.sam, Tpm3.sam, segfault.sam, Th17_2_C6orf125.sam, "-o perfect_abund -G mm9_chr123.gtf sim.sam", "-s 40", "-m 50", large.sam, "-G dmel-all-no-analysis-r5.12.no_ops_strand_exons.gtf", tophat_out_090428_Graveley_lane2_accepted_hits.sam, fixed.sam, Fubp1.sam, mega_bundle_2.sam, Fhl3.sam, Fn1.sam, mega_bundle_1.sam, Nek2.sam, Lypla1.sam, adipose_snippet.sam, yyy.sam, "-s 30", adh_cluster.sam, Pfkfb2.sam, Lgtn.sam, "-G gtf4.gtf", delme7.sam, tophat_out/accepted_hits.bam, accepted_hits.bam, chr1_307200_308260.no_splicing.sam, chr1_307200_308260.sam, PEchr1MinQV15_15e6.sam, PEchr1MinQV15_15e6.bam, "-o perfect_abund -G mm9_chr123.gtf -p 6 fixed.sam", "-G sample.gtf", "-s 4000", "-i 10", "-m 169", "-m 165", "-G SMTN_asm.gtf", SMTN.bam, "-M mask.gtf", xxx.bam, "--library-type solid-fragment", /Volumes/Abel/wt.sr.bam, "-j 0.05", "-F 0.0", "-F 0.0", "Xist-breast.bam", "Xist-ovary.bam", "-o xxx", "-G Homo_sapiens.GRCh37.58.name=id.gtf chr19.sam", IgH.bam, "-o perfect_abund -G mm9_chr123.gtf -p 1 sim.sam", sim.sam, "-G hg18-refGene.gtf", assembly.sorted.bam, "--overhang-tolerance 150", xxx.sam, SAMD11_NOC2L.bam, "-F 0.0", "-G mm9_chr123.gtf", "-G small.gtf", small.sam, "-G ref_genes.gtf", sim.bam, sim.sam, adh_cluster.sam, "-j 0.0", TMEM161B.bam, AHNAK.sam, ORM1_ORM2.bam, tiny.sam, "--min-frags-per-transfrag 15", small_solid.bam, NOC2L_solid.bam, mega_bundle.bam, xxx.sam, chr1.top100k.blat.sam, O16_18.trim.bam, "--verbose", "-G ginormous.100806.gtf header", "--min-frags-per-transfrag 0", "--min-intron-length 20", atpase.sam, alignments.sam, deletions.sam, DUF221_family_protein, "--min-frags-per-transfrag 0", "--library-type=fr-firststrand", "CTCF-locus-H1-hESC-WC-PolyA-005WC+.sam", yyy.sam, "-A 0.0 -j 0.0 -F 0.0 --library-type=transfrags xxx.sam", "-A 0.0 -j 0.0 -F 0.0 --library-type=transfrags allGTFsam_chr14.sam", "-G chr19_metaAsm.gtf colon_chr19.2.bam\t", "-G htt.gtf htt.sam", "--GTF-guide 174mb.gtf 174mb.sam", "--trim-3-avgcov-thresh 10000.0", GNA12.bam, ); autoAttachOnCrash = 1; breakpointsEnabled = 1; configStateDict = { "PBXLSLaunchAction-0" = { PBXLSLaunchAction = 0; PBXLSLaunchStartAction = 1; PBXLSLaunchStdioStyle = 2; PBXLSLaunchStyle = 0; class = PBXLSRunLaunchConfig; commandLineArgs = ( ); displayName = "Executable Runner"; environment = { }; identifier = com.apple.Xcode.launch.runConfig; remoteHostInfo = ""; startActionInfo = ""; }; }; customDataFormattersEnabled = 1; dataTipCustomDataFormattersEnabled = 1; dataTipShowTypeColumn = 1; dataTipSortType = 0; debuggerPlugin = GDBDebugging; disassemblyDisplayState = 0; dylibVariantSuffix = ""; enableDebugStr = 1; environmentEntries = ( ); executableSystemSymbolLevel = 0; executableUserSymbolLevel = 0; libgmallocEnabled = 0; name = cufflinks; savedGlobals = { }; showTypeColumn = 0; sourceDirectories = ( ); startupPath = /Users/cole/develop/cufflinks/tests/3prime_testing/hit_driven_0.5/GNA12; variableFormatDictionary = { }; }; EDD0CE0810C72F7D00AF308F /* cuffdiff */ = { activeExec = 0; executables = ( EDD0CE2310C72F7D00AF308F /* cuffdiff */, ); }; EDD0CE2310C72F7D00AF308F /* cuffdiff */ = { isa = PBXExecutable; activeArgIndices = ( NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, YES, NO, NO, NO, NO, NO, NO, NO, ); argumentStrings = ( "-c 10", "--num-importance-samples 10000", "--max-mle-iterations 4", "-c 5000 ref_genes.gtf sim.sam sim.sam", sample1/tophat_out/accepted_hits.sam, sample2/tophat_out/accepted_hits.sam, consensus.gtf, Neu.gtf, exp.sam, 60hr.sam, 5day.sam, 7day.sam, "-o xxx_out", SAA2.exon.gtf, control1.sam, control1.shadow.sam, transcripts.gtf, "SMTN.bam,SMTN.bam", "SMTN.bam,SMTN.bam", "mm9_chr123.gtf sim.sam,tmp/sim_replicate_1.sam tmp/sim_replicate_3.sam,tmp/sim_replicate_3.sam", " -o YYY mm9_chr123.gtf xxx.sam xxx.sam", "-p 1 mm9_chr123.gtf sim.sam tmp/sim_replicate_1.sam", "-L rep1,rep2 -o replicate_diff -p 2 ref_genes.gtf sim.sam sim.sam", "-c 0 --FDR 1.0 mm9_chr123.gtf xxx.sam xxx.sam", "mm9_chr123.gtf sim.bam sim.bam", "-p 2 -o replicate_diff mm9_chr123.gtf sim.sam tmp/sim_replicate_1.sam", "tested_transcriptome.gtf sim.sam sim.sam", "Ensembl.gtf adipose.bam.mitch.bam kidney.bam.mitch.bam", "Ensembl.gtf adipose.bam.mitch.bam kidney.bam.mitch.bam skeletal-muscle.bam.mitch.bam adrenal.bam.mitch.bam liver.bam.mitch.bam testes.bam.mitch.bam brain.bam.mitch.bam lung.bam.mitch.bam thyroid.bam.mitch.bam breast.bam.mitch.bam lymph-node.bam.mitch.bam white-blood-cells.bam.mitch.bam colon.bam.mitch.bam ovary.bam.mitch.bam heart.bam.mitch.bam prostate.bam.mitch.bam", "--min-alignment-count 100 Vkorc1.gtf BAT_D0_Vkorc1.bam BAT_D8_Vkorc1.bam", "-c 100 AK079912.1.gtf AK079912_Sub_D0.bam AK079912_Sub_D8.bam", ); autoAttachOnCrash = 1; breakpointsEnabled = 1; configStateDict = { "PBXLSLaunchAction-0" = { PBXLSLaunchAction = 0; PBXLSLaunchStartAction = 1; PBXLSLaunchStdioStyle = 2; PBXLSLaunchStyle = 0; class = PBXLSRunLaunchConfig; commandLineArgs = ( ); displayName = "Executable Runner"; environment = { }; identifier = com.apple.Xcode.launch.runConfig; remoteHostInfo = ""; startActionInfo = ""; }; }; customDataFormattersEnabled = 1; dataTipCustomDataFormattersEnabled = 1; dataTipShowTypeColumn = 1; dataTipSortType = 0; debuggerPlugin = GDBDebugging; disassemblyDisplayState = 0; dylibVariantSuffix = ""; enableDebugStr = 1; environmentEntries = ( ); executableSystemSymbolLevel = 0; executableUserSymbolLevel = 0; libgmallocEnabled = 0; name = cuffdiff; savedGlobals = { }; showTypeColumn = 0; sourceDirectories = ( ); startupPath = "/Users/cole/develop/simulations/RNA-Seq/mm9_small"; variableFormatDictionary = { }; }; EDD6A7A0115562EE00D3F668 /* Makefile.am */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {662, 1820}}"; sepNavSelRange = "{2798, 0}"; sepNavVisRange = "{1957, 1171}"; }; }; EDD6A9BA11598AB900D3F668 /* cuffcompare */ = { activeExec = 0; executables = ( EDD6A9D611598ABA00D3F668 /* cuffcompare */, ); }; EDD6A9D611598ABA00D3F668 /* cuffcompare */ = { isa = PBXExecutable; activeArgIndices = ( NO, NO, NO, NO, NO, NO, YES, ); argumentStrings = ( "-r NCBI36.48.short.gtf", NCBI36.48.short.gtf, y1_short.gtf, y2_short.gtf, "-r MB8_plus_exons.cannonical_chr_names.gtf", transcripts.gtf, "-r gencode_v4.annotation.GRCh37.gtf -s ./ -o pooled -d 600 lymph-node.gtf", ); autoAttachOnCrash = 1; breakpointsEnabled = 1; configStateDict = { "PBXLSLaunchAction-0" = { PBXLSLaunchAction = 0; PBXLSLaunchStartAction = 1; PBXLSLaunchStdioStyle = 2; PBXLSLaunchStyle = 0; class = PBXLSRunLaunchConfig; commandLineArgs = ( ); displayName = "Executable Runner"; environment = { }; identifier = com.apple.Xcode.launch.runConfig; remoteHostInfo = ""; startActionInfo = ""; }; }; customDataFormattersEnabled = 1; dataTipCustomDataFormattersEnabled = 1; dataTipShowTypeColumn = 1; dataTipSortType = 0; debuggerPlugin = GDBDebugging; disassemblyDisplayState = 0; dylibVariantSuffix = ""; enableDebugStr = 1; environmentEntries = ( ); executableSystemSymbolLevel = 0; executableUserSymbolLevel = 0; libgmallocEnabled = 0; name = cuffcompare; savedGlobals = { }; showTypeColumn = 0; sourceDirectories = ( ); startupPath = /Users/cole/tmp; variableFormatDictionary = { }; }; EDD6AA221159BA2E00D3F668 /* Unit Tests */ = { activeExec = 0; executables = ( EDD6AA241159BA2E00D3F668 /* Unit Tests */, ); }; EDD6AA241159BA2E00D3F668 /* Unit Tests */ = { isa = PBXExecutable; activeArgIndices = ( ); argumentStrings = ( ); autoAttachOnCrash = 1; breakpointsEnabled = 1; configStateDict = { }; customDataFormattersEnabled = 1; dataTipCustomDataFormattersEnabled = 1; dataTipShowTypeColumn = 1; dataTipSortType = 0; debuggerPlugin = GDBDebugging; disassemblyDisplayState = 0; dylibVariantSuffix = ""; enableDebugStr = 1; environmentEntries = ( ); executableSystemSymbolLevel = 0; executableUserSymbolLevel = 0; libgmallocEnabled = 0; name = "Unit Tests"; savedGlobals = { }; showTypeColumn = 0; sourceDirectories = ( ); }; EDD6AA461159BE6500D3F668 /* test_abundances.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {859, 358}}"; sepNavSelRange = "{147, 0}"; sepNavVisRange = "{0, 150}"; }; }; EDD6AA471159BE6500D3F668 /* test_main.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {914, 4615}}"; sepNavSelRange = "{1018, 0}"; sepNavVisRange = "{352, 1162}"; }; }; EDD94B461205C9E800AA1086 /* gtf_to_sam */ = { activeExec = 0; executables = ( EDD94CD31208E48B00AA1086 /* gtf_to_sam */, ); }; EDD94B711205CAF400AA1086 /* gtf_to_sam.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1069, 3146}}"; sepNavSelRange = "{3814, 12}"; sepNavVisRange = "{3290, 801}"; }; }; EDD94CD31208E48B00AA1086 /* gtf_to_sam */ = { isa = PBXExecutable; activeArgIndices = ( ); argumentStrings = ( ); autoAttachOnCrash = 1; breakpointsEnabled = 1; configStateDict = { }; customDataFormattersEnabled = 1; dataTipCustomDataFormattersEnabled = 1; dataTipShowTypeColumn = 1; dataTipSortType = 0; debuggerPlugin = GDBDebugging; disassemblyDisplayState = 0; dylibVariantSuffix = ""; enableDebugStr = 1; environmentEntries = ( ); executableSystemSymbolLevel = 0; executableUserSymbolLevel = 0; libgmallocEnabled = 0; name = gtf_to_sam; savedGlobals = { }; showTypeColumn = 0; sourceDirectories = ( ); }; EDDBF70912D29DF000130D8A /* cuffcluster.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1090, 12142}}"; sepNavSelRange = "{24115, 0}"; sepNavVisRange = "{23577, 1037}"; }; }; EDDBF71412D2BD4400130D8A /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDFE39FA122BE7B700F24CD3 /* jensen_shannon.cpp */; name = "jensen_shannon.cpp: 92"; rLen = 0; rLoc = 2132; rType = 0; vrLen = 955; vrLoc = 1806; }; EDDBF71512D2BD4400130D8A /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDEBCDF8112DFD7600E2479E /* configure.ac */; name = "configure.ac: 7"; rLen = 0; rLoc = 213; rType = 0; vrLen = 857; vrLoc = 0; }; EDDC69911304DBC100637B75 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDD6A7A0115562EE00D3F668 /* Makefile.am */; name = "Makefile.am: 133"; rLen = 0; rLoc = 2798; rType = 0; vrLen = 1171; vrLoc = 1957; }; EDDC69AA1304DCE000637B75 /* cuffdiff.cpp:435 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152410C72963000A4F41 /* cuffdiff.cpp */; functionName = "fdr_significance(double fdr, vector& tests)"; hitCount = 0; ignoreCount = 0; lineNumber = 435; location = cuffdiff; modificationTime = 319317165.207273; originalNumberOfMultipleMatches = 1; state = 2; }; EDDC69BF1304DEF800637B75 /* cuffdiff.cpp:458 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152410C72963000A4F41 /* cuffdiff.cpp */; functionName = "fdr_significance(double fdr, vector& tests)"; hitCount = 0; ignoreCount = 0; lineNumber = 458; modificationTime = 319317165.207641; originalNumberOfMultipleMatches = 1; state = 0; }; EDDC69C51304DF9000637B75 /* cuffdiff.cpp:452 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDA5152410C72963000A4F41 /* cuffdiff.cpp */; functionName = "fdr_significance(double fdr, vector& tests)"; hitCount = 0; ignoreCount = 0; lineNumber = 452; modificationTime = 319317165.207932; originalNumberOfMultipleMatches = 1; state = 0; }; EDDC69D41304E09600637B75 /* differential.cpp:28 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDACE431114EFF5C009024DB /* differential.cpp */; functionName = "test_diffexp(const FPKMContext& curr, const FPKMContext& prev, SampleDifference& test)"; hitCount = 0; ignoreCount = 0; lineNumber = 28; location = cuffdiff; modificationTime = 319317165.208195; originalNumberOfMultipleMatches = 1; state = 2; }; EDDC69EC1304E2C600637B75 /* differential.cpp:35 */ = { isa = PBXFileBreakpoint; actions = ( ); breakpointStyle = 0; continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; fileReference = EDACE431114EFF5C009024DB /* differential.cpp */; functionName = "test_diffexp(const FPKMContext& curr, const FPKMContext& prev, SampleDifference& test)"; hitCount = 0; ignoreCount = 0; lineNumber = 35; location = cuffdiff; modificationTime = 319317165.208446; originalNumberOfMultipleMatches = 1; state = 2; }; EDDC69F01304E2FC00637B75 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5152410C72963000A4F41 /* cuffdiff.cpp */; name = "cuffdiff.cpp: 452"; rLen = 19; rLoc = 13672; rType = 0; vrLen = 870; vrLoc = 13185; }; EDE78A2B11B5F4F0000F8846 /* graph_optimize.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {976, 1235}}"; sepNavSelRange = "{2174, 30}"; sepNavVisRange = "{1179, 1378}"; }; }; EDE78A2C11B5F4F0000F8846 /* graph_optimize.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1373, 9555}}"; sepNavSelRange = "{18780, 0}"; sepNavVisRange = "{2854, 910}"; sepNavWindowFrame = "{{58, 0}, {1222, 778}}"; }; }; EDE78A7811B6E912000F8846 /* scaffold_graph.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {996, 697}}"; sepNavSelRange = "{372, 0}"; sepNavVisRange = "{0, 1012}"; }; }; EDE78A7911B6E912000F8846 /* scaffold_graph.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1132, 4095}}"; sepNavSelRange = "{3213, 5}"; sepNavVisRange = "{2490, 1557}"; }; }; EDE78BC411B716C3000F8846 /* matching_merge.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {662, 1352}}"; sepNavSelRange = "{0, 0}"; sepNavVisRange = "{0, 773}"; }; }; EDE78BC511B716C3000F8846 /* matching_merge.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {654, 1482}}"; sepNavSelRange = "{2680, 14}"; sepNavVisRange = "{1739, 1080}"; }; }; EDEBCDF8112DFD7600E2479E /* configure.ac */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {728, 1937}}"; sepNavSelRange = "{213, 0}"; sepNavVisRange = "{0, 857}"; }; }; EDFDE77312BEA9100044EDD0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDACE430114EFF5C009024DB /* differential.h */; name = "differential.h: 130"; rLen = 8; rLoc = 2989; rType = 0; vrLen = 1063; vrLoc = 2462; }; EDFDE78F12BEACA20044EDD0 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5152010C72963000A4F41 /* bundles.cpp */; name = "bundles.cpp: 189"; rLen = 0; rLoc = 4607; rType = 0; vrLen = 872; vrLoc = 5236; }; EDFE38AC12298E3400F24CD3 /* sp_counted_base_gcc_x86.hpp */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = sp_counted_base_gcc_x86.hpp; path = "/usr/local/include/boost-1_41/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp"; sourceTree = ""; }; EDFE393512299AE500F24CD3 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5151B10C72963000A4F41 /* transitive_closure.h */; name = "transitive_closure.h: 136"; rLen = 5; rLoc = 4199; rType = 0; vrLen = 1910; vrLoc = 3205; }; EDFE39AF122BE4F400F24CD3 /* sorting_hat.cpp */ = { isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sorting_hat.cpp; path = /Users/cole/develop/cufflinks/src/sorting_hat.cpp; sourceTree = ""; }; EDFE39B0122BE65600F24CD3 /* cuffcluster */ = { activeExec = 0; executables = ( EDFE39CF122BE65600F24CD3 /* cuffcluster */, ); }; EDFE39CF122BE65600F24CD3 /* cuffcluster */ = { isa = PBXExecutable; activeArgIndices = ( NO, YES, YES, YES, YES, YES, NO, NO, ); argumentStrings = ( "--log-fpkm", "--max-iterations 150", "-k 3", "--row-densities 2cond.densities", 2cond.fpkm_tracking, 2cond.sorting_hat_out, xxx.fpkm_tracking, xxx.sorting_hat_out, ); autoAttachOnCrash = 1; breakpointsEnabled = 1; configStateDict = { "PBXLSLaunchAction-0" = { PBXLSLaunchAction = 0; PBXLSLaunchStartAction = 1; PBXLSLaunchStdioStyle = 2; PBXLSLaunchStyle = 0; class = PBXLSRunLaunchConfig; commandLineArgs = ( ); displayName = "Executable Runner"; environment = { }; identifier = com.apple.Xcode.launch.runConfig; remoteHostInfo = ""; startActionInfo = ""; }; }; customDataFormattersEnabled = 1; dataTipCustomDataFormattersEnabled = 1; dataTipShowTypeColumn = 1; dataTipSortType = 0; debuggerPlugin = GDBDebugging; disassemblyDisplayState = 0; dylibVariantSuffix = ""; enableDebugStr = 1; environmentEntries = ( ); executableSystemSymbolLevel = 0; executableUserSymbolLevel = 0; libgmallocEnabled = 0; name = cuffcluster; savedGlobals = { }; showTypeColumn = 0; sourceDirectories = ( ); startupPath = "/Users/cole/projects/Clone Wars/linc_db2_expression"; variableFormatDictionary = { }; }; EDFE39FA122BE7B700F24CD3 /* jensen_shannon.cpp */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {728, 2288}}"; sepNavSelRange = "{2132, 0}"; sepNavVisRange = "{1806, 955}"; }; }; EDFE39FD122BE7CB00F24CD3 /* jensen_shannon.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {845, 606}}"; sepNavSelRange = "{383, 0}"; sepNavVisRange = "{0, 832}"; }; }; EDFE3A0C122BE93000F24CD3 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5152110C72963000A4F41 /* codons.cpp */; name = "codons.cpp: 1"; rLen = 0; rLoc = 0; rType = 0; vrLen = 3657; vrLoc = 0; }; EDFE3A0D122BE93000F24CD3 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDA5151A10C72963000A4F41 /* tokenize.h */; name = "tokenize.h: 17"; rLen = 0; rLoc = 380; rType = 0; vrLen = 417; vrLoc = 0; }; EDFE3A5B122C04D700F24CD3 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = EDFE39FD122BE7CB00F24CD3 /* jensen_shannon.h */; name = "jensen_shannon.h: 18"; rLen = 0; rLoc = 383; rType = 0; vrLen = 832; vrLoc = 0; }; } ================================================ FILE: cufflinks.xcodeproj/cole.perspectivev3 ================================================ ActivePerspectiveName Project AllowedModules BundleLoadPath MaxInstances n Module PBXSmartGroupTreeModule Name Groups and Files Outline View BundleLoadPath MaxInstances n Module PBXNavigatorGroup Name Editor BundleLoadPath MaxInstances n Module XCTaskListModule Name Task List BundleLoadPath MaxInstances n Module XCDetailModule Name File and Smart Group Detail Viewer BundleLoadPath MaxInstances 1 Module PBXBuildResultsModule Name Detailed Build Results Viewer BundleLoadPath MaxInstances 1 Module PBXProjectFindModule Name Project Batch Find Tool BundleLoadPath MaxInstances n Module XCProjectFormatConflictsModule Name Project Format Conflicts List BundleLoadPath MaxInstances n Module PBXBookmarksModule Name Bookmarks Tool BundleLoadPath MaxInstances n Module PBXClassBrowserModule Name Class Browser BundleLoadPath MaxInstances n Module PBXCVSModule Name Source Code Control Tool BundleLoadPath MaxInstances n Module PBXDebugBreakpointsModule Name Debug Breakpoints Tool BundleLoadPath MaxInstances n Module XCDockableInspector Name Inspector BundleLoadPath MaxInstances n Module PBXOpenQuicklyModule Name Open Quickly Tool BundleLoadPath MaxInstances 1 Module PBXDebugSessionModule Name Debugger BundleLoadPath MaxInstances 1 Module PBXDebugCLIModule Name Debug Console BundleLoadPath MaxInstances n Module XCSnapshotModule Name Snapshots Tool BundlePath /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources Description AIODescriptionKey DockingSystemVisible Extension perspectivev3 FavBarConfig PBXProjectModuleGUID EDA514FF10C72929000A4F41 XCBarModuleItemNames XCBarModuleItems FirstTimeWindowDisplayed Identifier com.apple.perspectives.project.defaultV3 MajorVersion 34 MinorVersion 0 Name All-In-One Notifications OpenEditors PerspectiveWidths 1063 1063 Perspectives ChosenToolbarItems XCToolbarPerspectiveControl NSToolbarSeparatorItem active-combo-popup action active-architecture-popup active-executable-popup NSToolbarFlexibleSpaceItem debugger-enable-breakpoints build-and-go com.apple.ide.PBXToolbarStopButton get-info NSToolbarFlexibleSpaceItem com.apple.pbx.toolbar.searchfield ControllerClassBaseName IconName WindowOfProject Identifier perspective.project IsVertical Layout ContentConfiguration PBXBottomSmartGroupGIDs 1C37FBAC04509CD000000102 1C37FAAC04509CD000000102 1C37FABC05509CD000000102 1C37FABC05539CD112110102 E2644B35053B69B200211256 1C37FABC04509CD000100104 1CC0EA4004350EF90044410B 1CC0EA4004350EF90041110B 1C77FABC04509CD000000102 PBXProjectModuleGUID 1CA23ED40692098700951B8B PBXProjectModuleLabel Files PBXProjectStructureProvided yes PBXSmartGroupTreeModuleColumnData PBXSmartGroupTreeModuleColumnWidthsKey 267 PBXSmartGroupTreeModuleColumnsKey_v4 MainColumn PBXSmartGroupTreeModuleOutlineStateKey_v7 PBXSmartGroupTreeModuleOutlineStateExpansionKey 08FB7794FE84155DC02AAC07 0A25E74A1242E9270080BEA9 ED1C0C6D11D7D9C000CFD663 C6859E8C029090F304C91782 1C37FBAC04509CD000000102 1C37FAAC04509CD000000102 1C77FABC04509CD000000102 1C3E0DCA080725EA00A55177 PBXSmartGroupTreeModuleOutlineStateSelectionKey 23 5 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey {{0, 300}, {267, 914}} PBXTopSmartGroupGIDs XCIncludePerspectivesSwitch GeometryConfiguration Frame {{0, 0}, {284, 932}} GroupTreeTableConfiguration MainColumn 267 RubberWindowFrame 469 55 1063 973 0 0 1680 1028 Module PBXSmartGroupTreeModule Proportion 284pt Dock BecomeActive ContentConfiguration PBXProjectModuleGUID EDA514FA10C72929000A4F41 PBXProjectModuleLabel cufflinks.cpp PBXSplitModuleInNavigatorKey Split0 PBXProjectModuleGUID EDA514FB10C72929000A4F41 PBXProjectModuleLabel cufflinks.cpp _historyCapacity 0 bookmark EDC584C913087F870013090E history EDBBA10211DA433F0015175B EDBBA3FA11DD8E140015175B ED70726B11F79D170028F305 EDFE393512299AE500F24CD3 EDFE3A0C122BE93000F24CD3 EDFE3A0D122BE93000F24CD3 EDFE3A5B122C04D700F24CD3 ED291363122D32B500C3703E EDBCDD4B1235E4090050A8E4 EDBCDD4D1235E4090050A8E4 EDBCDDFB1235EEB60050A8E4 EDBCDDFC1235EEB60050A8E4 EDBCDF80123721790050A8E4 ED48339D12400ED100642337 ED48351812415CA300642337 ED4835AE12481D1900642337 ED7CFAE71294286100DB052B ED7CFAEA1294286100DB052B EDAE42851298369000F35B48 ED79DB8512A49C3400ABC8B3 ED79DC1E12AC5D4E00ABC8B3 ED79DC9912AC5F1A00ABC8B3 ED79DC9B12AC5F1A00ABC8B3 ED79DCB212AC629D00ABC8B3 EDFDE77312BEA9100044EDD0 EDFDE78F12BEACA20044EDD0 ED0E3EF212CB949000074D2E ED0E3F0712CB97B000074D2E EDDBF71412D2BD4400130D8A EDDBF71512D2BD4400130D8A EDA5B99312F6599F005AEC09 ED78C54112F52C6E00111993 EDC57A9512F7CC9F00493081 EDC57AE012F7D66C00493081 EDC57AF312F8580200493081 EDC57AF612F8580200493081 EDC57B0C12F859B500493081 EDC57B1212F85B6E00493081 EDDC69911304DBC100637B75 EDDC69F01304E2FC00637B75 EDC58391130833E90013090E EDC58392130833E90013090E EDC58393130833E90013090E EDC58394130833E90013090E EDC583B6130845640013090E EDC583B7130845640013090E EDC583F0130855740013090E EDC584BD130865E80013090E EDC584C5130866820013090E EDC584C6130866820013090E EDC584C7130866820013090E SplitCount 1 StatusBarVisibility XCSharingToken com.apple.Xcode.CommonNavigatorGroupSharingToken GeometryConfiguration Frame {{0, 0}, {774, 691}} RubberWindowFrame 469 55 1063 973 0 0 1680 1028 Module PBXNavigatorGroup Proportion 691pt Proportion 236pt Tabs ContentConfiguration PBXProjectModuleGUID 1CA23EDF0692099D00951B8B PBXProjectModuleLabel Detail GeometryConfiguration Frame {{10, 27}, {723, 209}} Module XCDetailModule ContentConfiguration PBXProjectModuleGUID 1CA23EE00692099D00951B8B PBXProjectModuleLabel Project Find GeometryConfiguration Frame {{10, 27}, {774, 209}} Module PBXProjectFindModule ContentConfiguration PBXCVSModuleFilterTypeKey 1032 PBXProjectModuleGUID 1CA23EE10692099D00951B8B PBXProjectModuleLabel SCM Results GeometryConfiguration Frame {{10, 27}, {1002, 287}} Module PBXCVSModule ContentConfiguration PBXProjectModuleGUID XCMainBuildResultsModuleGUID PBXProjectModuleLabel Build Results XCBuildResultsTrigger_Collapse 1021 XCBuildResultsTrigger_Open 1011 GeometryConfiguration Frame {{10, 27}, {774, 209}} RubberWindowFrame 469 55 1063 973 0 0 1680 1028 Module PBXBuildResultsModule Proportion 774pt Name Project ServiceClasses XCModuleDock PBXSmartGroupTreeModule XCModuleDock PBXNavigatorGroup XCDockableTabModule XCDetailModule PBXProjectFindModule PBXCVSModule PBXBuildResultsModule TableOfContents EDC583AB1308445A0013090E 1CA23ED40692098700951B8B EDC583AC1308445A0013090E EDA514FA10C72929000A4F41 EDC583AD1308445A0013090E 1CA23EDF0692099D00951B8B 1CA23EE00692099D00951B8B 1CA23EE10692099D00951B8B XCMainBuildResultsModuleGUID ToolbarConfigUserDefaultsMinorVersion 2 ToolbarConfiguration xcode.toolbar.config.defaultV3 ChosenToolbarItems XCToolbarPerspectiveControl NSToolbarSeparatorItem active-combo-popup NSToolbarFlexibleSpaceItem debugger-enable-breakpoints build-and-go com.apple.ide.PBXToolbarStopButton debugger-restart-executable debugger-pause debugger-step-over debugger-step-into debugger-step-out NSToolbarFlexibleSpaceItem servicesModulebreakpoints debugger-show-console-window ControllerClassBaseName PBXDebugSessionModule IconName DebugTabIcon Identifier perspective.debug IsVertical Layout ContentConfiguration PBXProjectModuleGUID 1CCC7628064C1048000F2A68 PBXProjectModuleLabel Debugger Console GeometryConfiguration Frame {{0, 0}, {1063, 267}} Module PBXDebugCLIModule Proportion 267pt ContentConfiguration Debugger HorizontalSplitView _collapsingFrameDimension 0.0 _indexOfCollapsedView 0 _percentageOfCollapsedView 0.0 isCollapsed yes sizes {{0, 0}, {498, 411}} {{498, 0}, {565, 411}} VerticalSplitView _collapsingFrameDimension 0.0 _indexOfCollapsedView 0 _percentageOfCollapsedView 0.0 isCollapsed yes sizes {{0, 0}, {1063, 411}} {{0, 411}, {1063, 310}} LauncherConfigVersion 8 PBXProjectModuleGUID 1CCC7629064C1048000F2A68 PBXProjectModuleLabel Debug GeometryConfiguration DebugConsoleVisible None DebugConsoleWindowFrame {{200, 200}, {500, 300}} DebugSTDIOWindowFrame {{200, 200}, {500, 300}} Frame {{0, 272}, {1063, 721}} PBXDebugSessionStackFrameViewKey DebugVariablesTableConfiguration Name 235 Value 85 Summary 220 Frame {{498, 0}, {565, 411}} Module PBXDebugSessionModule Proportion 721pt Name Debug ServiceClasses XCModuleDock PBXDebugCLIModule PBXDebugSessionModule PBXDebugProcessAndThreadModule PBXDebugProcessViewModule PBXDebugThreadViewModule PBXDebugStackFrameViewModule PBXNavigatorGroup TableOfContents EDC583F7130855A90013090E 1CCC7628064C1048000F2A68 1CCC7629064C1048000F2A68 EDC583F8130855A90013090E EDC583F9130855A90013090E EDC583FA130855A90013090E EDC583FB130855A90013090E EDA514FA10C72929000A4F41 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarConfiguration xcode.toolbar.config.debugV3 PerspectivesBarVisible ShelfIsVisible SourceDescription file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' StatusbarIsVisible TimeStamp 0.0 ToolbarConfigUserDefaultsMinorVersion 2 ToolbarDisplayMode 1 ToolbarIsVisible ToolbarSizeMode 1 Type Perspectives UpdateMessage WindowJustification 5 WindowOrderList EDC583FD130855A90013090E EDC583FE130855A90013090E /Users/cole/develop/cufflinks/cufflinks.xcodeproj WindowString 469 55 1063 973 0 0 1680 1028 WindowToolsV3 Identifier windowTool.debugger Layout Dock ContentConfiguration Debugger HorizontalSplitView _collapsingFrameDimension 0.0 _indexOfCollapsedView 0 _percentageOfCollapsedView 0.0 isCollapsed yes sizes {{0, 0}, {317, 164}} {{317, 0}, {377, 164}} VerticalSplitView _collapsingFrameDimension 0.0 _indexOfCollapsedView 0 _percentageOfCollapsedView 0.0 isCollapsed yes sizes {{0, 0}, {694, 164}} {{0, 164}, {694, 216}} LauncherConfigVersion 8 PBXProjectModuleGUID 1C162984064C10D400B95A72 PBXProjectModuleLabel Debug - GLUTExamples (Underwater) GeometryConfiguration DebugConsoleDrawerSize {100, 120} DebugConsoleVisible None DebugConsoleWindowFrame {{200, 200}, {500, 300}} DebugSTDIOWindowFrame {{200, 200}, {500, 300}} Frame {{0, 0}, {694, 380}} RubberWindowFrame 321 238 694 422 0 0 1440 878 Module PBXDebugSessionModule Proportion 100% Proportion 100% Name Debugger ServiceClasses PBXDebugSessionModule StatusbarIsVisible 1 TableOfContents 1CD10A99069EF8BA00B06720 1C0AD2AB069F1E9B00FABCE6 1C162984064C10D400B95A72 1C0AD2AC069F1E9B00FABCE6 ToolbarConfiguration xcode.toolbar.config.debugV3 WindowString 321 238 694 422 0 0 1440 878 WindowToolGUID 1CD10A99069EF8BA00B06720 WindowToolIsVisible 0 Identifier windowTool.build Layout Dock ContentConfiguration PBXProjectModuleGUID 1CD0528F0623707200166675 PBXProjectModuleLabel <No Editor> PBXSplitModuleInNavigatorKey Split0 PBXProjectModuleGUID 1CD052900623707200166675 SplitCount 1 StatusBarVisibility 1 GeometryConfiguration Frame {{0, 0}, {500, 215}} RubberWindowFrame 192 257 500 500 0 0 1280 1002 Module PBXNavigatorGroup Proportion 218pt BecomeActive 1 ContentConfiguration PBXProjectModuleGUID XCMainBuildResultsModuleGUID PBXProjectModuleLabel Build Results GeometryConfiguration Frame {{0, 222}, {500, 236}} RubberWindowFrame 192 257 500 500 0 0 1280 1002 Module PBXBuildResultsModule Proportion 236pt Proportion 458pt Name Build Results ServiceClasses PBXBuildResultsModule StatusbarIsVisible 1 TableOfContents 1C78EAA5065D492600B07095 1C78EAA6065D492600B07095 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID ToolbarConfiguration xcode.toolbar.config.buildV3 WindowString 192 257 500 500 0 0 1280 1002 Identifier windowTool.find Layout Dock Dock ContentConfiguration PBXProjectModuleGUID 1CDD528C0622207200134675 PBXProjectModuleLabel <No Editor> PBXSplitModuleInNavigatorKey Split0 PBXProjectModuleGUID 1CD0528D0623707200166675 SplitCount 1 StatusBarVisibility 1 GeometryConfiguration Frame {{0, 0}, {781, 167}} RubberWindowFrame 62 385 781 470 0 0 1440 878 Module PBXNavigatorGroup Proportion 781pt Proportion 50% BecomeActive 1 ContentConfiguration PBXProjectModuleGUID 1CD0528E0623707200166675 PBXProjectModuleLabel Project Find GeometryConfiguration Frame {{8, 0}, {773, 254}} RubberWindowFrame 62 385 781 470 0 0 1440 878 Module PBXProjectFindModule Proportion 50% Proportion 428pt Name Project Find ServiceClasses PBXProjectFindModule StatusbarIsVisible 1 TableOfContents 1C530D57069F1CE1000CFCEE 1C530D58069F1CE1000CFCEE 1C530D59069F1CE1000CFCEE 1CDD528C0622207200134675 1C530D5A069F1CE1000CFCEE 1CE0B1FE06471DED0097A5F4 1CD0528E0623707200166675 WindowString 62 385 781 470 0 0 1440 878 WindowToolGUID 1C530D57069F1CE1000CFCEE WindowToolIsVisible 0 Identifier windowTool.snapshots Layout Dock Module XCSnapshotModule Proportion 100% Proportion 100% Name Snapshots ServiceClasses XCSnapshotModule StatusbarIsVisible Yes ToolbarConfiguration xcode.toolbar.config.snapshots WindowString 315 824 300 550 0 0 1440 878 WindowToolIsVisible Yes FirstTimeWindowDisplayed Identifier windowTool.debuggerConsole IsVertical Layout Dock ContentConfiguration PBXProjectModuleGUID 1C78EAAC065D492600B07095 PBXProjectModuleLabel Debugger Console GeometryConfiguration Frame {{0, 0}, {440, 359}} RubberWindowFrame 267 368 440 400 0 0 1280 778 Module PBXDebugCLIModule Proportion 359pt Proportion 359pt Name Debugger Console ServiceClasses PBXDebugCLIModule StatusbarIsVisible TableOfContents 1C530D5B069F1CE1000CFCEE EDA1843F119F1BE300E815BB 1C78EAAC065D492600B07095 ToolbarConfiguration xcode.toolbar.config.consoleV3 WindowString 267 368 440 400 0 0 1280 778 WindowToolGUID 1C530D5B069F1CE1000CFCEE WindowToolIsVisible Identifier windowTool.scm Layout Dock ContentConfiguration PBXProjectModuleGUID 1C78EAB2065D492600B07095 PBXProjectModuleLabel <No Editor> PBXSplitModuleInNavigatorKey Split0 PBXProjectModuleGUID 1C78EAB3065D492600B07095 SplitCount 1 StatusBarVisibility 1 GeometryConfiguration Frame {{0, 0}, {452, 0}} RubberWindowFrame 743 379 452 308 0 0 1280 1002 Module PBXNavigatorGroup Proportion 0pt BecomeActive 1 ContentConfiguration PBXProjectModuleGUID 1CD052920623707200166675 PBXProjectModuleLabel SCM GeometryConfiguration ConsoleFrame {{0, 259}, {452, 0}} Frame {{0, 7}, {452, 259}} RubberWindowFrame 743 379 452 308 0 0 1280 1002 TableConfiguration Status 30 FileName 199 Path 197.09500122070312 TableFrame {{0, 0}, {452, 250}} Module PBXCVSModule Proportion 262pt Proportion 266pt Name SCM ServiceClasses PBXCVSModule StatusbarIsVisible 1 TableOfContents 1C78EAB4065D492600B07095 1C78EAB5065D492600B07095 1C78EAB2065D492600B07095 1CD052920623707200166675 ToolbarConfiguration xcode.toolbar.config.scmV3 WindowString 743 379 452 308 0 0 1280 1002 Identifier windowTool.breakpoints IsVertical 0 Layout Dock BecomeActive 1 ContentConfiguration PBXBottomSmartGroupGIDs 1C77FABC04509CD000000102 PBXProjectModuleGUID 1CE0B1FE06471DED0097A5F4 PBXProjectModuleLabel Files PBXProjectStructureProvided no PBXSmartGroupTreeModuleColumnData PBXSmartGroupTreeModuleColumnWidthsKey 168 PBXSmartGroupTreeModuleColumnsKey_v4 MainColumn PBXSmartGroupTreeModuleOutlineStateKey_v7 PBXSmartGroupTreeModuleOutlineStateExpansionKey 1C77FABC04509CD000000102 PBXSmartGroupTreeModuleOutlineStateSelectionKey 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey {{0, 0}, {168, 350}} PBXTopSmartGroupGIDs XCIncludePerspectivesSwitch 0 GeometryConfiguration Frame {{0, 0}, {185, 368}} GroupTreeTableConfiguration MainColumn 168 RubberWindowFrame 315 424 744 409 0 0 1440 878 Module PBXSmartGroupTreeModule Proportion 185pt ContentConfiguration PBXProjectModuleGUID 1CA1AED706398EBD00589147 PBXProjectModuleLabel Detail GeometryConfiguration Frame {{190, 0}, {554, 368}} RubberWindowFrame 315 424 744 409 0 0 1440 878 Module XCDetailModule Proportion 554pt Proportion 368pt MajorVersion 3 MinorVersion 0 Name Breakpoints ServiceClasses PBXSmartGroupTreeModule XCDetailModule StatusbarIsVisible 1 TableOfContents 1CDDB66807F98D9800BB5817 1CDDB66907F98D9800BB5817 1CE0B1FE06471DED0097A5F4 1CA1AED706398EBD00589147 ToolbarConfiguration xcode.toolbar.config.breakpointsV3 WindowString 315 424 744 409 0 0 1440 878 WindowToolGUID 1CDDB66807F98D9800BB5817 WindowToolIsVisible 1 Identifier windowTool.debugAnimator Layout Dock Module PBXNavigatorGroup Proportion 100% Proportion 100% Name Debug Visualizer ServiceClasses PBXNavigatorGroup StatusbarIsVisible 1 ToolbarConfiguration xcode.toolbar.config.debugAnimatorV3 WindowString 100 100 700 500 0 0 1280 1002 Identifier windowTool.bookmarks Layout Dock Module PBXBookmarksModule Proportion 166pt Proportion 166pt Name Bookmarks ServiceClasses PBXBookmarksModule StatusbarIsVisible 0 WindowString 538 42 401 187 0 0 1280 1002 Identifier windowTool.projectFormatConflicts Layout Dock Module XCProjectFormatConflictsModule Proportion 100% Proportion 100% Name Project Format Conflicts ServiceClasses XCProjectFormatConflictsModule StatusbarIsVisible 0 WindowContentMinSize 450 300 WindowString 50 850 472 307 0 0 1440 877 Identifier windowTool.classBrowser Layout Dock BecomeActive 1 ContentConfiguration OptionsSetName Hierarchy, all classes PBXProjectModuleGUID 1CA6456E063B45B4001379D8 PBXProjectModuleLabel Class Browser - NSObject GeometryConfiguration ClassesFrame {{0, 0}, {369, 96}} ClassesTreeTableConfiguration PBXClassNameColumnIdentifier 208 PBXClassBookColumnIdentifier 22 Frame {{0, 0}, {616, 353}} MembersFrame {{0, 105}, {369, 395}} MembersTreeTableConfiguration PBXMemberTypeIconColumnIdentifier 22 PBXMemberNameColumnIdentifier 216 PBXMemberTypeColumnIdentifier 94 PBXMemberBookColumnIdentifier 22 PBXModuleWindowStatusBarHidden2 1 RubberWindowFrame 597 125 616 374 0 0 1280 1002 Module PBXClassBrowserModule Proportion 354pt Proportion 354pt Name Class Browser ServiceClasses PBXClassBrowserModule StatusbarIsVisible 0 TableOfContents 1C78EABA065D492600B07095 1C78EABB065D492600B07095 1CA6456E063B45B4001379D8 ToolbarConfiguration xcode.toolbar.config.classbrowser WindowString 597 125 616 374 0 0 1280 1002 Identifier windowTool.refactoring IncludeInToolsMenu 0 Layout Dock BecomeActive 1 GeometryConfiguration Frame {0, 0}, {500, 335} RubberWindowFrame {0, 0}, {500, 335} Module XCRefactoringModule Proportion 100% Proportion 100% Name Refactoring ServiceClasses XCRefactoringModule WindowString 200 200 500 356 0 0 1920 1200 ================================================ FILE: cufflinks.xcodeproj/project.pbxproj ================================================ // !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 46; objects = { /* Begin PBXBuildFile section */ 0A6183721324308800EFF9AF /* multireads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A6183711324308800EFF9AF /* multireads.cpp */; }; 0A6183731324308800EFF9AF /* multireads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A6183711324308800EFF9AF /* multireads.cpp */; }; 0A69414F132AEDAB00558D76 /* dens_haz.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3613213B19008DDA0B /* dens_haz.c */; }; 0A694150132AEDAB00558D76 /* dens_int.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3713213B19008DDA0B /* dens_int.c */; }; 0A694151132AEDAB00558D76 /* dens_odi.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3813213B19008DDA0B /* dens_odi.c */; }; 0A694152132AEDAB00558D76 /* vari.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3313213903008DDA0B /* vari.cpp */; }; 0A694153132AEDAB00558D76 /* density.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F30132137F4008DDA0B /* density.c */; }; 0A694154132AEDAB00558D76 /* minmax.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5D13204FE30031949A /* minmax.c */; }; 0A694155132AEDAB00558D76 /* locfit.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5E13204FE30031949A /* locfit.c */; }; 0A694156132AEDAB00558D76 /* ev_interp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5F13204FE30031949A /* ev_interp.c */; }; 0A694157132AEDAB00558D76 /* ev_atree.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6013204FE30031949A /* ev_atree.c */; }; 0A694158132AEDAB00558D76 /* weight.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6113204FE30031949A /* weight.c */; }; 0A694159132AEDAB00558D76 /* wdiag.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6213204FE40031949A /* wdiag.c */; }; 0A69415A132AEDAB00558D76 /* adap.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4013213C15008DDA0B /* adap.c */; }; 0A69415B132AEDAB00558D76 /* strings.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6313204FE40031949A /* strings.c */; }; 0A69415C132AEDAB00558D76 /* pout.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4F132150D9008DDA0B /* pout.c */; }; 0A69415D132AEDAB00558D76 /* dist.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4313213C49008DDA0B /* dist.c */; }; 0A69415E132AEDAB00558D76 /* startlf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6413204FE40031949A /* startlf.c */; }; 0A69415F132AEDAB00558D76 /* band.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4C13213D03008DDA0B /* band.c */; }; 0A694160132AEDAB00558D76 /* lfd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4913213CDE008DDA0B /* lfd.c */; }; 0A694161132AEDAB00558D76 /* readfile.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5B132158CA008DDA0B /* readfile.c */; }; 0A694162132AEDAB00558D76 /* makecmd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F521321520A008DDA0B /* makecmd.c */; }; 0A694163132AEDAB00558D76 /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4613213CAE008DDA0B /* random.c */; }; 0A694164132AEDAB00558D76 /* help.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5513215828008DDA0B /* help.c */; }; 0A694165132AEDAB00558D76 /* c_plot.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F581321587C008DDA0B /* c_plot.c */; }; 0A694166132AEDAB00558D76 /* solve.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6513204FE40031949A /* solve.c */; }; 0A694167132AEDAB00558D76 /* simul.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6613204FE40031949A /* simul.c */; }; 0A694168132AEDAB00558D76 /* preplot.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6713204FE40031949A /* preplot.c */; }; 0A694169132AEDAB00558D76 /* pcomp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6813204FE40031949A /* pcomp.c */; }; 0A69416A132AEDAC00558D76 /* nbhd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6913204FE40031949A /* nbhd.c */; }; 0A69416B132AEDAC00558D76 /* math.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6A13204FE40031949A /* math.c */; }; 0A69416C132AEDAC00558D76 /* m_max.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6B13204FE40031949A /* m_max.c */; }; 0A69416D132AEDAC00558D76 /* m_eigen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6C13204FE40031949A /* m_eigen.c */; }; 0A69416E132AEDAC00558D76 /* linalg.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6D13204FE40031949A /* linalg.c */; }; 0A69416F132AEDAC00558D76 /* lfstr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6E13204FE40031949A /* lfstr.c */; }; 0A694170132AEDAC00558D76 /* lf_vari.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6F13204FE40031949A /* lf_vari.c */; }; 0A694171132AEDAC00558D76 /* lf_fitfun.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7013204FE50031949A /* lf_fitfun.c */; }; 0A694172132AEDAC00558D76 /* lf_dercor.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7113204FE50031949A /* lf_dercor.c */; }; 0A694173132AEDAC00558D76 /* frend.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7213204FE50031949A /* frend.c */; }; 0A694174132AEDAC00558D76 /* fitted.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7313204FE50031949A /* fitted.c */; }; 0A694175132AEDAC00558D76 /* family.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7413204FE50031949A /* family.c */; }; 0A694176132AEDAC00558D76 /* ev_trian.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7513204FE50031949A /* ev_trian.c */; }; 0A694177132AEDAC00558D76 /* ev_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7613204FE50031949A /* ev_main.c */; }; 0A694178132AEDAC00558D76 /* ev_kdtre.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7713204FE50031949A /* ev_kdtre.c */; }; 0A694179132AEDAC00558D76 /* scb.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7813204FE60031949A /* scb.c */; }; 0A69417A132AEDAC00558D76 /* scb_cons.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7A13204FE60031949A /* scb_cons.c */; }; 0A69417C132AEDAC00558D76 /* m_jacob.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7D13204FE60031949A /* m_jacob.c */; }; 0A694181132AEDAC00558D76 /* lf_robust.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8313204FE80031949A /* lf_robust.c */; }; 0A694182132AEDAC00558D76 /* m_chol.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8413204FE80031949A /* m_chol.c */; }; 0A694184132AEDAC00558D76 /* arith.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8913204FE90031949A /* arith.c */; }; 0A694185132AEDAC00558D76 /* c_args.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8A13204FE90031949A /* c_args.c */; }; 0A694186132AEDAC00558D76 /* ar_funs.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8B13204FE90031949A /* ar_funs.c */; }; 0A694189132AEDAC00558D76 /* cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5913204F180031949A /* cmd.c */; }; 0A87350314118DD700E28429 /* libboost_thread-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A87350214118DD700E28429 /* libboost_thread-mt.a */; }; 0A9291D5132AD37100E7B024 /* replicates.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED677C0D132A3D83000CFDC8 /* replicates.cpp */; }; 9C31043215250D8600F56669 /* jensen_shannon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDFE39FA122BE7B700F24CD3 /* jensen_shannon.cpp */; }; 9CBCD9B41333EB5B0059FE74 /* multireads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A6183711324308800EFF9AF /* multireads.cpp */; }; 9CBCD9B51333ECCE0059FE74 /* replicates.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED677C0D132A3D83000CFDC8 /* replicates.cpp */; }; 9CBCD9B61333ECF50059FE74 /* dens_haz.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3613213B19008DDA0B /* dens_haz.c */; }; 9CBCD9B71333ECF50059FE74 /* dens_int.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3713213B19008DDA0B /* dens_int.c */; }; 9CBCD9B81333ECF50059FE74 /* dens_odi.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3813213B19008DDA0B /* dens_odi.c */; }; 9CBCD9B91333ECF50059FE74 /* vari.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3313213903008DDA0B /* vari.cpp */; }; 9CBCD9BA1333ECF50059FE74 /* density.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F30132137F4008DDA0B /* density.c */; }; 9CBCD9BB1333ECF50059FE74 /* minmax.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5D13204FE30031949A /* minmax.c */; }; 9CBCD9BC1333ECF50059FE74 /* locfit.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5E13204FE30031949A /* locfit.c */; }; 9CBCD9BD1333ECF50059FE74 /* ev_interp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5F13204FE30031949A /* ev_interp.c */; }; 9CBCD9BE1333ECF50059FE74 /* ev_atree.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6013204FE30031949A /* ev_atree.c */; }; 9CBCD9BF1333ECF50059FE74 /* weight.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6113204FE30031949A /* weight.c */; }; 9CBCD9C01333ECF50059FE74 /* wdiag.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6213204FE40031949A /* wdiag.c */; }; 9CBCD9C11333ECF50059FE74 /* adap.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4013213C15008DDA0B /* adap.c */; }; 9CBCD9C21333ECF50059FE74 /* strings.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6313204FE40031949A /* strings.c */; }; 9CBCD9C31333ECF50059FE74 /* pout.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4F132150D9008DDA0B /* pout.c */; }; 9CBCD9C41333ECF50059FE74 /* dist.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4313213C49008DDA0B /* dist.c */; }; 9CBCD9C51333ECF50059FE74 /* startlf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6413204FE40031949A /* startlf.c */; }; 9CBCD9C61333ECF50059FE74 /* band.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4C13213D03008DDA0B /* band.c */; }; 9CBCD9C71333ECF50059FE74 /* lfd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4913213CDE008DDA0B /* lfd.c */; }; 9CBCD9C81333ECF50059FE74 /* readfile.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5B132158CA008DDA0B /* readfile.c */; }; 9CBCD9C91333ECF50059FE74 /* makecmd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F521321520A008DDA0B /* makecmd.c */; }; 9CBCD9CA1333ECF50059FE74 /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4613213CAE008DDA0B /* random.c */; }; 9CBCD9CB1333ECF50059FE74 /* help.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5513215828008DDA0B /* help.c */; }; 9CBCD9CC1333ECF50059FE74 /* c_plot.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F581321587C008DDA0B /* c_plot.c */; }; 9CBCD9CD1333ECF50059FE74 /* solve.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6513204FE40031949A /* solve.c */; }; 9CBCD9CE1333ECF50059FE74 /* simul.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6613204FE40031949A /* simul.c */; }; 9CBCD9CF1333ECF50059FE74 /* preplot.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6713204FE40031949A /* preplot.c */; }; 9CBCD9D01333ECF50059FE74 /* pcomp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6813204FE40031949A /* pcomp.c */; }; 9CBCD9D11333ECF50059FE74 /* nbhd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6913204FE40031949A /* nbhd.c */; }; 9CBCD9D21333ECF50059FE74 /* math.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6A13204FE40031949A /* math.c */; }; 9CBCD9D31333ECF50059FE74 /* m_max.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6B13204FE40031949A /* m_max.c */; }; 9CBCD9D41333ECF50059FE74 /* m_eigen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6C13204FE40031949A /* m_eigen.c */; }; 9CBCD9D51333ECF50059FE74 /* linalg.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6D13204FE40031949A /* linalg.c */; }; 9CBCD9D61333ECF50059FE74 /* lfstr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6E13204FE40031949A /* lfstr.c */; }; 9CBCD9D71333ECF50059FE74 /* lf_vari.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6F13204FE40031949A /* lf_vari.c */; }; 9CBCD9D81333ECF50059FE74 /* lf_fitfun.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7013204FE50031949A /* lf_fitfun.c */; }; 9CBCD9D91333ECF50059FE74 /* lf_dercor.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7113204FE50031949A /* lf_dercor.c */; }; 9CBCD9DA1333ECF50059FE74 /* frend.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7213204FE50031949A /* frend.c */; }; 9CBCD9DB1333ECF50059FE74 /* fitted.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7313204FE50031949A /* fitted.c */; }; 9CBCD9DC1333ECF50059FE74 /* family.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7413204FE50031949A /* family.c */; }; 9CBCD9DD1333ECF50059FE74 /* ev_trian.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7513204FE50031949A /* ev_trian.c */; }; 9CBCD9DE1333ECF50059FE74 /* ev_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7613204FE50031949A /* ev_main.c */; }; 9CBCD9DF1333ECF50059FE74 /* ev_kdtre.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7713204FE50031949A /* ev_kdtre.c */; }; 9CBCD9E01333ECF50059FE74 /* scb.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7813204FE60031949A /* scb.c */; }; 9CBCD9E11333ECF50059FE74 /* scb_cons.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7A13204FE60031949A /* scb_cons.c */; }; 9CBCD9E21333ECFD0059FE74 /* m_jacob.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7D13204FE60031949A /* m_jacob.c */; }; 9CBCD9E31333ECFD0059FE74 /* lf_robust.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8313204FE80031949A /* lf_robust.c */; }; 9CBCD9E41333ECFD0059FE74 /* m_chol.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8413204FE80031949A /* m_chol.c */; }; 9CBCD9E51333ECFD0059FE74 /* arith.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8913204FE90031949A /* arith.c */; }; 9CBCD9E61333ECFD0059FE74 /* c_args.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8A13204FE90031949A /* c_args.c */; }; 9CBCD9E71333ECFD0059FE74 /* ar_funs.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8B13204FE90031949A /* ar_funs.c */; }; 9CBCD9E81333ECFD0059FE74 /* cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5913204F180031949A /* cmd.c */; }; 9CCF1F3C135E29D600D7D6BD /* minmax.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5D13204FE30031949A /* minmax.c */; }; 9CCF1F3D135E29D600D7D6BD /* locfit.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5E13204FE30031949A /* locfit.c */; }; 9CCF1F3E135E29D600D7D6BD /* ev_interp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5F13204FE30031949A /* ev_interp.c */; }; 9CCF1F3F135E29D600D7D6BD /* ev_atree.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6013204FE30031949A /* ev_atree.c */; }; 9CCF1F40135E29D600D7D6BD /* weight.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6113204FE30031949A /* weight.c */; }; 9CCF1F41135E29D600D7D6BD /* wdiag.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6213204FE40031949A /* wdiag.c */; }; 9CCF1F42135E29D600D7D6BD /* strings.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6313204FE40031949A /* strings.c */; }; 9CCF1F43135E29D600D7D6BD /* startlf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6413204FE40031949A /* startlf.c */; }; 9CCF1F44135E29D600D7D6BD /* solve.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6513204FE40031949A /* solve.c */; }; 9CCF1F45135E29D600D7D6BD /* simul.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6613204FE40031949A /* simul.c */; }; 9CCF1F46135E29D700D7D6BD /* preplot.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6713204FE40031949A /* preplot.c */; }; 9CCF1F47135E29D700D7D6BD /* pcomp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6813204FE40031949A /* pcomp.c */; }; 9CCF1F48135E29D700D7D6BD /* nbhd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6913204FE40031949A /* nbhd.c */; }; 9CCF1F49135E29D700D7D6BD /* math.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6A13204FE40031949A /* math.c */; }; 9CCF1F4A135E29D700D7D6BD /* m_max.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6B13204FE40031949A /* m_max.c */; }; 9CCF1F4B135E29D700D7D6BD /* m_eigen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6C13204FE40031949A /* m_eigen.c */; }; 9CCF1F4C135E29D700D7D6BD /* linalg.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6D13204FE40031949A /* linalg.c */; }; 9CCF1F4D135E29D700D7D6BD /* lfstr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6E13204FE40031949A /* lfstr.c */; }; 9CCF1F4E135E29D700D7D6BD /* lf_vari.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6F13204FE40031949A /* lf_vari.c */; }; 9CCF1F4F135E29D700D7D6BD /* lf_fitfun.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7013204FE50031949A /* lf_fitfun.c */; }; 9CCF1F50135E29D700D7D6BD /* lf_dercor.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7113204FE50031949A /* lf_dercor.c */; }; 9CCF1F51135E29D700D7D6BD /* frend.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7213204FE50031949A /* frend.c */; }; 9CCF1F52135E29D700D7D6BD /* fitted.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7313204FE50031949A /* fitted.c */; }; 9CCF1F53135E29D700D7D6BD /* family.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7413204FE50031949A /* family.c */; }; 9CCF1F54135E29D700D7D6BD /* ev_trian.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7513204FE50031949A /* ev_trian.c */; }; 9CCF1F55135E29D700D7D6BD /* ev_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7613204FE50031949A /* ev_main.c */; }; 9CCF1F56135E29D700D7D6BD /* ev_kdtre.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7713204FE50031949A /* ev_kdtre.c */; }; 9CCF1F57135E29D700D7D6BD /* scb.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7813204FE60031949A /* scb.c */; }; 9CCF1F58135E29D700D7D6BD /* scb_cons.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7A13204FE60031949A /* scb_cons.c */; }; 9CCF1F59135E29E400D7D6BD /* m_jacob.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7D13204FE60031949A /* m_jacob.c */; }; 9CCF1F5A135E29E400D7D6BD /* lf_robust.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8313204FE80031949A /* lf_robust.c */; }; 9CCF1F5B135E29E400D7D6BD /* m_chol.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8413204FE80031949A /* m_chol.c */; }; 9CCF1F5C135E29E400D7D6BD /* arith.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8913204FE90031949A /* arith.c */; }; 9CCF1F5D135E29E400D7D6BD /* c_args.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8A13204FE90031949A /* c_args.c */; }; 9CCF1F5E135E29E400D7D6BD /* ar_funs.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8B13204FE90031949A /* ar_funs.c */; }; 9CCF1F5F135E29E400D7D6BD /* cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5913204F180031949A /* cmd.c */; }; 9CD6E8EA13379B7E00CCE1DE /* GFastaIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A5D9A35123B5BE0002BEFD5 /* GFastaIndex.cpp */; }; 9CD6E8EB13379B7E00CCE1DE /* abundances.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5151E10C72963000A4F41 /* abundances.cpp */; }; 9CD6E8EC13379B7E00CCE1DE /* assemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5151F10C72963000A4F41 /* assemble.cpp */; }; 9CD6E8ED13379B7E00CCE1DE /* bundles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152010C72963000A4F41 /* bundles.cpp */; }; 9CD6E8EE13379B7E00CCE1DE /* codons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152110C72963000A4F41 /* codons.cpp */; }; 9CD6E8EF13379B7E00CCE1DE /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152210C72963000A4F41 /* common.cpp */; }; 9CD6E8F013379B7E00CCE1DE /* filters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152610C72963000A4F41 /* filters.cpp */; }; 9CD6E8F113379B7E00CCE1DE /* GArgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152710C72963000A4F41 /* GArgs.cpp */; }; 9CD6E8F213379B7E00CCE1DE /* GBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152810C72963000A4F41 /* GBase.cpp */; }; 9CD6E8F313379B7E00CCE1DE /* gdna.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152910C72963000A4F41 /* gdna.cpp */; }; 9CD6E8F413379B7E00CCE1DE /* genes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152A10C72963000A4F41 /* genes.cpp */; }; 9CD6E8F513379B7E00CCE1DE /* GFaSeqGet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152B10C72963000A4F41 /* GFaSeqGet.cpp */; }; 9CD6E8F613379B7E00CCE1DE /* gff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152C10C72963000A4F41 /* gff.cpp */; }; 9CD6E8F713379B7E00CCE1DE /* GStr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152D10C72963000A4F41 /* GStr.cpp */; }; 9CD6E8F813379B7E00CCE1DE /* gtf_tracking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */; }; 9CD6E8FA13379B7E00CCE1DE /* hits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153010C72963000A4F41 /* hits.cpp */; }; 9CD6E8FB13379B7E00CCE1DE /* scaffolds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153110C72963000A4F41 /* scaffolds.cpp */; }; 9CD6E8FC13379B7E00CCE1DE /* tokenize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153210C72963000A4F41 /* tokenize.cpp */; }; 9CD6E8FD13379B7E00CCE1DE /* clustering.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDACE439114F031B009024DB /* clustering.cpp */; }; 9CD6E8FE13379B7E00CCE1DE /* graph_optimize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78A2C11B5F4F0000F8846 /* graph_optimize.cpp */; }; 9CD6E8FF13379B7E00CCE1DE /* scaffold_graph.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78A7911B6E912000F8846 /* scaffold_graph.cpp */; }; 9CD6E90013379B7E00CCE1DE /* matching_merge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78BC411B716C3000F8846 /* matching_merge.cpp */; }; 9CD6E90113379B7E00CCE1DE /* biascorrection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDBAC4BF11FF5AD3002B7162 /* biascorrection.cpp */; }; 9CD6E90213379B7E00CCE1DE /* multireads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A6183711324308800EFF9AF /* multireads.cpp */; }; 9CD6E90313379B7E00CCE1DE /* replicates.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED677C0D132A3D83000CFDC8 /* replicates.cpp */; }; 9CD6E90413379B7E00CCE1DE /* dens_haz.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3613213B19008DDA0B /* dens_haz.c */; }; 9CD6E90513379B7E00CCE1DE /* dens_int.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3713213B19008DDA0B /* dens_int.c */; }; 9CD6E90613379B7E00CCE1DE /* dens_odi.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3813213B19008DDA0B /* dens_odi.c */; }; 9CD6E90713379B7E00CCE1DE /* vari.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3313213903008DDA0B /* vari.cpp */; }; 9CD6E90813379B7E00CCE1DE /* density.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F30132137F4008DDA0B /* density.c */; }; 9CD6E90913379B7E00CCE1DE /* minmax.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5D13204FE30031949A /* minmax.c */; }; 9CD6E90A13379B7E00CCE1DE /* locfit.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5E13204FE30031949A /* locfit.c */; }; 9CD6E90B13379B7E00CCE1DE /* ev_interp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5F13204FE30031949A /* ev_interp.c */; }; 9CD6E90C13379B7E00CCE1DE /* ev_atree.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6013204FE30031949A /* ev_atree.c */; }; 9CD6E90D13379B7E00CCE1DE /* weight.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6113204FE30031949A /* weight.c */; }; 9CD6E90E13379B7E00CCE1DE /* wdiag.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6213204FE40031949A /* wdiag.c */; }; 9CD6E90F13379B7E00CCE1DE /* adap.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4013213C15008DDA0B /* adap.c */; }; 9CD6E91013379B7E00CCE1DE /* strings.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6313204FE40031949A /* strings.c */; }; 9CD6E91113379B7E00CCE1DE /* pout.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4F132150D9008DDA0B /* pout.c */; }; 9CD6E91213379B7E00CCE1DE /* dist.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4313213C49008DDA0B /* dist.c */; }; 9CD6E91313379B7E00CCE1DE /* startlf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6413204FE40031949A /* startlf.c */; }; 9CD6E91413379B7E00CCE1DE /* band.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4C13213D03008DDA0B /* band.c */; }; 9CD6E91513379B7E00CCE1DE /* lfd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4913213CDE008DDA0B /* lfd.c */; }; 9CD6E91613379B7E00CCE1DE /* readfile.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5B132158CA008DDA0B /* readfile.c */; }; 9CD6E91713379B7E00CCE1DE /* makecmd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F521321520A008DDA0B /* makecmd.c */; }; 9CD6E91813379B7E00CCE1DE /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4613213CAE008DDA0B /* random.c */; }; 9CD6E91913379B7E00CCE1DE /* help.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5513215828008DDA0B /* help.c */; }; 9CD6E91A13379B7E00CCE1DE /* c_plot.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F581321587C008DDA0B /* c_plot.c */; }; 9CD6E91B13379B7E00CCE1DE /* solve.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6513204FE40031949A /* solve.c */; }; 9CD6E91C13379B7E00CCE1DE /* simul.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6613204FE40031949A /* simul.c */; }; 9CD6E91D13379B7E00CCE1DE /* preplot.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6713204FE40031949A /* preplot.c */; }; 9CD6E91E13379B7E00CCE1DE /* pcomp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6813204FE40031949A /* pcomp.c */; }; 9CD6E91F13379B7E00CCE1DE /* nbhd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6913204FE40031949A /* nbhd.c */; }; 9CD6E92013379B7E00CCE1DE /* math.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6A13204FE40031949A /* math.c */; }; 9CD6E92113379B7E00CCE1DE /* m_max.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6B13204FE40031949A /* m_max.c */; }; 9CD6E92213379B7E00CCE1DE /* m_eigen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6C13204FE40031949A /* m_eigen.c */; }; 9CD6E92313379B7E00CCE1DE /* linalg.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6D13204FE40031949A /* linalg.c */; }; 9CD6E92413379B7E00CCE1DE /* lfstr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6E13204FE40031949A /* lfstr.c */; }; 9CD6E92513379B7E00CCE1DE /* lf_vari.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6F13204FE40031949A /* lf_vari.c */; }; 9CD6E92613379B7E00CCE1DE /* lf_fitfun.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7013204FE50031949A /* lf_fitfun.c */; }; 9CD6E92713379B7E00CCE1DE /* lf_dercor.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7113204FE50031949A /* lf_dercor.c */; }; 9CD6E92813379B7E00CCE1DE /* frend.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7213204FE50031949A /* frend.c */; }; 9CD6E92913379B7E00CCE1DE /* fitted.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7313204FE50031949A /* fitted.c */; }; 9CD6E92A13379B7E00CCE1DE /* family.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7413204FE50031949A /* family.c */; }; 9CD6E92B13379B7E00CCE1DE /* ev_trian.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7513204FE50031949A /* ev_trian.c */; }; 9CD6E92C13379B7E00CCE1DE /* ev_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7613204FE50031949A /* ev_main.c */; }; 9CD6E92D13379B7E00CCE1DE /* ev_kdtre.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7713204FE50031949A /* ev_kdtre.c */; }; 9CD6E92E13379B7E00CCE1DE /* scb.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7813204FE60031949A /* scb.c */; }; 9CD6E92F13379B7E00CCE1DE /* scb_cons.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7A13204FE60031949A /* scb_cons.c */; }; 9CD6E93013379B7E00CCE1DE /* m_jacob.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7D13204FE60031949A /* m_jacob.c */; }; 9CD6E93113379B7E00CCE1DE /* lf_robust.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8313204FE80031949A /* lf_robust.c */; }; 9CD6E93213379B7E00CCE1DE /* m_chol.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8413204FE80031949A /* m_chol.c */; }; 9CD6E93313379B7E00CCE1DE /* arith.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8913204FE90031949A /* arith.c */; }; 9CD6E93413379B7E00CCE1DE /* c_args.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8A13204FE90031949A /* c_args.c */; }; 9CD6E93513379B7E00CCE1DE /* ar_funs.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8B13204FE90031949A /* ar_funs.c */; }; 9CD6E93613379B7E00CCE1DE /* cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5913204F180031949A /* cmd.c */; }; 9CD6E93A13379B7E00CCE1DE /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = ED1C0D7911D7F94900CFD663 /* libz.dylib */; }; 9CD6E94113379B9D00CCE1DE /* compress_gtf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9CD6E8D913379B0900CCE1DE /* compress_gtf.cpp */; }; 9CE680F9149FBEBD00855EDB /* sampling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9CE680F8149FBEBD00855EDB /* sampling.cpp */; }; 9CE680FB149FBF3000855EDB /* sampling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9CE680F8149FBEBD00855EDB /* sampling.cpp */; }; A2047A18191141C7007193FC /* libbam.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A2047A17191141C7007193FC /* libbam.a */; }; A2047A19191141C7007193FC /* libbam.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A2047A17191141C7007193FC /* libbam.a */; }; A2047A1A191141C8007193FC /* libbam.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A2047A17191141C7007193FC /* libbam.a */; }; A2047A1B191141C8007193FC /* libbam.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A2047A17191141C7007193FC /* libbam.a */; }; ED1C0D7A11D7F94900CFD663 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = ED1C0D7911D7F94900CFD663 /* libz.dylib */; }; ED41B818127602C60000B5A2 /* GFastaIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A5D9A35123B5BE0002BEFD5 /* GFastaIndex.cpp */; }; ED41B819127602C60000B5A2 /* abundances.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5151E10C72963000A4F41 /* abundances.cpp */; }; ED41B81A127602C60000B5A2 /* assemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5151F10C72963000A4F41 /* assemble.cpp */; }; ED41B81B127602C60000B5A2 /* bundles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152010C72963000A4F41 /* bundles.cpp */; }; ED41B81C127602C60000B5A2 /* codons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152110C72963000A4F41 /* codons.cpp */; }; ED41B81D127602C60000B5A2 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152210C72963000A4F41 /* common.cpp */; }; ED41B81E127602C60000B5A2 /* filters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152610C72963000A4F41 /* filters.cpp */; }; ED41B81F127602C60000B5A2 /* GArgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152710C72963000A4F41 /* GArgs.cpp */; }; ED41B820127602C60000B5A2 /* GBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152810C72963000A4F41 /* GBase.cpp */; }; ED41B821127602C60000B5A2 /* gdna.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152910C72963000A4F41 /* gdna.cpp */; }; ED41B822127602C60000B5A2 /* genes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152A10C72963000A4F41 /* genes.cpp */; }; ED41B823127602C60000B5A2 /* GFaSeqGet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152B10C72963000A4F41 /* GFaSeqGet.cpp */; }; ED41B824127602C60000B5A2 /* gff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152C10C72963000A4F41 /* gff.cpp */; }; ED41B825127602C60000B5A2 /* GStr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152D10C72963000A4F41 /* GStr.cpp */; }; ED41B826127602C60000B5A2 /* gtf_tracking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */; }; ED41B828127602C60000B5A2 /* hits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153010C72963000A4F41 /* hits.cpp */; }; ED41B829127602C60000B5A2 /* scaffolds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153110C72963000A4F41 /* scaffolds.cpp */; }; ED41B82A127602C60000B5A2 /* tokenize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153210C72963000A4F41 /* tokenize.cpp */; }; ED41B82B127602C60000B5A2 /* clustering.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDACE439114F031B009024DB /* clustering.cpp */; }; ED41B82C127602C60000B5A2 /* graph_optimize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78A2C11B5F4F0000F8846 /* graph_optimize.cpp */; }; ED41B82D127602C60000B5A2 /* scaffold_graph.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78A7911B6E912000F8846 /* scaffold_graph.cpp */; }; ED41B82E127602C60000B5A2 /* matching_merge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78BC411B716C3000F8846 /* matching_merge.cpp */; }; ED41B82F127602C60000B5A2 /* biascorrection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDBAC4BF11FF5AD3002B7162 /* biascorrection.cpp */; }; ED41B833127602C60000B5A2 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = ED1C0D7911D7F94900CFD663 /* libz.dylib */; }; ED41B83E127603A20000B5A2 /* gtf_reads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152E10C72963000A4F41 /* gtf_reads.cpp */; }; ED48324B123E83D100642337 /* GFastaIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A5D9A35123B5BE0002BEFD5 /* GFastaIndex.cpp */; }; ED677C0F132A3D83000CFDC8 /* replicates.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED677C0D132A3D83000CFDC8 /* replicates.cpp */; }; ED677C10132A3D83000CFDC8 /* replicates.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED677C0D132A3D83000CFDC8 /* replicates.cpp */; }; ED877B73123BCA3F0025A050 /* GFastaIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED877B72123BCA3F0025A050 /* GFastaIndex.cpp */; }; ED877B74123BCA3F0025A050 /* GFastaIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED877B72123BCA3F0025A050 /* GFastaIndex.cpp */; }; ED877B75123BCA3F0025A050 /* GFastaIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED877B72123BCA3F0025A050 /* GFastaIndex.cpp */; }; ED920F0C132136BE008DDA0B /* minmax.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5D13204FE30031949A /* minmax.c */; }; ED920F0D132136BE008DDA0B /* locfit.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5E13204FE30031949A /* locfit.c */; }; ED920F0E132136BE008DDA0B /* ev_interp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5F13204FE30031949A /* ev_interp.c */; }; ED920F0F132136BE008DDA0B /* ev_atree.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6013204FE30031949A /* ev_atree.c */; }; ED920F10132136BE008DDA0B /* weight.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6113204FE30031949A /* weight.c */; }; ED920F11132136BE008DDA0B /* wdiag.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6213204FE40031949A /* wdiag.c */; }; ED920F12132136BE008DDA0B /* strings.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6313204FE40031949A /* strings.c */; }; ED920F14132136BE008DDA0B /* solve.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6513204FE40031949A /* solve.c */; }; ED920F15132136BE008DDA0B /* simul.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6613204FE40031949A /* simul.c */; }; ED920F16132136BE008DDA0B /* preplot.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6713204FE40031949A /* preplot.c */; }; ED920F17132136BE008DDA0B /* pcomp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6813204FE40031949A /* pcomp.c */; }; ED920F18132136BE008DDA0B /* nbhd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6913204FE40031949A /* nbhd.c */; }; ED920F19132136BE008DDA0B /* math.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6A13204FE40031949A /* math.c */; }; ED920F1A132136BE008DDA0B /* m_max.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6B13204FE40031949A /* m_max.c */; }; ED920F1B132136BE008DDA0B /* m_eigen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6C13204FE40031949A /* m_eigen.c */; }; ED920F1C132136BE008DDA0B /* linalg.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6D13204FE40031949A /* linalg.c */; }; ED920F1D132136BE008DDA0B /* lfstr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6E13204FE40031949A /* lfstr.c */; }; ED920F1E132136BE008DDA0B /* lf_vari.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6F13204FE40031949A /* lf_vari.c */; }; ED920F1F132136BE008DDA0B /* lf_fitfun.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7013204FE50031949A /* lf_fitfun.c */; }; ED920F20132136BE008DDA0B /* lf_dercor.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7113204FE50031949A /* lf_dercor.c */; }; ED920F21132136BE008DDA0B /* frend.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7213204FE50031949A /* frend.c */; }; ED920F22132136BE008DDA0B /* fitted.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7313204FE50031949A /* fitted.c */; }; ED920F23132136BE008DDA0B /* family.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7413204FE50031949A /* family.c */; }; ED920F24132136BE008DDA0B /* ev_trian.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7513204FE50031949A /* ev_trian.c */; }; ED920F25132136BE008DDA0B /* ev_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7613204FE50031949A /* ev_main.c */; }; ED920F26132136BE008DDA0B /* ev_kdtre.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7713204FE50031949A /* ev_kdtre.c */; }; ED920F27132136BE008DDA0B /* scb.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7813204FE60031949A /* scb.c */; }; ED920F28132136BE008DDA0B /* scb_cons.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7A13204FE60031949A /* scb_cons.c */; }; ED920F29132136CE008DDA0B /* m_jacob.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7D13204FE60031949A /* m_jacob.c */; }; ED920F2A132136CE008DDA0B /* lf_robust.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8313204FE80031949A /* lf_robust.c */; }; ED920F2B132136CE008DDA0B /* m_chol.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8413204FE80031949A /* m_chol.c */; }; ED920F2C132136CE008DDA0B /* arith.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8913204FE90031949A /* arith.c */; }; ED920F2D132136CE008DDA0B /* c_args.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8A13204FE90031949A /* c_args.c */; }; ED920F2E132136CE008DDA0B /* ar_funs.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8B13204FE90031949A /* ar_funs.c */; }; ED920F2F132136CE008DDA0B /* cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5913204F180031949A /* cmd.c */; }; ED920F31132137F4008DDA0B /* density.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F30132137F4008DDA0B /* density.c */; }; ED920F32132137F4008DDA0B /* density.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F30132137F4008DDA0B /* density.c */; }; ED920F3413213903008DDA0B /* vari.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3313213903008DDA0B /* vari.cpp */; }; ED920F3513213903008DDA0B /* vari.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3313213903008DDA0B /* vari.cpp */; }; ED920F3913213B19008DDA0B /* dens_haz.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3613213B19008DDA0B /* dens_haz.c */; }; ED920F3A13213B19008DDA0B /* dens_haz.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3613213B19008DDA0B /* dens_haz.c */; }; ED920F3B13213B19008DDA0B /* dens_int.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3713213B19008DDA0B /* dens_int.c */; }; ED920F3C13213B19008DDA0B /* dens_int.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3713213B19008DDA0B /* dens_int.c */; }; ED920F3D13213B19008DDA0B /* dens_odi.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3813213B19008DDA0B /* dens_odi.c */; }; ED920F3E13213B19008DDA0B /* dens_odi.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3813213B19008DDA0B /* dens_odi.c */; }; ED920F3F13213BAC008DDA0B /* startlf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6413204FE40031949A /* startlf.c */; }; ED920F4113213C15008DDA0B /* adap.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4013213C15008DDA0B /* adap.c */; }; ED920F4213213C15008DDA0B /* adap.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4013213C15008DDA0B /* adap.c */; }; ED920F4413213C49008DDA0B /* dist.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4313213C49008DDA0B /* dist.c */; }; ED920F4513213C49008DDA0B /* dist.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4313213C49008DDA0B /* dist.c */; }; ED920F4713213CAF008DDA0B /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4613213CAE008DDA0B /* random.c */; }; ED920F4813213CAF008DDA0B /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4613213CAE008DDA0B /* random.c */; }; ED920F4A13213CDF008DDA0B /* lfd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4913213CDE008DDA0B /* lfd.c */; }; ED920F4B13213CDF008DDA0B /* lfd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4913213CDE008DDA0B /* lfd.c */; }; ED920F4D13213D03008DDA0B /* band.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4C13213D03008DDA0B /* band.c */; }; ED920F4E13213D03008DDA0B /* band.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4C13213D03008DDA0B /* band.c */; }; ED920F50132150D9008DDA0B /* pout.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4F132150D9008DDA0B /* pout.c */; }; ED920F51132150D9008DDA0B /* pout.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4F132150D9008DDA0B /* pout.c */; }; ED920F531321520A008DDA0B /* makecmd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F521321520A008DDA0B /* makecmd.c */; }; ED920F541321520A008DDA0B /* makecmd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F521321520A008DDA0B /* makecmd.c */; }; ED920F5613215828008DDA0B /* help.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5513215828008DDA0B /* help.c */; }; ED920F5713215828008DDA0B /* help.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5513215828008DDA0B /* help.c */; }; ED920F591321587C008DDA0B /* c_plot.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F581321587C008DDA0B /* c_plot.c */; }; ED920F5A1321587C008DDA0B /* c_plot.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F581321587C008DDA0B /* c_plot.c */; }; ED920F5C132158CA008DDA0B /* readfile.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5B132158CA008DDA0B /* readfile.c */; }; ED920F5D132158CA008DDA0B /* readfile.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5B132158CA008DDA0B /* readfile.c */; }; EDA5155210C729A9000A4F41 /* abundances.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5151E10C72963000A4F41 /* abundances.cpp */; }; EDA5155310C729A9000A4F41 /* assemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5151F10C72963000A4F41 /* assemble.cpp */; }; EDA5155410C729A9000A4F41 /* bundles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152010C72963000A4F41 /* bundles.cpp */; }; EDA5155510C729A9000A4F41 /* codons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152110C72963000A4F41 /* codons.cpp */; }; EDA5155610C729A9000A4F41 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152210C72963000A4F41 /* common.cpp */; }; EDA5155910C729A9000A4F41 /* cufflinks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152510C72963000A4F41 /* cufflinks.cpp */; }; EDA5155A10C729A9000A4F41 /* filters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152610C72963000A4F41 /* filters.cpp */; }; EDA5155B10C729A9000A4F41 /* GArgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152710C72963000A4F41 /* GArgs.cpp */; }; EDA5155C10C729A9000A4F41 /* GBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152810C72963000A4F41 /* GBase.cpp */; }; EDA5155D10C729A9000A4F41 /* gdna.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152910C72963000A4F41 /* gdna.cpp */; }; EDA5155E10C729A9000A4F41 /* genes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152A10C72963000A4F41 /* genes.cpp */; }; EDA5155F10C729A9000A4F41 /* GFaSeqGet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152B10C72963000A4F41 /* GFaSeqGet.cpp */; }; EDA5156010C729A9000A4F41 /* gff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152C10C72963000A4F41 /* gff.cpp */; }; EDA5156110C729A9000A4F41 /* GStr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152D10C72963000A4F41 /* GStr.cpp */; }; EDA5156310C729A9000A4F41 /* gtf_tracking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */; }; EDA5156410C729A9000A4F41 /* hits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153010C72963000A4F41 /* hits.cpp */; }; EDA5156510C729A9000A4F41 /* scaffolds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153110C72963000A4F41 /* scaffolds.cpp */; }; EDA5156610C729A9000A4F41 /* tokenize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153210C72963000A4F41 /* tokenize.cpp */; }; EDACE432114EFF5C009024DB /* differential.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDACE431114EFF5C009024DB /* differential.cpp */; }; EDACE43A114F031B009024DB /* clustering.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDACE439114F031B009024DB /* clustering.cpp */; }; EDACE43B114F031B009024DB /* clustering.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDACE439114F031B009024DB /* clustering.cpp */; }; EDBAC4C111FF5AD3002B7162 /* biascorrection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDBAC4BF11FF5AD3002B7162 /* biascorrection.cpp */; }; EDBAC4C211FF5AD3002B7162 /* biascorrection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDBAC4BF11FF5AD3002B7162 /* biascorrection.cpp */; }; EDD0CE0A10C72F7D00AF308F /* abundances.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5151E10C72963000A4F41 /* abundances.cpp */; }; EDD0CE0C10C72F7D00AF308F /* bundles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152010C72963000A4F41 /* bundles.cpp */; }; EDD0CE0D10C72F7D00AF308F /* codons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152110C72963000A4F41 /* codons.cpp */; }; EDD0CE0E10C72F7D00AF308F /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152210C72963000A4F41 /* common.cpp */; }; EDD0CE1010C72F7D00AF308F /* filters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152610C72963000A4F41 /* filters.cpp */; }; EDD0CE1110C72F7D00AF308F /* GArgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152710C72963000A4F41 /* GArgs.cpp */; }; EDD0CE1210C72F7D00AF308F /* GBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152810C72963000A4F41 /* GBase.cpp */; }; EDD0CE1310C72F7D00AF308F /* gdna.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152910C72963000A4F41 /* gdna.cpp */; }; EDD0CE1410C72F7D00AF308F /* genes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152A10C72963000A4F41 /* genes.cpp */; }; EDD0CE1510C72F7D00AF308F /* GFaSeqGet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152B10C72963000A4F41 /* GFaSeqGet.cpp */; }; EDD0CE1610C72F7D00AF308F /* gff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152C10C72963000A4F41 /* gff.cpp */; }; EDD0CE1710C72F7D00AF308F /* GStr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152D10C72963000A4F41 /* GStr.cpp */; }; EDD0CE1810C72F7D00AF308F /* gtf_tracking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */; }; EDD0CE1910C72F7D00AF308F /* hits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153010C72963000A4F41 /* hits.cpp */; }; EDD0CE1A10C72F7D00AF308F /* scaffolds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153110C72963000A4F41 /* scaffolds.cpp */; }; EDD0CE1B10C72F7D00AF308F /* tokenize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153210C72963000A4F41 /* tokenize.cpp */; }; EDD0CE2410C72F9300AF308F /* cuffdiff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152410C72963000A4F41 /* cuffdiff.cpp */; }; EDD6A9BF11598AB900D3F668 /* codons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152110C72963000A4F41 /* codons.cpp */; }; EDD6A9C311598AB900D3F668 /* GArgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152710C72963000A4F41 /* GArgs.cpp */; }; EDD6A9C411598AB900D3F668 /* GBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152810C72963000A4F41 /* GBase.cpp */; }; EDD6A9C511598AB900D3F668 /* gdna.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152910C72963000A4F41 /* gdna.cpp */; }; EDD6A9C711598AB900D3F668 /* GFaSeqGet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152B10C72963000A4F41 /* GFaSeqGet.cpp */; }; EDD6A9C811598AB900D3F668 /* gff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152C10C72963000A4F41 /* gff.cpp */; }; EDD6A9C911598AB900D3F668 /* GStr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152D10C72963000A4F41 /* GStr.cpp */; }; EDD6A9CA11598AB900D3F668 /* gtf_tracking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */; }; EDD6A9DE11598CFC00D3F668 /* cuffcompare.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152310C72963000A4F41 /* cuffcompare.cpp */; }; EDD94B481205C9E800AA1086 /* abundances.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5151E10C72963000A4F41 /* abundances.cpp */; }; EDD94B491205C9E800AA1086 /* assemble.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5151F10C72963000A4F41 /* assemble.cpp */; }; EDD94B4A1205C9E800AA1086 /* bundles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152010C72963000A4F41 /* bundles.cpp */; }; EDD94B4B1205C9E800AA1086 /* codons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152110C72963000A4F41 /* codons.cpp */; }; EDD94B4C1205C9E800AA1086 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152210C72963000A4F41 /* common.cpp */; }; EDD94B4E1205C9E800AA1086 /* filters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152610C72963000A4F41 /* filters.cpp */; }; EDD94B4F1205C9E800AA1086 /* GArgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152710C72963000A4F41 /* GArgs.cpp */; }; EDD94B501205C9E800AA1086 /* GBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152810C72963000A4F41 /* GBase.cpp */; }; EDD94B511205C9E800AA1086 /* gdna.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152910C72963000A4F41 /* gdna.cpp */; }; EDD94B521205C9E800AA1086 /* genes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152A10C72963000A4F41 /* genes.cpp */; }; EDD94B531205C9E800AA1086 /* GFaSeqGet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152B10C72963000A4F41 /* GFaSeqGet.cpp */; }; EDD94B541205C9E800AA1086 /* gff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152C10C72963000A4F41 /* gff.cpp */; }; EDD94B551205C9E800AA1086 /* GStr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152D10C72963000A4F41 /* GStr.cpp */; }; EDD94B561205C9E800AA1086 /* gtf_tracking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */; }; EDD94B571205C9E800AA1086 /* hits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153010C72963000A4F41 /* hits.cpp */; }; EDD94B581205C9E800AA1086 /* scaffolds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153110C72963000A4F41 /* scaffolds.cpp */; }; EDD94B591205C9E800AA1086 /* tokenize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153210C72963000A4F41 /* tokenize.cpp */; }; EDD94B5A1205C9E800AA1086 /* clustering.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDACE439114F031B009024DB /* clustering.cpp */; }; EDD94B5B1205C9E800AA1086 /* graph_optimize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78A2C11B5F4F0000F8846 /* graph_optimize.cpp */; }; EDD94B5C1205C9E800AA1086 /* scaffold_graph.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78A7911B6E912000F8846 /* scaffold_graph.cpp */; }; EDD94B5D1205C9E800AA1086 /* matching_merge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78BC411B716C3000F8846 /* matching_merge.cpp */; }; EDD94B5E1205C9E800AA1086 /* biascorrection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDBAC4BF11FF5AD3002B7162 /* biascorrection.cpp */; }; EDD94B621205C9E800AA1086 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = ED1C0D7911D7F94900CFD663 /* libz.dylib */; }; EDD94B741205CB1700AA1086 /* gtf_to_sam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDD94B711205CAF400AA1086 /* gtf_to_sam.cpp */; }; EDDBF70A12D29DF000130D8A /* cuffcluster.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDDBF70912D29DF000130D8A /* cuffcluster.cpp */; }; EDE107E911E37CE7005F1F4B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = ED1C0D7911D7F94900CFD663 /* libz.dylib */; }; EDE78A2D11B5F4F0000F8846 /* graph_optimize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78A2C11B5F4F0000F8846 /* graph_optimize.cpp */; }; EDE78A7A11B6E912000F8846 /* scaffold_graph.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78A7911B6E912000F8846 /* scaffold_graph.cpp */; }; EDE78BC611B716C3000F8846 /* matching_merge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDE78BC411B716C3000F8846 /* matching_merge.cpp */; }; EDFE39B6122BE65600F24CD3 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152210C72963000A4F41 /* common.cpp */; }; EDFE39C2122BE65600F24CD3 /* tokenize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153210C72963000A4F41 /* tokenize.cpp */; }; EDFE39C9122BE65600F24CD3 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = ED1C0D7911D7F94900CFD663 /* libz.dylib */; }; EDFE39FB122BE7B700F24CD3 /* jensen_shannon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDFE39FA122BE7B700F24CD3 /* jensen_shannon.cpp */; }; EDFE39FC122BE7B700F24CD3 /* jensen_shannon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDFE39FA122BE7B700F24CD3 /* jensen_shannon.cpp */; }; F4A9F3711742865A000087E1 /* abundances.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5151E10C72963000A4F41 /* abundances.cpp */; }; F4A9F3721742865A000087E1 /* bundles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152010C72963000A4F41 /* bundles.cpp */; }; F4A9F3731742865A000087E1 /* codons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152110C72963000A4F41 /* codons.cpp */; }; F4A9F3741742865A000087E1 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152210C72963000A4F41 /* common.cpp */; }; F4A9F3751742865A000087E1 /* filters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152610C72963000A4F41 /* filters.cpp */; }; F4A9F3761742865A000087E1 /* GArgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152710C72963000A4F41 /* GArgs.cpp */; }; F4A9F3771742865A000087E1 /* GBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152810C72963000A4F41 /* GBase.cpp */; }; F4A9F3781742865A000087E1 /* gdna.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152910C72963000A4F41 /* gdna.cpp */; }; F4A9F3791742865A000087E1 /* genes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152A10C72963000A4F41 /* genes.cpp */; }; F4A9F37A1742865A000087E1 /* GFaSeqGet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152B10C72963000A4F41 /* GFaSeqGet.cpp */; }; F4A9F37B1742865A000087E1 /* gff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152C10C72963000A4F41 /* gff.cpp */; }; F4A9F37C1742865A000087E1 /* GStr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152D10C72963000A4F41 /* GStr.cpp */; }; F4A9F37D1742865A000087E1 /* gtf_tracking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */; }; F4A9F37E1742865A000087E1 /* hits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153010C72963000A4F41 /* hits.cpp */; }; F4A9F37F1742865A000087E1 /* scaffolds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153110C72963000A4F41 /* scaffolds.cpp */; }; F4A9F3801742865A000087E1 /* tokenize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153210C72963000A4F41 /* tokenize.cpp */; }; F4A9F3821742865A000087E1 /* clustering.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDACE439114F031B009024DB /* clustering.cpp */; }; F4A9F3831742865A000087E1 /* biascorrection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDBAC4BF11FF5AD3002B7162 /* biascorrection.cpp */; }; F4A9F3841742865A000087E1 /* jensen_shannon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDFE39FA122BE7B700F24CD3 /* jensen_shannon.cpp */; }; F4A9F3851742865A000087E1 /* GFastaIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED877B72123BCA3F0025A050 /* GFastaIndex.cpp */; }; F4A9F3861742865A000087E1 /* minmax.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5D13204FE30031949A /* minmax.c */; }; F4A9F3871742865A000087E1 /* locfit.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5E13204FE30031949A /* locfit.c */; }; F4A9F3881742865A000087E1 /* ev_interp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5F13204FE30031949A /* ev_interp.c */; }; F4A9F3891742865A000087E1 /* ev_atree.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6013204FE30031949A /* ev_atree.c */; }; F4A9F38A1742865A000087E1 /* weight.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6113204FE30031949A /* weight.c */; }; F4A9F38B1742865A000087E1 /* wdiag.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6213204FE40031949A /* wdiag.c */; }; F4A9F38C1742865A000087E1 /* strings.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6313204FE40031949A /* strings.c */; }; F4A9F38D1742865A000087E1 /* solve.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6513204FE40031949A /* solve.c */; }; F4A9F38E1742865A000087E1 /* simul.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6613204FE40031949A /* simul.c */; }; F4A9F38F1742865A000087E1 /* preplot.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6713204FE40031949A /* preplot.c */; }; F4A9F3901742865A000087E1 /* pcomp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6813204FE40031949A /* pcomp.c */; }; F4A9F3911742865A000087E1 /* nbhd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6913204FE40031949A /* nbhd.c */; }; F4A9F3921742865A000087E1 /* math.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6A13204FE40031949A /* math.c */; }; F4A9F3931742865A000087E1 /* m_max.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6B13204FE40031949A /* m_max.c */; }; F4A9F3941742865A000087E1 /* m_eigen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6C13204FE40031949A /* m_eigen.c */; }; F4A9F3951742865A000087E1 /* linalg.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6D13204FE40031949A /* linalg.c */; }; F4A9F3961742865A000087E1 /* lfstr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6E13204FE40031949A /* lfstr.c */; }; F4A9F3971742865A000087E1 /* lf_vari.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6F13204FE40031949A /* lf_vari.c */; }; F4A9F3981742865A000087E1 /* lf_fitfun.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7013204FE50031949A /* lf_fitfun.c */; }; F4A9F3991742865A000087E1 /* lf_dercor.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7113204FE50031949A /* lf_dercor.c */; }; F4A9F39A1742865A000087E1 /* frend.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7213204FE50031949A /* frend.c */; }; F4A9F39B1742865A000087E1 /* fitted.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7313204FE50031949A /* fitted.c */; }; F4A9F39C1742865A000087E1 /* family.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7413204FE50031949A /* family.c */; }; F4A9F39D1742865A000087E1 /* ev_trian.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7513204FE50031949A /* ev_trian.c */; }; F4A9F39E1742865A000087E1 /* ev_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7613204FE50031949A /* ev_main.c */; }; F4A9F39F1742865A000087E1 /* ev_kdtre.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7713204FE50031949A /* ev_kdtre.c */; }; F4A9F3A01742865A000087E1 /* scb.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7813204FE60031949A /* scb.c */; }; F4A9F3A11742865A000087E1 /* scb_cons.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7A13204FE60031949A /* scb_cons.c */; }; F4A9F3A21742865A000087E1 /* m_jacob.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7D13204FE60031949A /* m_jacob.c */; }; F4A9F3A31742865A000087E1 /* lf_robust.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8313204FE80031949A /* lf_robust.c */; }; F4A9F3A41742865A000087E1 /* m_chol.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8413204FE80031949A /* m_chol.c */; }; F4A9F3A51742865A000087E1 /* arith.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8913204FE90031949A /* arith.c */; }; F4A9F3A61742865A000087E1 /* c_args.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8A13204FE90031949A /* c_args.c */; }; F4A9F3A71742865A000087E1 /* ar_funs.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8B13204FE90031949A /* ar_funs.c */; }; F4A9F3A81742865A000087E1 /* cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5913204F180031949A /* cmd.c */; }; F4A9F3A91742865A000087E1 /* density.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F30132137F4008DDA0B /* density.c */; }; F4A9F3AA1742865A000087E1 /* vari.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3313213903008DDA0B /* vari.cpp */; }; F4A9F3AB1742865A000087E1 /* dens_haz.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3613213B19008DDA0B /* dens_haz.c */; }; F4A9F3AC1742865A000087E1 /* dens_int.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3713213B19008DDA0B /* dens_int.c */; }; F4A9F3AD1742865A000087E1 /* dens_odi.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3813213B19008DDA0B /* dens_odi.c */; }; F4A9F3AE1742865A000087E1 /* startlf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6413204FE40031949A /* startlf.c */; }; F4A9F3AF1742865A000087E1 /* adap.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4013213C15008DDA0B /* adap.c */; }; F4A9F3B01742865A000087E1 /* dist.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4313213C49008DDA0B /* dist.c */; }; F4A9F3B11742865A000087E1 /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4613213CAE008DDA0B /* random.c */; }; F4A9F3B21742865A000087E1 /* lfd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4913213CDE008DDA0B /* lfd.c */; }; F4A9F3B31742865A000087E1 /* band.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4C13213D03008DDA0B /* band.c */; }; F4A9F3B41742865A000087E1 /* pout.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4F132150D9008DDA0B /* pout.c */; }; F4A9F3B51742865A000087E1 /* makecmd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F521321520A008DDA0B /* makecmd.c */; }; F4A9F3B61742865A000087E1 /* help.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5513215828008DDA0B /* help.c */; }; F4A9F3B71742865A000087E1 /* c_plot.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F581321587C008DDA0B /* c_plot.c */; }; F4A9F3B81742865A000087E1 /* readfile.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5B132158CA008DDA0B /* readfile.c */; }; F4A9F3B91742865A000087E1 /* multireads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A6183711324308800EFF9AF /* multireads.cpp */; }; F4A9F3BA1742865A000087E1 /* replicates.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED677C0D132A3D83000CFDC8 /* replicates.cpp */; }; F4A9F3BB1742865A000087E1 /* sampling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9CE680F8149FBEBD00855EDB /* sampling.cpp */; }; F4A9F3C01742865A000087E1 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = ED1C0D7911D7F94900CFD663 /* libz.dylib */; }; F4A9F3C617428670000087E1 /* cuffquant.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4A9F36D17428648000087E1 /* cuffquant.cpp */; }; F4A9F3C91742C26D000087E1 /* tracking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4A9F3C81742C26D000087E1 /* tracking.cpp */; }; F4A9F3CA1742C26D000087E1 /* tracking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4A9F3C81742C26D000087E1 /* tracking.cpp */; }; F4D2AB1518D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1218D108EC00BB1CF0 /* libboost_serialization-mt.a */; }; F4D2AB1618D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1218D108EC00BB1CF0 /* libboost_serialization-mt.a */; }; F4D2AB1718D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1218D108EC00BB1CF0 /* libboost_serialization-mt.a */; }; F4D2AB1818D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1218D108EC00BB1CF0 /* libboost_serialization-mt.a */; }; F4D2AB1918D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1218D108EC00BB1CF0 /* libboost_serialization-mt.a */; }; F4D2AB1A18D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1218D108EC00BB1CF0 /* libboost_serialization-mt.a */; }; F4D2AB1B18D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1218D108EC00BB1CF0 /* libboost_serialization-mt.a */; }; F4D2AB1C18D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1218D108EC00BB1CF0 /* libboost_serialization-mt.a */; }; F4D2AB1E18D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1318D108EC00BB1CF0 /* libboost_system-mt.a */; }; F4D2AB1F18D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1318D108EC00BB1CF0 /* libboost_system-mt.a */; }; F4D2AB2018D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1318D108EC00BB1CF0 /* libboost_system-mt.a */; }; F4D2AB2118D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1318D108EC00BB1CF0 /* libboost_system-mt.a */; }; F4D2AB2218D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1318D108EC00BB1CF0 /* libboost_system-mt.a */; }; F4D2AB2318D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1318D108EC00BB1CF0 /* libboost_system-mt.a */; }; F4D2AB2418D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1318D108EC00BB1CF0 /* libboost_system-mt.a */; }; F4D2AB2518D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1318D108EC00BB1CF0 /* libboost_system-mt.a */; }; F4D2AB2818D108EC00BB1CF0 /* libboost_thread-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1418D108EC00BB1CF0 /* libboost_thread-mt.a */; }; F4D2AB2918D108EC00BB1CF0 /* libboost_thread-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1418D108EC00BB1CF0 /* libboost_thread-mt.a */; }; F4D2AB2A18D108EC00BB1CF0 /* libboost_thread-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1418D108EC00BB1CF0 /* libboost_thread-mt.a */; }; F4D2AB2B18D108EC00BB1CF0 /* libboost_thread-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1418D108EC00BB1CF0 /* libboost_thread-mt.a */; }; F4D2AB2C18D108ED00BB1CF0 /* libboost_thread-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1418D108EC00BB1CF0 /* libboost_thread-mt.a */; }; F4D2AB2D18D108ED00BB1CF0 /* libboost_thread-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1418D108EC00BB1CF0 /* libboost_thread-mt.a */; }; F4D2AB2E18D108ED00BB1CF0 /* libboost_thread-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1418D108EC00BB1CF0 /* libboost_thread-mt.a */; }; F4D2AB3418D1124600BB1CF0 /* abundances.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5151E10C72963000A4F41 /* abundances.cpp */; }; F4D2AB3518D1124600BB1CF0 /* bundles.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152010C72963000A4F41 /* bundles.cpp */; }; F4D2AB3618D1124600BB1CF0 /* codons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152110C72963000A4F41 /* codons.cpp */; }; F4D2AB3718D1124600BB1CF0 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152210C72963000A4F41 /* common.cpp */; }; F4D2AB3818D1124600BB1CF0 /* filters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152610C72963000A4F41 /* filters.cpp */; }; F4D2AB3918D1124600BB1CF0 /* GArgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152710C72963000A4F41 /* GArgs.cpp */; }; F4D2AB3A18D1124600BB1CF0 /* GBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152810C72963000A4F41 /* GBase.cpp */; }; F4D2AB3B18D1124600BB1CF0 /* gdna.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152910C72963000A4F41 /* gdna.cpp */; }; F4D2AB3C18D1124600BB1CF0 /* genes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152A10C72963000A4F41 /* genes.cpp */; }; F4D2AB3D18D1124600BB1CF0 /* GFaSeqGet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152B10C72963000A4F41 /* GFaSeqGet.cpp */; }; F4D2AB3E18D1124600BB1CF0 /* gff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152C10C72963000A4F41 /* gff.cpp */; }; F4D2AB3F18D1124600BB1CF0 /* GStr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152D10C72963000A4F41 /* GStr.cpp */; }; F4D2AB4018D1124600BB1CF0 /* gtf_tracking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */; }; F4D2AB4118D1124600BB1CF0 /* hits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153010C72963000A4F41 /* hits.cpp */; }; F4D2AB4218D1124600BB1CF0 /* scaffolds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153110C72963000A4F41 /* scaffolds.cpp */; }; F4D2AB4318D1124600BB1CF0 /* tokenize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDA5153210C72963000A4F41 /* tokenize.cpp */; }; F4D2AB4418D1124600BB1CF0 /* differential.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDACE431114EFF5C009024DB /* differential.cpp */; }; F4D2AB4518D1124600BB1CF0 /* clustering.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDACE439114F031B009024DB /* clustering.cpp */; }; F4D2AB4618D1124600BB1CF0 /* biascorrection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDBAC4BF11FF5AD3002B7162 /* biascorrection.cpp */; }; F4D2AB4718D1124600BB1CF0 /* jensen_shannon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EDFE39FA122BE7B700F24CD3 /* jensen_shannon.cpp */; }; F4D2AB4818D1124600BB1CF0 /* GFastaIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED877B72123BCA3F0025A050 /* GFastaIndex.cpp */; }; F4D2AB4918D1124600BB1CF0 /* minmax.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5D13204FE30031949A /* minmax.c */; }; F4D2AB4A18D1124600BB1CF0 /* locfit.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5E13204FE30031949A /* locfit.c */; }; F4D2AB4B18D1124600BB1CF0 /* ev_interp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5F13204FE30031949A /* ev_interp.c */; }; F4D2AB4C18D1124600BB1CF0 /* ev_atree.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6013204FE30031949A /* ev_atree.c */; }; F4D2AB4D18D1124600BB1CF0 /* weight.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6113204FE30031949A /* weight.c */; }; F4D2AB4E18D1124600BB1CF0 /* wdiag.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6213204FE40031949A /* wdiag.c */; }; F4D2AB4F18D1124600BB1CF0 /* strings.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6313204FE40031949A /* strings.c */; }; F4D2AB5018D1124600BB1CF0 /* solve.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6513204FE40031949A /* solve.c */; }; F4D2AB5118D1124600BB1CF0 /* simul.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6613204FE40031949A /* simul.c */; }; F4D2AB5218D1124600BB1CF0 /* preplot.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6713204FE40031949A /* preplot.c */; }; F4D2AB5318D1124600BB1CF0 /* pcomp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6813204FE40031949A /* pcomp.c */; }; F4D2AB5418D1124600BB1CF0 /* nbhd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6913204FE40031949A /* nbhd.c */; }; F4D2AB5518D1124600BB1CF0 /* math.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6A13204FE40031949A /* math.c */; }; F4D2AB5618D1124600BB1CF0 /* m_max.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6B13204FE40031949A /* m_max.c */; }; F4D2AB5718D1124600BB1CF0 /* m_eigen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6C13204FE40031949A /* m_eigen.c */; }; F4D2AB5818D1124600BB1CF0 /* linalg.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6D13204FE40031949A /* linalg.c */; }; F4D2AB5918D1124600BB1CF0 /* lfstr.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6E13204FE40031949A /* lfstr.c */; }; F4D2AB5A18D1124600BB1CF0 /* lf_vari.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6F13204FE40031949A /* lf_vari.c */; }; F4D2AB5B18D1124600BB1CF0 /* lf_fitfun.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7013204FE50031949A /* lf_fitfun.c */; }; F4D2AB5C18D1124600BB1CF0 /* lf_dercor.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7113204FE50031949A /* lf_dercor.c */; }; F4D2AB5D18D1124600BB1CF0 /* frend.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7213204FE50031949A /* frend.c */; }; F4D2AB5E18D1124600BB1CF0 /* fitted.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7313204FE50031949A /* fitted.c */; }; F4D2AB5F18D1124600BB1CF0 /* family.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7413204FE50031949A /* family.c */; }; F4D2AB6018D1124600BB1CF0 /* ev_trian.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7513204FE50031949A /* ev_trian.c */; }; F4D2AB6118D1124600BB1CF0 /* ev_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7613204FE50031949A /* ev_main.c */; }; F4D2AB6218D1124600BB1CF0 /* ev_kdtre.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7713204FE50031949A /* ev_kdtre.c */; }; F4D2AB6318D1124600BB1CF0 /* scb.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7813204FE60031949A /* scb.c */; }; F4D2AB6418D1124600BB1CF0 /* scb_cons.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7A13204FE60031949A /* scb_cons.c */; }; F4D2AB6518D1124600BB1CF0 /* m_jacob.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B7D13204FE60031949A /* m_jacob.c */; }; F4D2AB6618D1124600BB1CF0 /* lf_robust.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8313204FE80031949A /* lf_robust.c */; }; F4D2AB6718D1124600BB1CF0 /* m_chol.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8413204FE80031949A /* m_chol.c */; }; F4D2AB6818D1124600BB1CF0 /* arith.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8913204FE90031949A /* arith.c */; }; F4D2AB6918D1124600BB1CF0 /* c_args.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8A13204FE90031949A /* c_args.c */; }; F4D2AB6A18D1124600BB1CF0 /* ar_funs.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B8B13204FE90031949A /* ar_funs.c */; }; F4D2AB6B18D1124600BB1CF0 /* cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B5913204F180031949A /* cmd.c */; }; F4D2AB6C18D1124600BB1CF0 /* density.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F30132137F4008DDA0B /* density.c */; }; F4D2AB6D18D1124600BB1CF0 /* vari.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3313213903008DDA0B /* vari.cpp */; }; F4D2AB6E18D1124600BB1CF0 /* dens_haz.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3613213B19008DDA0B /* dens_haz.c */; }; F4D2AB6F18D1124600BB1CF0 /* dens_int.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3713213B19008DDA0B /* dens_int.c */; }; F4D2AB7018D1124600BB1CF0 /* dens_odi.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F3813213B19008DDA0B /* dens_odi.c */; }; F4D2AB7118D1124600BB1CF0 /* startlf.c in Sources */ = {isa = PBXBuildFile; fileRef = 9CC50B6413204FE40031949A /* startlf.c */; }; F4D2AB7218D1124600BB1CF0 /* adap.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4013213C15008DDA0B /* adap.c */; }; F4D2AB7318D1124600BB1CF0 /* dist.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4313213C49008DDA0B /* dist.c */; }; F4D2AB7418D1124600BB1CF0 /* random.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4613213CAE008DDA0B /* random.c */; }; F4D2AB7518D1124600BB1CF0 /* lfd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4913213CDE008DDA0B /* lfd.c */; }; F4D2AB7618D1124600BB1CF0 /* band.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4C13213D03008DDA0B /* band.c */; }; F4D2AB7718D1124600BB1CF0 /* pout.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F4F132150D9008DDA0B /* pout.c */; }; F4D2AB7818D1124600BB1CF0 /* makecmd.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F521321520A008DDA0B /* makecmd.c */; }; F4D2AB7918D1124600BB1CF0 /* help.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5513215828008DDA0B /* help.c */; }; F4D2AB7A18D1124600BB1CF0 /* c_plot.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F581321587C008DDA0B /* c_plot.c */; }; F4D2AB7B18D1124600BB1CF0 /* readfile.c in Sources */ = {isa = PBXBuildFile; fileRef = ED920F5B132158CA008DDA0B /* readfile.c */; }; F4D2AB7C18D1124600BB1CF0 /* multireads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A6183711324308800EFF9AF /* multireads.cpp */; }; F4D2AB7D18D1124600BB1CF0 /* replicates.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ED677C0D132A3D83000CFDC8 /* replicates.cpp */; }; F4D2AB7E18D1124600BB1CF0 /* sampling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9CE680F8149FBEBD00855EDB /* sampling.cpp */; }; F4D2AB7F18D1124600BB1CF0 /* tracking.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4A9F3C81742C26D000087E1 /* tracking.cpp */; }; F4D2AB8118D1124600BB1CF0 /* libboost_serialization-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1218D108EC00BB1CF0 /* libboost_serialization-mt.a */; }; F4D2AB8318D1124600BB1CF0 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = ED1C0D7911D7F94900CFD663 /* libz.dylib */; }; F4D2AB8418D1124600BB1CF0 /* libboost_thread-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1418D108EC00BB1CF0 /* libboost_thread-mt.a */; }; F4D2AB8518D1124600BB1CF0 /* libboost_system-mt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F4D2AB1318D108EC00BB1CF0 /* libboost_system-mt.a */; }; F4D2AB8B18D1125D00BB1CF0 /* cuffnorm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F4D43F2118D0BA3600AEB7BA /* cuffnorm.cpp */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ 8DD76F690486A84900D96B5E /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; 9CD6E93B13379B7E00CCE1DE /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; ED41B834127602C60000B5A2 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; EDD0CE1E10C72F7D00AF308F /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; EDD6A9D111598AB900D3F668 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; EDD94B631205C9E800AA1086 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; EDFE39CA122BE65600F24CD3 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; F4A9F3C11742865A000087E1 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; F4D2AB8618D1124600BB1CF0 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 8; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( ); runOnlyForDeploymentPostprocessing = 1; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ 0A25E74B1242E95A0080BEA9 /* progressbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = progressbar.h; path = src/progressbar.h; sourceTree = ""; }; 0A4C0AD412F734DE0055A9D8 /* multireads.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = multireads.h; path = src/multireads.h; sourceTree = ""; }; 0A5D9A35123B5BE0002BEFD5 /* GFastaIndex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GFastaIndex.cpp; path = src/GFastaIndex.cpp; sourceTree = ""; }; 0A5D9A3F123B5BFE002BEFD5 /* GFastaIndex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GFastaIndex.h; path = src/GFastaIndex.h; sourceTree = ""; }; 0A6183711324308800EFF9AF /* multireads.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = multireads.cpp; path = src/multireads.cpp; sourceTree = ""; }; 0A87350214118DD700E28429 /* libboost_thread-mt.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libboost_thread-mt.a"; path = "/opt/local/lib/libboost_thread-mt.a"; sourceTree = ""; }; 0ACD78C612E6647B00310E07 /* update_check.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = update_check.h; path = src/update_check.h; sourceTree = ""; }; 9C198ABD12F231CD00919C3B /* test_scaffolds.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_scaffolds.cpp; sourceTree = ""; }; 9C29C3E31339285000EC6E65 /* vari.hpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; path = vari.hpp; sourceTree = ""; }; 9C40F31B13C78FEF00515339 /* cuffmerge */ = {isa = PBXFileReference; explicitFileType = text.script.python; name = cuffmerge; path = src/cuffmerge; sourceTree = ""; }; 9CC50B5913204F180031949A /* cmd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 0; path = cmd.c; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.c; }; 9CC50B5D13204FE30031949A /* minmax.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = minmax.c; sourceTree = ""; }; 9CC50B5E13204FE30031949A /* locfit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = locfit.c; sourceTree = ""; }; 9CC50B5F13204FE30031949A /* ev_interp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ev_interp.c; sourceTree = ""; }; 9CC50B6013204FE30031949A /* ev_atree.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ev_atree.c; sourceTree = ""; }; 9CC50B6113204FE30031949A /* weight.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = weight.c; sourceTree = ""; }; 9CC50B6213204FE40031949A /* wdiag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wdiag.c; sourceTree = ""; }; 9CC50B6313204FE40031949A /* strings.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = strings.c; sourceTree = ""; }; 9CC50B6413204FE40031949A /* startlf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; lineEnding = 0; path = startlf.c; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.c; }; 9CC50B6513204FE40031949A /* solve.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = solve.c; sourceTree = ""; }; 9CC50B6613204FE40031949A /* simul.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = simul.c; sourceTree = ""; }; 9CC50B6713204FE40031949A /* preplot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = preplot.c; sourceTree = ""; }; 9CC50B6813204FE40031949A /* pcomp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pcomp.c; sourceTree = ""; }; 9CC50B6913204FE40031949A /* nbhd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nbhd.c; sourceTree = ""; }; 9CC50B6A13204FE40031949A /* math.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = math.c; sourceTree = ""; }; 9CC50B6B13204FE40031949A /* m_max.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = m_max.c; sourceTree = ""; }; 9CC50B6C13204FE40031949A /* m_eigen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = m_eigen.c; sourceTree = ""; }; 9CC50B6D13204FE40031949A /* linalg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = linalg.c; sourceTree = ""; }; 9CC50B6E13204FE40031949A /* lfstr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lfstr.c; sourceTree = ""; }; 9CC50B6F13204FE40031949A /* lf_vari.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lf_vari.c; sourceTree = ""; }; 9CC50B7013204FE50031949A /* lf_fitfun.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lf_fitfun.c; sourceTree = ""; }; 9CC50B7113204FE50031949A /* lf_dercor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lf_dercor.c; sourceTree = ""; }; 9CC50B7213204FE50031949A /* frend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = frend.c; sourceTree = ""; }; 9CC50B7313204FE50031949A /* fitted.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fitted.c; sourceTree = ""; }; 9CC50B7413204FE50031949A /* family.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = family.c; sourceTree = ""; }; 9CC50B7513204FE50031949A /* ev_trian.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ev_trian.c; sourceTree = ""; }; 9CC50B7613204FE50031949A /* ev_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ev_main.c; sourceTree = ""; }; 9CC50B7713204FE50031949A /* ev_kdtre.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ev_kdtre.c; sourceTree = ""; }; 9CC50B7813204FE60031949A /* scb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = scb.c; sourceTree = ""; }; 9CC50B7A13204FE60031949A /* scb_cons.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = scb_cons.c; sourceTree = ""; }; 9CC50B7B13204FE60031949A /* local.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; lineEnding = 0; path = local.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; 9CC50B7D13204FE60031949A /* m_jacob.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = m_jacob.c; sourceTree = ""; }; 9CC50B7F13204FE70031949A /* design.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = design.h; sourceTree = ""; }; 9CC50B8013204FE70031949A /* lffuns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lffuns.h; sourceTree = ""; }; 9CC50B8113204FE70031949A /* lfstruc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lfstruc.h; sourceTree = ""; }; 9CC50B8213204FE70031949A /* mutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mutil.h; sourceTree = ""; }; 9CC50B8313204FE80031949A /* lf_robust.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lf_robust.c; sourceTree = ""; }; 9CC50B8413204FE80031949A /* m_chol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = m_chol.c; sourceTree = ""; }; 9CC50B8513204FE80031949A /* lfcons.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lfcons.h; sourceTree = ""; }; 9CC50B8913204FE90031949A /* arith.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = arith.c; sourceTree = ""; }; 9CC50B8A13204FE90031949A /* c_args.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = c_args.c; sourceTree = ""; }; 9CC50B8B13204FE90031949A /* ar_funs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ar_funs.c; sourceTree = ""; }; 9CC50B8E13204FEA0031949A /* lfwin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lfwin.h; sourceTree = ""; }; 9CC50B8F13204FEA0031949A /* imatlb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imatlb.h; sourceTree = ""; }; 9CD6E8D913379B0900CCE1DE /* compress_gtf.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = compress_gtf.cpp; path = src/compress_gtf.cpp; sourceTree = ""; }; 9CD6E93F13379B7E00CCE1DE /* compress_gtf */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = compress_gtf; sourceTree = BUILT_PRODUCTS_DIR; }; 9CE680F6149697B500855EDB /* cuffmerge */ = {isa = PBXFileReference; explicitFileType = text.script.python; name = cuffmerge; path = src/cuffmerge; sourceTree = ""; }; 9CE680F7149FBE2F00855EDB /* sampling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sampling.h; path = src/sampling.h; sourceTree = ""; }; 9CE680F8149FBEBD00855EDB /* sampling.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = sampling.cpp; path = src/sampling.cpp; sourceTree = ""; }; A2047A17191141C7007193FC /* libbam.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libbam.a; path = ../../../../opt/local/libIntel64/libbam.a; sourceTree = ""; }; ED1C0C7111D7D9E500CFD663 /* ax_boost_base.m4 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ax_boost_base.m4; sourceTree = ""; }; ED1C0C7211D7D9E500CFD663 /* ax_boost_thread.m4 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ax_boost_thread.m4; sourceTree = ""; }; ED1C0C7411D7DA3200CFD663 /* ax_bam.m4 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ax_bam.m4; sourceTree = ""; }; ED1C0CAA11D7E52400CFD663 /* ax_check_zlib.m4 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ax_check_zlib.m4; sourceTree = ""; }; ED1C0D7911D7F94900CFD663 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; ED41B838127602C60000B5A2 /* cufflinks_xcode */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cufflinks_xcode; sourceTree = BUILT_PRODUCTS_DIR; }; ED4835D81249057500642337 /* progressbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = progressbar.h; path = src/progressbar.h; sourceTree = ""; }; ED677C0D132A3D83000CFDC8 /* replicates.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = replicates.cpp; path = src/replicates.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; ED677C0E132A3D83000CFDC8 /* replicates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = replicates.h; path = src/replicates.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; ED877B72123BCA3F0025A050 /* GFastaIndex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GFastaIndex.cpp; path = src/GFastaIndex.cpp; sourceTree = ""; }; ED920F30132137F4008DDA0B /* density.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = density.c; sourceTree = ""; }; ED920F3313213903008DDA0B /* vari.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; path = vari.cpp; sourceTree = ""; }; ED920F3613213B19008DDA0B /* dens_haz.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dens_haz.c; sourceTree = ""; }; ED920F3713213B19008DDA0B /* dens_int.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dens_int.c; sourceTree = ""; }; ED920F3813213B19008DDA0B /* dens_odi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dens_odi.c; sourceTree = ""; }; ED920F4013213C15008DDA0B /* adap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = adap.c; sourceTree = ""; }; ED920F4313213C49008DDA0B /* dist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dist.c; sourceTree = ""; }; ED920F4613213CAE008DDA0B /* random.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = random.c; sourceTree = ""; }; ED920F4913213CDE008DDA0B /* lfd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lfd.c; sourceTree = ""; }; ED920F4C13213D03008DDA0B /* band.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = band.c; sourceTree = ""; }; ED920F4F132150D9008DDA0B /* pout.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pout.c; sourceTree = ""; }; ED920F521321520A008DDA0B /* makecmd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = makecmd.c; sourceTree = ""; }; ED920F5513215828008DDA0B /* help.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = help.c; sourceTree = ""; }; ED920F581321587C008DDA0B /* c_plot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = c_plot.c; sourceTree = ""; }; ED920F5B132158CA008DDA0B /* readfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = readfile.c; sourceTree = ""; }; EDA5150910C72963000A4F41 /* abundances.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = abundances.h; path = src/abundances.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; EDA5150A10C72963000A4F41 /* assemble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = assemble.h; path = src/assemble.h; sourceTree = ""; }; EDA5150B10C72963000A4F41 /* bundles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = bundles.h; path = src/bundles.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; EDA5150C10C72963000A4F41 /* codons.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = codons.h; path = src/codons.h; sourceTree = ""; }; EDA5150D10C72963000A4F41 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = common.h; path = src/common.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; EDA5150E10C72963000A4F41 /* filters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = filters.h; path = src/filters.h; sourceTree = ""; }; EDA5150F10C72963000A4F41 /* GArgs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GArgs.h; path = src/GArgs.h; sourceTree = ""; }; EDA5151010C72963000A4F41 /* GBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GBase.h; path = src/GBase.h; sourceTree = ""; }; EDA5151110C72963000A4F41 /* gdna.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gdna.h; path = src/gdna.h; sourceTree = ""; }; EDA5151210C72963000A4F41 /* genes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = genes.h; path = src/genes.h; sourceTree = ""; }; EDA5151310C72963000A4F41 /* GFaSeqGet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GFaSeqGet.h; path = src/GFaSeqGet.h; sourceTree = ""; }; EDA5151510C72963000A4F41 /* gff.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gff.h; path = src/gff.h; sourceTree = ""; }; EDA5151610C72963000A4F41 /* GStr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GStr.h; path = src/GStr.h; sourceTree = ""; }; EDA5151710C72963000A4F41 /* gtf_tracking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gtf_tracking.h; path = src/gtf_tracking.h; sourceTree = ""; }; EDA5151810C72963000A4F41 /* hits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = hits.h; path = src/hits.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; EDA5151910C72963000A4F41 /* scaffolds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scaffolds.h; path = src/scaffolds.h; sourceTree = ""; }; EDA5151A10C72963000A4F41 /* tokenize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tokenize.h; path = src/tokenize.h; sourceTree = ""; }; EDA5151B10C72963000A4F41 /* transitive_closure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = transitive_closure.h; path = src/transitive_closure.h; sourceTree = ""; }; EDA5151C10C72963000A4F41 /* GHash.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = GHash.hh; path = src/GHash.hh; sourceTree = ""; }; EDA5151D10C72963000A4F41 /* GList.hh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = GList.hh; path = src/GList.hh; sourceTree = ""; }; EDA5151E10C72963000A4F41 /* abundances.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = abundances.cpp; path = src/abundances.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDA5151F10C72963000A4F41 /* assemble.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = assemble.cpp; path = src/assemble.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDA5152010C72963000A4F41 /* bundles.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = bundles.cpp; path = src/bundles.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDA5152110C72963000A4F41 /* codons.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = codons.cpp; path = src/codons.cpp; sourceTree = ""; }; EDA5152210C72963000A4F41 /* common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = common.cpp; path = src/common.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDA5152310C72963000A4F41 /* cuffcompare.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = cuffcompare.cpp; path = src/cuffcompare.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDA5152410C72963000A4F41 /* cuffdiff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = cuffdiff.cpp; path = src/cuffdiff.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDA5152510C72963000A4F41 /* cufflinks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = cufflinks.cpp; path = src/cufflinks.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDA5152610C72963000A4F41 /* filters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = filters.cpp; path = src/filters.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDA5152710C72963000A4F41 /* GArgs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GArgs.cpp; path = src/GArgs.cpp; sourceTree = ""; }; EDA5152810C72963000A4F41 /* GBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GBase.cpp; path = src/GBase.cpp; sourceTree = ""; }; EDA5152910C72963000A4F41 /* gdna.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gdna.cpp; path = src/gdna.cpp; sourceTree = ""; }; EDA5152A10C72963000A4F41 /* genes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = genes.cpp; path = src/genes.cpp; sourceTree = ""; }; EDA5152B10C72963000A4F41 /* GFaSeqGet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GFaSeqGet.cpp; path = src/GFaSeqGet.cpp; sourceTree = ""; }; EDA5152C10C72963000A4F41 /* gff.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gff.cpp; path = src/gff.cpp; sourceTree = ""; }; EDA5152D10C72963000A4F41 /* GStr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GStr.cpp; path = src/GStr.cpp; sourceTree = ""; }; EDA5152E10C72963000A4F41 /* gtf_reads.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gtf_reads.cpp; path = src/gtf_reads.cpp; sourceTree = ""; }; EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gtf_tracking.cpp; path = src/gtf_tracking.cpp; sourceTree = ""; }; EDA5153010C72963000A4F41 /* hits.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = hits.cpp; path = src/hits.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDA5153110C72963000A4F41 /* scaffolds.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = scaffolds.cpp; path = src/scaffolds.cpp; sourceTree = ""; }; EDA5153210C72963000A4F41 /* tokenize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tokenize.cpp; path = src/tokenize.cpp; sourceTree = ""; }; EDACE430114EFF5C009024DB /* differential.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; lineEnding = 0; name = differential.h; path = src/differential.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDACE431114EFF5C009024DB /* differential.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = differential.cpp; path = src/differential.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDACE438114F031B009024DB /* clustering.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = clustering.h; path = src/clustering.h; sourceTree = ""; }; EDACE439114F031B009024DB /* clustering.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = clustering.cpp; path = src/clustering.cpp; sourceTree = ""; }; EDBAC4BF11FF5AD3002B7162 /* biascorrection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = biascorrection.cpp; path = src/biascorrection.cpp; sourceTree = ""; }; EDBAC4C011FF5AD3002B7162 /* biascorrection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = biascorrection.h; path = src/biascorrection.h; sourceTree = ""; }; EDBBE9C811AA3F5E006AC14A /* transitive_reduction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = transitive_reduction.h; path = src/transitive_reduction.h; sourceTree = ""; }; EDD0CD9C10C72AC200AF308F /* cufflinks */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cufflinks; sourceTree = BUILT_PRODUCTS_DIR; }; EDD0CE2210C72F7D00AF308F /* cuffdiff */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cuffdiff; sourceTree = BUILT_PRODUCTS_DIR; }; EDD6A7A0115562EE00D3F668 /* Makefile.am */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Makefile.am; path = src/Makefile.am; sourceTree = ""; }; EDD6A9D511598ABA00D3F668 /* cufflinks_xcode */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cufflinks_xcode; sourceTree = BUILT_PRODUCTS_DIR; }; EDD6AA461159BE6500D3F668 /* test_abundances.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_abundances.cpp; sourceTree = ""; }; EDD6AA471159BE6500D3F668 /* test_main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_main.cpp; sourceTree = ""; }; EDD94B671205C9E800AA1086 /* cufflinks_xcode */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cufflinks_xcode; sourceTree = BUILT_PRODUCTS_DIR; }; EDD94B711205CAF400AA1086 /* gtf_to_sam.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gtf_to_sam.cpp; path = src/gtf_to_sam.cpp; sourceTree = ""; }; EDDBF70912D29DF000130D8A /* cuffcluster.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = cuffcluster.cpp; path = src/cuffcluster.cpp; sourceTree = ""; }; EDDC08C015064AA600CFC7EF /* ax_check_eigen.m4 */ = {isa = PBXFileReference; lastKnownFileType = text; path = ax_check_eigen.m4; sourceTree = ""; }; EDE26F1E15115CCB00A5199D /* rounding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rounding.h; path = src/rounding.h; sourceTree = ""; }; EDE78A2B11B5F4F0000F8846 /* graph_optimize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = graph_optimize.h; path = src/graph_optimize.h; sourceTree = ""; }; EDE78A2C11B5F4F0000F8846 /* graph_optimize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = graph_optimize.cpp; path = src/graph_optimize.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDE78A7811B6E912000F8846 /* scaffold_graph.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = scaffold_graph.h; path = src/scaffold_graph.h; sourceTree = ""; }; EDE78A7911B6E912000F8846 /* scaffold_graph.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; name = scaffold_graph.cpp; path = src/scaffold_graph.cpp; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; EDE78BC411B716C3000F8846 /* matching_merge.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = matching_merge.cpp; path = src/matching_merge.cpp; sourceTree = ""; }; EDE78BC511B716C3000F8846 /* matching_merge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = matching_merge.h; path = src/matching_merge.h; sourceTree = ""; }; EDEBCDF8112DFD7600E2479E /* configure.ac */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = configure.ac; sourceTree = ""; }; EDEBCEBB112E316400E2479E /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; EDFE39CE122BE65600F24CD3 /* cuffcluster */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cuffcluster; sourceTree = BUILT_PRODUCTS_DIR; }; EDFE39FA122BE7B700F24CD3 /* jensen_shannon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jensen_shannon.cpp; path = src/jensen_shannon.cpp; sourceTree = ""; }; EDFE39FD122BE7CB00F24CD3 /* jensen_shannon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jensen_shannon.h; path = src/jensen_shannon.h; sourceTree = ""; }; F4A9F36D17428648000087E1 /* cuffquant.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = cuffquant.cpp; path = src/cuffquant.cpp; sourceTree = ""; }; F4A9F3C51742865A000087E1 /* cuffquant */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cuffquant; sourceTree = BUILT_PRODUCTS_DIR; }; F4A9F3C71742B994000087E1 /* tracking.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = tracking.h; path = src/tracking.h; sourceTree = ""; }; F4A9F3C81742C26D000087E1 /* tracking.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tracking.cpp; path = src/tracking.cpp; sourceTree = ""; }; F4A9F3CB1742D011000087E1 /* ax_boost_serialization.m4 */ = {isa = PBXFileReference; lastKnownFileType = text; path = ax_boost_serialization.m4; sourceTree = ""; }; F4D2AB1218D108EC00BB1CF0 /* libboost_serialization-mt.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libboost_serialization-mt.a"; path = "../../../../opt/local/lib/libboost_serialization-mt.a"; sourceTree = ""; }; F4D2AB1318D108EC00BB1CF0 /* libboost_system-mt.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libboost_system-mt.a"; path = "../../../../opt/local/lib/libboost_system-mt.a"; sourceTree = ""; }; F4D2AB1418D108EC00BB1CF0 /* libboost_thread-mt.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libboost_thread-mt.a"; path = "../../../../opt/local/lib/libboost_thread-mt.a"; sourceTree = ""; }; F4D2AB8A18D1124600BB1CF0 /* cuffdiff copy */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "cuffdiff copy"; sourceTree = BUILT_PRODUCTS_DIR; }; F4D43F2118D0BA3600AEB7BA /* cuffnorm.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = cuffnorm.cpp; path = src/cuffnorm.cpp; sourceTree = ""; }; F4D43F2818D0BA9900AEB7BA /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; F4D43F2A18D0BA9900AEB7BA /* cuffnorm.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = cuffnorm.1; sourceTree = ""; }; F4DD461F1625F564008994EC /* negative_binomial_distribution.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = negative_binomial_distribution.h; path = src/negative_binomial_distribution.h; sourceTree = ""; }; F4E2296816CD261C00D355C5 /* ax_boost_system.m4 */ = {isa = PBXFileReference; lastKnownFileType = text; path = ax_boost_system.m4; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 8DD76F660486A84900D96B5E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( A2047A18191141C7007193FC /* libbam.a in Frameworks */, ED1C0D7A11D7F94900CFD663 /* libz.dylib in Frameworks */, 0A87350314118DD700E28429 /* libboost_thread-mt.a in Frameworks */, F4D2AB1518D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */, F4D2AB1E18D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; 9CD6E93713379B7E00CCE1DE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( F4D2AB1918D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */, 9CD6E93A13379B7E00CCE1DE /* libz.dylib in Frameworks */, F4D2AB2B18D108EC00BB1CF0 /* libboost_thread-mt.a in Frameworks */, F4D2AB2218D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; ED41B830127602C60000B5A2 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( F4D2AB1B18D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */, ED41B833127602C60000B5A2 /* libz.dylib in Frameworks */, F4D2AB2D18D108ED00BB1CF0 /* libboost_thread-mt.a in Frameworks */, F4D2AB2418D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; EDD0CE1C10C72F7D00AF308F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( A2047A19191141C7007193FC /* libbam.a in Frameworks */, F4D2AB1618D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */, EDE107E911E37CE7005F1F4B /* libz.dylib in Frameworks */, F4D2AB2818D108EC00BB1CF0 /* libboost_thread-mt.a in Frameworks */, F4D2AB1F18D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; EDD6A9CF11598AB900D3F668 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( F4D2AB1718D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */, F4D2AB2918D108EC00BB1CF0 /* libboost_thread-mt.a in Frameworks */, F4D2AB2018D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; EDD94B5F1205C9E800AA1086 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( F4D2AB1818D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */, EDD94B621205C9E800AA1086 /* libz.dylib in Frameworks */, F4D2AB2A18D108EC00BB1CF0 /* libboost_thread-mt.a in Frameworks */, F4D2AB2118D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; EDFE39C6122BE65600F24CD3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( F4D2AB1A18D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */, EDFE39C9122BE65600F24CD3 /* libz.dylib in Frameworks */, F4D2AB2C18D108ED00BB1CF0 /* libboost_thread-mt.a in Frameworks */, F4D2AB2318D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; F4A9F3BC1742865A000087E1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( A2047A1A191141C8007193FC /* libbam.a in Frameworks */, F4D2AB1C18D108EC00BB1CF0 /* libboost_serialization-mt.a in Frameworks */, F4A9F3C01742865A000087E1 /* libz.dylib in Frameworks */, F4D2AB2E18D108ED00BB1CF0 /* libboost_thread-mt.a in Frameworks */, F4D2AB2518D108EC00BB1CF0 /* libboost_system-mt.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; F4D2AB8018D1124600BB1CF0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( A2047A1B191141C8007193FC /* libbam.a in Frameworks */, F4D2AB8118D1124600BB1CF0 /* libboost_serialization-mt.a in Frameworks */, F4D2AB8318D1124600BB1CF0 /* libz.dylib in Frameworks */, F4D2AB8418D1124600BB1CF0 /* libboost_thread-mt.a in Frameworks */, F4D2AB8518D1124600BB1CF0 /* libboost_system-mt.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 08FB7794FE84155DC02AAC07 /* cufflinks_xcode */ = { isa = PBXGroup; children = ( A2047A17191141C7007193FC /* libbam.a */, F4D2AB1218D108EC00BB1CF0 /* libboost_serialization-mt.a */, F4D2AB1318D108EC00BB1CF0 /* libboost_system-mt.a */, F4D2AB1418D108EC00BB1CF0 /* libboost_thread-mt.a */, EDD6AA441159BE6500D3F668 /* tests */, 0A25E74A1242E9270080BEA9 /* src */, C6859E8C029090F304C91782 /* Documentation */, F4D43F2718D0BA9900AEB7BA /* cuffnorm */, 1AB674ADFE9D54B511CA2CBB /* Products */, EDEBCEBB112E316400E2479E /* Accelerate.framework */, ED1C0D7911D7F94900CFD663 /* libz.dylib */, ); name = cufflinks_xcode; sourceTree = ""; }; 0A25E74A1242E9270080BEA9 /* src */ = { isa = PBXGroup; children = ( EDA5151E10C72963000A4F41 /* abundances.cpp */, EDA5150910C72963000A4F41 /* abundances.h */, EDA5151F10C72963000A4F41 /* assemble.cpp */, EDA5150A10C72963000A4F41 /* assemble.h */, ED1C0C6D11D7D9C000CFD663 /* Autotools */, EDBAC4BF11FF5AD3002B7162 /* biascorrection.cpp */, EDBAC4C011FF5AD3002B7162 /* biascorrection.h */, EDA5152010C72963000A4F41 /* bundles.cpp */, EDA5150B10C72963000A4F41 /* bundles.h */, EDACE439114F031B009024DB /* clustering.cpp */, EDACE438114F031B009024DB /* clustering.h */, EDA5152110C72963000A4F41 /* codons.cpp */, EDA5150C10C72963000A4F41 /* codons.h */, EDA5152210C72963000A4F41 /* common.cpp */, EDA5150D10C72963000A4F41 /* common.h */, 9CD6E8D913379B0900CCE1DE /* compress_gtf.cpp */, EDDBF70912D29DF000130D8A /* cuffcluster.cpp */, EDA5152310C72963000A4F41 /* cuffcompare.cpp */, EDA5152410C72963000A4F41 /* cuffdiff.cpp */, EDA5152510C72963000A4F41 /* cufflinks.cpp */, F4D43F2118D0BA3600AEB7BA /* cuffnorm.cpp */, 9CE680F6149697B500855EDB /* cuffmerge */, F4A9F36D17428648000087E1 /* cuffquant.cpp */, EDACE431114EFF5C009024DB /* differential.cpp */, EDACE430114EFF5C009024DB /* differential.h */, EDA5152610C72963000A4F41 /* filters.cpp */, EDA5150E10C72963000A4F41 /* filters.h */, EDA5152710C72963000A4F41 /* GArgs.cpp */, EDA5150F10C72963000A4F41 /* GArgs.h */, EDA5152810C72963000A4F41 /* GBase.cpp */, EDA5151010C72963000A4F41 /* GBase.h */, EDA5152910C72963000A4F41 /* gdna.cpp */, EDA5151110C72963000A4F41 /* gdna.h */, EDA5152A10C72963000A4F41 /* genes.cpp */, EDA5151210C72963000A4F41 /* genes.h */, EDA5152B10C72963000A4F41 /* GFaSeqGet.cpp */, EDA5151310C72963000A4F41 /* GFaSeqGet.h */, ED877B72123BCA3F0025A050 /* GFastaIndex.cpp */, 0A5D9A3F123B5BFE002BEFD5 /* GFastaIndex.h */, EDA5152C10C72963000A4F41 /* gff.cpp */, EDA5151510C72963000A4F41 /* gff.h */, EDA5151C10C72963000A4F41 /* GHash.hh */, EDA5151D10C72963000A4F41 /* GList.hh */, EDE78A2C11B5F4F0000F8846 /* graph_optimize.cpp */, EDE78A2B11B5F4F0000F8846 /* graph_optimize.h */, EDA5152D10C72963000A4F41 /* GStr.cpp */, EDA5151610C72963000A4F41 /* GStr.h */, EDA5152E10C72963000A4F41 /* gtf_reads.cpp */, EDD94B711205CAF400AA1086 /* gtf_to_sam.cpp */, EDA5152F10C72963000A4F41 /* gtf_tracking.cpp */, EDA5151710C72963000A4F41 /* gtf_tracking.h */, EDA5153010C72963000A4F41 /* hits.cpp */, EDA5151810C72963000A4F41 /* hits.h */, EDFE39FA122BE7B700F24CD3 /* jensen_shannon.cpp */, EDFE39FD122BE7CB00F24CD3 /* jensen_shannon.h */, 9CC50B5813204F180031949A /* locfit */, EDE78BC411B716C3000F8846 /* matching_merge.cpp */, EDE78BC511B716C3000F8846 /* matching_merge.h */, 0A6183711324308800EFF9AF /* multireads.cpp */, 0A4C0AD412F734DE0055A9D8 /* multireads.h */, F4DD461F1625F564008994EC /* negative_binomial_distribution.h */, 0A25E74B1242E95A0080BEA9 /* progressbar.h */, 0A5D9A35123B5BE0002BEFD5 /* GFastaIndex.cpp */, ED677C0D132A3D83000CFDC8 /* replicates.cpp */, ED677C0E132A3D83000CFDC8 /* replicates.h */, EDE26F1E15115CCB00A5199D /* rounding.h */, 9CE680F8149FBEBD00855EDB /* sampling.cpp */, 9CE680F7149FBE2F00855EDB /* sampling.h */, EDE78A7911B6E912000F8846 /* scaffold_graph.cpp */, EDE78A7811B6E912000F8846 /* scaffold_graph.h */, EDA5153110C72963000A4F41 /* scaffolds.cpp */, EDA5151910C72963000A4F41 /* scaffolds.h */, EDA5153210C72963000A4F41 /* tokenize.cpp */, EDA5151A10C72963000A4F41 /* tokenize.h */, F4A9F3C81742C26D000087E1 /* tracking.cpp */, F4A9F3C71742B994000087E1 /* tracking.h */, EDA5151B10C72963000A4F41 /* transitive_closure.h */, EDBBE9C811AA3F5E006AC14A /* transitive_reduction.h */, 0ACD78C612E6647B00310E07 /* update_check.h */, ED4835D81249057500642337 /* progressbar.h */, 0A5D9A3F123B5BFE002BEFD5 /* GFastaIndex.h */, 9C40F31B13C78FEF00515339 /* cuffmerge */, ); name = src; sourceTree = ""; }; 1AB674ADFE9D54B511CA2CBB /* Products */ = { isa = PBXGroup; children = ( EDD0CD9C10C72AC200AF308F /* cufflinks */, EDD0CE2210C72F7D00AF308F /* cuffdiff */, EDD6A9D511598ABA00D3F668 /* cufflinks_xcode */, EDD94B671205C9E800AA1086 /* cufflinks_xcode */, EDFE39CE122BE65600F24CD3 /* cuffcluster */, ED41B838127602C60000B5A2 /* cufflinks_xcode */, 9CD6E93F13379B7E00CCE1DE /* compress_gtf */, F4A9F3C51742865A000087E1 /* cuffquant */, F4D2AB8A18D1124600BB1CF0 /* cuffdiff copy */, ); name = Products; sourceTree = ""; }; 9CC50B5813204F180031949A /* locfit */ = { isa = PBXGroup; children = ( ED920F3613213B19008DDA0B /* dens_haz.c */, ED920F3713213B19008DDA0B /* dens_int.c */, ED920F3813213B19008DDA0B /* dens_odi.c */, ED920F3313213903008DDA0B /* vari.cpp */, ED920F30132137F4008DDA0B /* density.c */, 9CC50B5D13204FE30031949A /* minmax.c */, 9CC50B5E13204FE30031949A /* locfit.c */, 9CC50B5F13204FE30031949A /* ev_interp.c */, 9CC50B6013204FE30031949A /* ev_atree.c */, 9CC50B6113204FE30031949A /* weight.c */, 9CC50B6213204FE40031949A /* wdiag.c */, ED920F4013213C15008DDA0B /* adap.c */, 9CC50B6313204FE40031949A /* strings.c */, ED920F4F132150D9008DDA0B /* pout.c */, ED920F4313213C49008DDA0B /* dist.c */, 9CC50B6413204FE40031949A /* startlf.c */, ED920F4C13213D03008DDA0B /* band.c */, ED920F4913213CDE008DDA0B /* lfd.c */, ED920F5B132158CA008DDA0B /* readfile.c */, ED920F521321520A008DDA0B /* makecmd.c */, ED920F4613213CAE008DDA0B /* random.c */, ED920F5513215828008DDA0B /* help.c */, ED920F581321587C008DDA0B /* c_plot.c */, 9CC50B6513204FE40031949A /* solve.c */, 9CC50B6613204FE40031949A /* simul.c */, 9CC50B6713204FE40031949A /* preplot.c */, 9CC50B6813204FE40031949A /* pcomp.c */, 9CC50B6913204FE40031949A /* nbhd.c */, 9CC50B6A13204FE40031949A /* math.c */, 9CC50B6B13204FE40031949A /* m_max.c */, 9CC50B6C13204FE40031949A /* m_eigen.c */, 9CC50B6D13204FE40031949A /* linalg.c */, 9CC50B6E13204FE40031949A /* lfstr.c */, 9CC50B6F13204FE40031949A /* lf_vari.c */, 9CC50B7013204FE50031949A /* lf_fitfun.c */, 9CC50B7113204FE50031949A /* lf_dercor.c */, 9CC50B7213204FE50031949A /* frend.c */, 9CC50B7313204FE50031949A /* fitted.c */, 9CC50B7413204FE50031949A /* family.c */, 9CC50B7513204FE50031949A /* ev_trian.c */, 9CC50B7613204FE50031949A /* ev_main.c */, 9CC50B7713204FE50031949A /* ev_kdtre.c */, 9CC50B7813204FE60031949A /* scb.c */, 9CC50B7A13204FE60031949A /* scb_cons.c */, 9CC50B7B13204FE60031949A /* local.h */, 9CC50B7D13204FE60031949A /* m_jacob.c */, 9CC50B7F13204FE70031949A /* design.h */, 9CC50B8013204FE70031949A /* lffuns.h */, 9CC50B8113204FE70031949A /* lfstruc.h */, 9CC50B8213204FE70031949A /* mutil.h */, 9CC50B8313204FE80031949A /* lf_robust.c */, 9CC50B8413204FE80031949A /* m_chol.c */, 9CC50B8513204FE80031949A /* lfcons.h */, 9CC50B8913204FE90031949A /* arith.c */, 9CC50B8A13204FE90031949A /* c_args.c */, 9CC50B8B13204FE90031949A /* ar_funs.c */, 9CC50B8E13204FEA0031949A /* lfwin.h */, 9CC50B8F13204FEA0031949A /* imatlb.h */, 9CC50B5913204F180031949A /* cmd.c */, 9C29C3E31339285000EC6E65 /* vari.hpp */, ); name = locfit; path = src/locfit; sourceTree = ""; }; C6859E8C029090F304C91782 /* Documentation */ = { isa = PBXGroup; children = ( ); name = Documentation; sourceTree = ""; }; ED1C0C6D11D7D9C000CFD663 /* Autotools */ = { isa = PBXGroup; children = ( EDDC08C015064AA600CFC7EF /* ax_check_eigen.m4 */, ED1C0CAA11D7E52400CFD663 /* ax_check_zlib.m4 */, ED1C0C7111D7D9E500CFD663 /* ax_boost_base.m4 */, ED1C0C7211D7D9E500CFD663 /* ax_boost_thread.m4 */, F4A9F3CB1742D011000087E1 /* ax_boost_serialization.m4 */, F4E2296816CD261C00D355C5 /* ax_boost_system.m4 */, EDEBCDF8112DFD7600E2479E /* configure.ac */, EDD6A7A0115562EE00D3F668 /* Makefile.am */, ED1C0C7411D7DA3200CFD663 /* ax_bam.m4 */, ); name = Autotools; sourceTree = ""; }; EDD6AA441159BE6500D3F668 /* tests */ = { isa = PBXGroup; children = ( EDD6AA451159BE6500D3F668 /* unit_tests */, ); path = tests; sourceTree = ""; }; EDD6AA451159BE6500D3F668 /* unit_tests */ = { isa = PBXGroup; children = ( EDD6AA461159BE6500D3F668 /* test_abundances.cpp */, EDD6AA471159BE6500D3F668 /* test_main.cpp */, 9C198ABD12F231CD00919C3B /* test_scaffolds.cpp */, ); path = unit_tests; sourceTree = ""; }; F4D43F2718D0BA9900AEB7BA /* cuffnorm */ = { isa = PBXGroup; children = ( F4D43F2818D0BA9900AEB7BA /* main.cpp */, F4D43F2A18D0BA9900AEB7BA /* cuffnorm.1 */, ); path = cuffnorm; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 8DD76F620486A84900D96B5E /* cufflinks */ = { isa = PBXNativeTarget; buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "cufflinks" */; buildPhases = ( 8DD76F640486A84900D96B5E /* Sources */, 8DD76F660486A84900D96B5E /* Frameworks */, 8DD76F690486A84900D96B5E /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = cufflinks; productInstallPath = "$(HOME)/bin"; productName = cufflinks_xcode; productReference = EDD0CD9C10C72AC200AF308F /* cufflinks */; productType = "com.apple.product-type.tool"; }; 9CD6E8E813379B7E00CCE1DE /* compress_gtf */ = { isa = PBXNativeTarget; buildConfigurationList = 9CD6E93C13379B7E00CCE1DE /* Build configuration list for PBXNativeTarget "compress_gtf" */; buildPhases = ( 9CD6E8E913379B7E00CCE1DE /* Sources */, 9CD6E93713379B7E00CCE1DE /* Frameworks */, 9CD6E93B13379B7E00CCE1DE /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = compress_gtf; productInstallPath = "$(HOME)/bin"; productName = cufflinks_xcode; productReference = 9CD6E93F13379B7E00CCE1DE /* compress_gtf */; productType = "com.apple.product-type.tool"; }; ED41B816127602C60000B5A2 /* gtf_reads */ = { isa = PBXNativeTarget; buildConfigurationList = ED41B835127602C60000B5A2 /* Build configuration list for PBXNativeTarget "gtf_reads" */; buildPhases = ( ED41B817127602C60000B5A2 /* Sources */, ED41B830127602C60000B5A2 /* Frameworks */, ED41B834127602C60000B5A2 /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = gtf_reads; productInstallPath = "$(HOME)/bin"; productName = cufflinks_xcode; productReference = ED41B838127602C60000B5A2 /* cufflinks_xcode */; productType = "com.apple.product-type.tool"; }; EDD0CE0810C72F7D00AF308F /* cuffdiff */ = { isa = PBXNativeTarget; buildConfigurationList = EDD0CE1F10C72F7D00AF308F /* Build configuration list for PBXNativeTarget "cuffdiff" */; buildPhases = ( EDD0CE0910C72F7D00AF308F /* Sources */, EDD0CE1C10C72F7D00AF308F /* Frameworks */, EDD0CE1E10C72F7D00AF308F /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = cuffdiff; productInstallPath = "$(HOME)/bin"; productName = cufflinks_xcode; productReference = EDD0CE2210C72F7D00AF308F /* cuffdiff */; productType = "com.apple.product-type.tool"; }; EDD6A9BA11598AB900D3F668 /* cuffcompare */ = { isa = PBXNativeTarget; buildConfigurationList = EDD6A9D211598AB900D3F668 /* Build configuration list for PBXNativeTarget "cuffcompare" */; buildPhases = ( EDD6A9BB11598AB900D3F668 /* Sources */, EDD6A9CF11598AB900D3F668 /* Frameworks */, EDD6A9D111598AB900D3F668 /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = cuffcompare; productInstallPath = "$(HOME)/bin"; productName = cufflinks_xcode; productReference = EDD6A9D511598ABA00D3F668 /* cufflinks_xcode */; productType = "com.apple.product-type.tool"; }; EDD94B461205C9E800AA1086 /* gtf_to_sam */ = { isa = PBXNativeTarget; buildConfigurationList = EDD94B641205C9E800AA1086 /* Build configuration list for PBXNativeTarget "gtf_to_sam" */; buildPhases = ( EDD94B471205C9E800AA1086 /* Sources */, EDD94B5F1205C9E800AA1086 /* Frameworks */, EDD94B631205C9E800AA1086 /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = gtf_to_sam; productInstallPath = "$(HOME)/bin"; productName = cufflinks_xcode; productReference = EDD94B671205C9E800AA1086 /* cufflinks_xcode */; productType = "com.apple.product-type.tool"; }; EDFE39B0122BE65600F24CD3 /* cuffcluster */ = { isa = PBXNativeTarget; buildConfigurationList = EDFE39CB122BE65600F24CD3 /* Build configuration list for PBXNativeTarget "cuffcluster" */; buildPhases = ( EDFE39B1122BE65600F24CD3 /* Sources */, EDFE39C6122BE65600F24CD3 /* Frameworks */, EDFE39CA122BE65600F24CD3 /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = cuffcluster; productInstallPath = "$(HOME)/bin"; productName = cufflinks_xcode; productReference = EDFE39CE122BE65600F24CD3 /* cuffcluster */; productType = "com.apple.product-type.tool"; }; F4A9F36E1742865A000087E1 /* cuffquant */ = { isa = PBXNativeTarget; buildConfigurationList = F4A9F3C21742865A000087E1 /* Build configuration list for PBXNativeTarget "cuffquant" */; buildPhases = ( F4A9F36F1742865A000087E1 /* Sources */, F4A9F3BC1742865A000087E1 /* Frameworks */, F4A9F3C11742865A000087E1 /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = cuffquant; productInstallPath = "$(HOME)/bin"; productName = cufflinks_xcode; productReference = F4A9F3C51742865A000087E1 /* cuffquant */; productType = "com.apple.product-type.tool"; }; F4D2AB3118D1124600BB1CF0 /* cuffnorm */ = { isa = PBXNativeTarget; buildConfigurationList = F4D2AB8718D1124600BB1CF0 /* Build configuration list for PBXNativeTarget "cuffnorm" */; buildPhases = ( F4D2AB3218D1124600BB1CF0 /* Sources */, F4D2AB8018D1124600BB1CF0 /* Frameworks */, F4D2AB8618D1124600BB1CF0 /* CopyFiles */, ); buildRules = ( ); dependencies = ( ); name = cuffnorm; productInstallPath = "$(HOME)/bin"; productName = cufflinks_xcode; productReference = F4D2AB8A18D1124600BB1CF0 /* cuffdiff copy */; productType = "com.apple.product-type.tool"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 08FB7793FE84155DC02AAC07 /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 0510; }; buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "cufflinks" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( English, Japanese, French, German, ); mainGroup = 08FB7794FE84155DC02AAC07 /* cufflinks_xcode */; projectDirPath = ""; projectRoot = ""; targets = ( 8DD76F620486A84900D96B5E /* cufflinks */, EDD0CE0810C72F7D00AF308F /* cuffdiff */, EDD6A9BA11598AB900D3F668 /* cuffcompare */, EDD94B461205C9E800AA1086 /* gtf_to_sam */, 9CD6E8E813379B7E00CCE1DE /* compress_gtf */, EDFE39B0122BE65600F24CD3 /* cuffcluster */, ED41B816127602C60000B5A2 /* gtf_reads */, F4A9F36E1742865A000087E1 /* cuffquant */, F4D2AB3118D1124600BB1CF0 /* cuffnorm */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ 8DD76F640486A84900D96B5E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 0A69414F132AEDAB00558D76 /* dens_haz.c in Sources */, 0A694150132AEDAB00558D76 /* dens_int.c in Sources */, 0A694151132AEDAB00558D76 /* dens_odi.c in Sources */, 0A694152132AEDAB00558D76 /* vari.cpp in Sources */, 0A694153132AEDAB00558D76 /* density.c in Sources */, 0A694154132AEDAB00558D76 /* minmax.c in Sources */, 0A694155132AEDAB00558D76 /* locfit.c in Sources */, 0A694156132AEDAB00558D76 /* ev_interp.c in Sources */, 0A694157132AEDAB00558D76 /* ev_atree.c in Sources */, 0A694158132AEDAB00558D76 /* weight.c in Sources */, 0A694159132AEDAB00558D76 /* wdiag.c in Sources */, 0A69415A132AEDAB00558D76 /* adap.c in Sources */, 0A69415B132AEDAB00558D76 /* strings.c in Sources */, 0A69415C132AEDAB00558D76 /* pout.c in Sources */, 0A69415D132AEDAB00558D76 /* dist.c in Sources */, 0A69415E132AEDAB00558D76 /* startlf.c in Sources */, 0A69415F132AEDAB00558D76 /* band.c in Sources */, 0A694160132AEDAB00558D76 /* lfd.c in Sources */, 0A694161132AEDAB00558D76 /* readfile.c in Sources */, 0A694162132AEDAB00558D76 /* makecmd.c in Sources */, 0A694163132AEDAB00558D76 /* random.c in Sources */, 0A694164132AEDAB00558D76 /* help.c in Sources */, 0A694165132AEDAB00558D76 /* c_plot.c in Sources */, 0A694166132AEDAB00558D76 /* solve.c in Sources */, 0A694167132AEDAB00558D76 /* simul.c in Sources */, 0A694168132AEDAB00558D76 /* preplot.c in Sources */, 0A694169132AEDAB00558D76 /* pcomp.c in Sources */, 0A69416A132AEDAC00558D76 /* nbhd.c in Sources */, 0A69416B132AEDAC00558D76 /* math.c in Sources */, 0A69416C132AEDAC00558D76 /* m_max.c in Sources */, 0A69416D132AEDAC00558D76 /* m_eigen.c in Sources */, 0A69416E132AEDAC00558D76 /* linalg.c in Sources */, 0A69416F132AEDAC00558D76 /* lfstr.c in Sources */, 0A694170132AEDAC00558D76 /* lf_vari.c in Sources */, 0A694171132AEDAC00558D76 /* lf_fitfun.c in Sources */, 0A694172132AEDAC00558D76 /* lf_dercor.c in Sources */, 0A694173132AEDAC00558D76 /* frend.c in Sources */, 0A694174132AEDAC00558D76 /* fitted.c in Sources */, 0A694175132AEDAC00558D76 /* family.c in Sources */, 0A694176132AEDAC00558D76 /* ev_trian.c in Sources */, 0A694177132AEDAC00558D76 /* ev_main.c in Sources */, 0A694178132AEDAC00558D76 /* ev_kdtre.c in Sources */, 0A694179132AEDAC00558D76 /* scb.c in Sources */, 0A69417A132AEDAC00558D76 /* scb_cons.c in Sources */, 0A69417C132AEDAC00558D76 /* m_jacob.c in Sources */, 0A694181132AEDAC00558D76 /* lf_robust.c in Sources */, 0A694182132AEDAC00558D76 /* m_chol.c in Sources */, 0A694184132AEDAC00558D76 /* arith.c in Sources */, 0A694185132AEDAC00558D76 /* c_args.c in Sources */, 0A694186132AEDAC00558D76 /* ar_funs.c in Sources */, 0A694189132AEDAC00558D76 /* cmd.c in Sources */, 0A9291D5132AD37100E7B024 /* replicates.cpp in Sources */, EDA5155210C729A9000A4F41 /* abundances.cpp in Sources */, EDA5155310C729A9000A4F41 /* assemble.cpp in Sources */, EDA5155410C729A9000A4F41 /* bundles.cpp in Sources */, EDA5155510C729A9000A4F41 /* codons.cpp in Sources */, EDA5155610C729A9000A4F41 /* common.cpp in Sources */, EDA5155910C729A9000A4F41 /* cufflinks.cpp in Sources */, EDA5155A10C729A9000A4F41 /* filters.cpp in Sources */, EDA5155B10C729A9000A4F41 /* GArgs.cpp in Sources */, EDA5155C10C729A9000A4F41 /* GBase.cpp in Sources */, EDA5155D10C729A9000A4F41 /* gdna.cpp in Sources */, EDA5155E10C729A9000A4F41 /* genes.cpp in Sources */, EDA5155F10C729A9000A4F41 /* GFaSeqGet.cpp in Sources */, EDA5156010C729A9000A4F41 /* gff.cpp in Sources */, EDA5156110C729A9000A4F41 /* GStr.cpp in Sources */, EDA5156310C729A9000A4F41 /* gtf_tracking.cpp in Sources */, EDA5156410C729A9000A4F41 /* hits.cpp in Sources */, EDA5156510C729A9000A4F41 /* scaffolds.cpp in Sources */, EDA5156610C729A9000A4F41 /* tokenize.cpp in Sources */, EDACE43B114F031B009024DB /* clustering.cpp in Sources */, EDE78A2D11B5F4F0000F8846 /* graph_optimize.cpp in Sources */, EDE78A7A11B6E912000F8846 /* scaffold_graph.cpp in Sources */, EDE78BC611B716C3000F8846 /* matching_merge.cpp in Sources */, EDBAC4C111FF5AD3002B7162 /* biascorrection.cpp in Sources */, ED877B74123BCA3F0025A050 /* GFastaIndex.cpp in Sources */, 0A6183721324308800EFF9AF /* multireads.cpp in Sources */, 9C31043215250D8600F56669 /* jensen_shannon.cpp in Sources */, 9CE680F9149FBEBD00855EDB /* sampling.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 9CD6E8E913379B7E00CCE1DE /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 9CD6E94113379B9D00CCE1DE /* compress_gtf.cpp in Sources */, 9CD6E8EA13379B7E00CCE1DE /* GFastaIndex.cpp in Sources */, 9CD6E8EB13379B7E00CCE1DE /* abundances.cpp in Sources */, 9CD6E8EC13379B7E00CCE1DE /* assemble.cpp in Sources */, 9CD6E8ED13379B7E00CCE1DE /* bundles.cpp in Sources */, 9CD6E8EE13379B7E00CCE1DE /* codons.cpp in Sources */, 9CD6E8EF13379B7E00CCE1DE /* common.cpp in Sources */, 9CD6E8F013379B7E00CCE1DE /* filters.cpp in Sources */, 9CD6E8F113379B7E00CCE1DE /* GArgs.cpp in Sources */, 9CD6E8F213379B7E00CCE1DE /* GBase.cpp in Sources */, 9CD6E8F313379B7E00CCE1DE /* gdna.cpp in Sources */, 9CD6E8F413379B7E00CCE1DE /* genes.cpp in Sources */, 9CD6E8F513379B7E00CCE1DE /* GFaSeqGet.cpp in Sources */, 9CD6E8F613379B7E00CCE1DE /* gff.cpp in Sources */, 9CD6E8F713379B7E00CCE1DE /* GStr.cpp in Sources */, 9CD6E8F813379B7E00CCE1DE /* gtf_tracking.cpp in Sources */, 9CD6E8FA13379B7E00CCE1DE /* hits.cpp in Sources */, 9CD6E8FB13379B7E00CCE1DE /* scaffolds.cpp in Sources */, 9CD6E8FC13379B7E00CCE1DE /* tokenize.cpp in Sources */, 9CD6E8FD13379B7E00CCE1DE /* clustering.cpp in Sources */, 9CD6E8FE13379B7E00CCE1DE /* graph_optimize.cpp in Sources */, 9CD6E8FF13379B7E00CCE1DE /* scaffold_graph.cpp in Sources */, 9CD6E90013379B7E00CCE1DE /* matching_merge.cpp in Sources */, 9CD6E90113379B7E00CCE1DE /* biascorrection.cpp in Sources */, 9CD6E90213379B7E00CCE1DE /* multireads.cpp in Sources */, 9CD6E90313379B7E00CCE1DE /* replicates.cpp in Sources */, 9CD6E90413379B7E00CCE1DE /* dens_haz.c in Sources */, 9CD6E90513379B7E00CCE1DE /* dens_int.c in Sources */, 9CD6E90613379B7E00CCE1DE /* dens_odi.c in Sources */, 9CD6E90713379B7E00CCE1DE /* vari.cpp in Sources */, 9CD6E90813379B7E00CCE1DE /* density.c in Sources */, 9CD6E90913379B7E00CCE1DE /* minmax.c in Sources */, 9CD6E90A13379B7E00CCE1DE /* locfit.c in Sources */, 9CD6E90B13379B7E00CCE1DE /* ev_interp.c in Sources */, 9CD6E90C13379B7E00CCE1DE /* ev_atree.c in Sources */, 9CD6E90D13379B7E00CCE1DE /* weight.c in Sources */, 9CD6E90E13379B7E00CCE1DE /* wdiag.c in Sources */, 9CD6E90F13379B7E00CCE1DE /* adap.c in Sources */, 9CD6E91013379B7E00CCE1DE /* strings.c in Sources */, 9CD6E91113379B7E00CCE1DE /* pout.c in Sources */, 9CD6E91213379B7E00CCE1DE /* dist.c in Sources */, 9CD6E91313379B7E00CCE1DE /* startlf.c in Sources */, 9CD6E91413379B7E00CCE1DE /* band.c in Sources */, 9CD6E91513379B7E00CCE1DE /* lfd.c in Sources */, 9CD6E91613379B7E00CCE1DE /* readfile.c in Sources */, 9CD6E91713379B7E00CCE1DE /* makecmd.c in Sources */, 9CD6E91813379B7E00CCE1DE /* random.c in Sources */, 9CD6E91913379B7E00CCE1DE /* help.c in Sources */, 9CD6E91A13379B7E00CCE1DE /* c_plot.c in Sources */, 9CD6E91B13379B7E00CCE1DE /* solve.c in Sources */, 9CD6E91C13379B7E00CCE1DE /* simul.c in Sources */, 9CD6E91D13379B7E00CCE1DE /* preplot.c in Sources */, 9CD6E91E13379B7E00CCE1DE /* pcomp.c in Sources */, 9CD6E91F13379B7E00CCE1DE /* nbhd.c in Sources */, 9CD6E92013379B7E00CCE1DE /* math.c in Sources */, 9CD6E92113379B7E00CCE1DE /* m_max.c in Sources */, 9CD6E92213379B7E00CCE1DE /* m_eigen.c in Sources */, 9CD6E92313379B7E00CCE1DE /* linalg.c in Sources */, 9CD6E92413379B7E00CCE1DE /* lfstr.c in Sources */, 9CD6E92513379B7E00CCE1DE /* lf_vari.c in Sources */, 9CD6E92613379B7E00CCE1DE /* lf_fitfun.c in Sources */, 9CD6E92713379B7E00CCE1DE /* lf_dercor.c in Sources */, 9CD6E92813379B7E00CCE1DE /* frend.c in Sources */, 9CD6E92913379B7E00CCE1DE /* fitted.c in Sources */, 9CD6E92A13379B7E00CCE1DE /* family.c in Sources */, 9CD6E92B13379B7E00CCE1DE /* ev_trian.c in Sources */, 9CD6E92C13379B7E00CCE1DE /* ev_main.c in Sources */, 9CD6E92D13379B7E00CCE1DE /* ev_kdtre.c in Sources */, 9CD6E92E13379B7E00CCE1DE /* scb.c in Sources */, 9CD6E92F13379B7E00CCE1DE /* scb_cons.c in Sources */, 9CD6E93013379B7E00CCE1DE /* m_jacob.c in Sources */, 9CD6E93113379B7E00CCE1DE /* lf_robust.c in Sources */, 9CD6E93213379B7E00CCE1DE /* m_chol.c in Sources */, 9CD6E93313379B7E00CCE1DE /* arith.c in Sources */, 9CD6E93413379B7E00CCE1DE /* c_args.c in Sources */, 9CD6E93513379B7E00CCE1DE /* ar_funs.c in Sources */, 9CD6E93613379B7E00CCE1DE /* cmd.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; ED41B817127602C60000B5A2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ED41B83E127603A20000B5A2 /* gtf_reads.cpp in Sources */, ED41B818127602C60000B5A2 /* GFastaIndex.cpp in Sources */, ED41B819127602C60000B5A2 /* abundances.cpp in Sources */, ED41B81A127602C60000B5A2 /* assemble.cpp in Sources */, ED41B81B127602C60000B5A2 /* bundles.cpp in Sources */, ED41B81C127602C60000B5A2 /* codons.cpp in Sources */, ED41B81D127602C60000B5A2 /* common.cpp in Sources */, ED41B81E127602C60000B5A2 /* filters.cpp in Sources */, ED41B81F127602C60000B5A2 /* GArgs.cpp in Sources */, ED41B820127602C60000B5A2 /* GBase.cpp in Sources */, ED41B821127602C60000B5A2 /* gdna.cpp in Sources */, ED41B822127602C60000B5A2 /* genes.cpp in Sources */, ED41B823127602C60000B5A2 /* GFaSeqGet.cpp in Sources */, ED41B824127602C60000B5A2 /* gff.cpp in Sources */, ED41B825127602C60000B5A2 /* GStr.cpp in Sources */, ED41B826127602C60000B5A2 /* gtf_tracking.cpp in Sources */, ED41B828127602C60000B5A2 /* hits.cpp in Sources */, ED41B829127602C60000B5A2 /* scaffolds.cpp in Sources */, ED41B82A127602C60000B5A2 /* tokenize.cpp in Sources */, ED41B82B127602C60000B5A2 /* clustering.cpp in Sources */, ED41B82C127602C60000B5A2 /* graph_optimize.cpp in Sources */, ED41B82D127602C60000B5A2 /* scaffold_graph.cpp in Sources */, ED41B82E127602C60000B5A2 /* matching_merge.cpp in Sources */, ED41B82F127602C60000B5A2 /* biascorrection.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; EDD0CE0910C72F7D00AF308F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( EDD0CE2410C72F9300AF308F /* cuffdiff.cpp in Sources */, EDD0CE0A10C72F7D00AF308F /* abundances.cpp in Sources */, EDD0CE0C10C72F7D00AF308F /* bundles.cpp in Sources */, EDD0CE0D10C72F7D00AF308F /* codons.cpp in Sources */, EDD0CE0E10C72F7D00AF308F /* common.cpp in Sources */, EDD0CE1010C72F7D00AF308F /* filters.cpp in Sources */, EDD0CE1110C72F7D00AF308F /* GArgs.cpp in Sources */, EDD0CE1210C72F7D00AF308F /* GBase.cpp in Sources */, EDD0CE1310C72F7D00AF308F /* gdna.cpp in Sources */, EDD0CE1410C72F7D00AF308F /* genes.cpp in Sources */, EDD0CE1510C72F7D00AF308F /* GFaSeqGet.cpp in Sources */, EDD0CE1610C72F7D00AF308F /* gff.cpp in Sources */, EDD0CE1710C72F7D00AF308F /* GStr.cpp in Sources */, EDD0CE1810C72F7D00AF308F /* gtf_tracking.cpp in Sources */, EDD0CE1910C72F7D00AF308F /* hits.cpp in Sources */, EDD0CE1A10C72F7D00AF308F /* scaffolds.cpp in Sources */, EDD0CE1B10C72F7D00AF308F /* tokenize.cpp in Sources */, EDACE432114EFF5C009024DB /* differential.cpp in Sources */, EDACE43A114F031B009024DB /* clustering.cpp in Sources */, EDBAC4C211FF5AD3002B7162 /* biascorrection.cpp in Sources */, EDFE39FC122BE7B700F24CD3 /* jensen_shannon.cpp in Sources */, ED877B73123BCA3F0025A050 /* GFastaIndex.cpp in Sources */, ED920F0C132136BE008DDA0B /* minmax.c in Sources */, ED920F0D132136BE008DDA0B /* locfit.c in Sources */, ED920F0E132136BE008DDA0B /* ev_interp.c in Sources */, ED920F0F132136BE008DDA0B /* ev_atree.c in Sources */, ED920F10132136BE008DDA0B /* weight.c in Sources */, ED920F11132136BE008DDA0B /* wdiag.c in Sources */, ED920F12132136BE008DDA0B /* strings.c in Sources */, ED920F14132136BE008DDA0B /* solve.c in Sources */, ED920F15132136BE008DDA0B /* simul.c in Sources */, ED920F16132136BE008DDA0B /* preplot.c in Sources */, ED920F17132136BE008DDA0B /* pcomp.c in Sources */, ED920F18132136BE008DDA0B /* nbhd.c in Sources */, ED920F19132136BE008DDA0B /* math.c in Sources */, ED920F1A132136BE008DDA0B /* m_max.c in Sources */, ED920F1B132136BE008DDA0B /* m_eigen.c in Sources */, ED920F1C132136BE008DDA0B /* linalg.c in Sources */, ED920F1D132136BE008DDA0B /* lfstr.c in Sources */, ED920F1E132136BE008DDA0B /* lf_vari.c in Sources */, ED920F1F132136BE008DDA0B /* lf_fitfun.c in Sources */, ED920F20132136BE008DDA0B /* lf_dercor.c in Sources */, ED920F21132136BE008DDA0B /* frend.c in Sources */, ED920F22132136BE008DDA0B /* fitted.c in Sources */, ED920F23132136BE008DDA0B /* family.c in Sources */, ED920F24132136BE008DDA0B /* ev_trian.c in Sources */, ED920F25132136BE008DDA0B /* ev_main.c in Sources */, ED920F26132136BE008DDA0B /* ev_kdtre.c in Sources */, ED920F27132136BE008DDA0B /* scb.c in Sources */, ED920F28132136BE008DDA0B /* scb_cons.c in Sources */, ED920F29132136CE008DDA0B /* m_jacob.c in Sources */, ED920F2A132136CE008DDA0B /* lf_robust.c in Sources */, ED920F2B132136CE008DDA0B /* m_chol.c in Sources */, ED920F2C132136CE008DDA0B /* arith.c in Sources */, ED920F2D132136CE008DDA0B /* c_args.c in Sources */, ED920F2E132136CE008DDA0B /* ar_funs.c in Sources */, ED920F2F132136CE008DDA0B /* cmd.c in Sources */, ED920F31132137F4008DDA0B /* density.c in Sources */, ED920F3413213903008DDA0B /* vari.cpp in Sources */, ED920F3913213B19008DDA0B /* dens_haz.c in Sources */, ED920F3B13213B19008DDA0B /* dens_int.c in Sources */, ED920F3D13213B19008DDA0B /* dens_odi.c in Sources */, ED920F3F13213BAC008DDA0B /* startlf.c in Sources */, ED920F4113213C15008DDA0B /* adap.c in Sources */, ED920F4413213C49008DDA0B /* dist.c in Sources */, ED920F4713213CAF008DDA0B /* random.c in Sources */, ED920F4A13213CDF008DDA0B /* lfd.c in Sources */, ED920F4D13213D03008DDA0B /* band.c in Sources */, ED920F50132150D9008DDA0B /* pout.c in Sources */, ED920F531321520A008DDA0B /* makecmd.c in Sources */, ED920F5613215828008DDA0B /* help.c in Sources */, ED920F591321587C008DDA0B /* c_plot.c in Sources */, ED920F5C132158CA008DDA0B /* readfile.c in Sources */, 0A6183731324308800EFF9AF /* multireads.cpp in Sources */, ED677C0F132A3D83000CFDC8 /* replicates.cpp in Sources */, 9CE680FB149FBF3000855EDB /* sampling.cpp in Sources */, F4A9F3C91742C26D000087E1 /* tracking.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; EDD6A9BB11598AB900D3F668 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( EDD6A9DE11598CFC00D3F668 /* cuffcompare.cpp in Sources */, EDD6A9BF11598AB900D3F668 /* codons.cpp in Sources */, EDD6A9C311598AB900D3F668 /* GArgs.cpp in Sources */, EDD6A9C411598AB900D3F668 /* GBase.cpp in Sources */, EDD6A9C511598AB900D3F668 /* gdna.cpp in Sources */, EDD6A9C711598AB900D3F668 /* GFaSeqGet.cpp in Sources */, EDD6A9C811598AB900D3F668 /* gff.cpp in Sources */, EDD6A9C911598AB900D3F668 /* GStr.cpp in Sources */, EDD6A9CA11598AB900D3F668 /* gtf_tracking.cpp in Sources */, ED877B75123BCA3F0025A050 /* GFastaIndex.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; EDD94B471205C9E800AA1086 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ED48324B123E83D100642337 /* GFastaIndex.cpp in Sources */, EDD94B481205C9E800AA1086 /* abundances.cpp in Sources */, EDD94B491205C9E800AA1086 /* assemble.cpp in Sources */, EDD94B4A1205C9E800AA1086 /* bundles.cpp in Sources */, EDD94B4B1205C9E800AA1086 /* codons.cpp in Sources */, EDD94B4C1205C9E800AA1086 /* common.cpp in Sources */, EDD94B4E1205C9E800AA1086 /* filters.cpp in Sources */, EDD94B4F1205C9E800AA1086 /* GArgs.cpp in Sources */, EDD94B501205C9E800AA1086 /* GBase.cpp in Sources */, EDD94B511205C9E800AA1086 /* gdna.cpp in Sources */, EDD94B521205C9E800AA1086 /* genes.cpp in Sources */, EDD94B531205C9E800AA1086 /* GFaSeqGet.cpp in Sources */, EDD94B541205C9E800AA1086 /* gff.cpp in Sources */, EDD94B551205C9E800AA1086 /* GStr.cpp in Sources */, EDD94B561205C9E800AA1086 /* gtf_tracking.cpp in Sources */, EDD94B741205CB1700AA1086 /* gtf_to_sam.cpp in Sources */, EDD94B571205C9E800AA1086 /* hits.cpp in Sources */, EDD94B581205C9E800AA1086 /* scaffolds.cpp in Sources */, EDD94B591205C9E800AA1086 /* tokenize.cpp in Sources */, EDD94B5A1205C9E800AA1086 /* clustering.cpp in Sources */, EDD94B5B1205C9E800AA1086 /* graph_optimize.cpp in Sources */, EDD94B5C1205C9E800AA1086 /* scaffold_graph.cpp in Sources */, EDD94B5D1205C9E800AA1086 /* matching_merge.cpp in Sources */, EDD94B5E1205C9E800AA1086 /* biascorrection.cpp in Sources */, 9CBCD9B41333EB5B0059FE74 /* multireads.cpp in Sources */, 9CBCD9B51333ECCE0059FE74 /* replicates.cpp in Sources */, 9CBCD9B61333ECF50059FE74 /* dens_haz.c in Sources */, 9CBCD9B71333ECF50059FE74 /* dens_int.c in Sources */, 9CBCD9B81333ECF50059FE74 /* dens_odi.c in Sources */, 9CBCD9B91333ECF50059FE74 /* vari.cpp in Sources */, 9CBCD9BA1333ECF50059FE74 /* density.c in Sources */, 9CBCD9BB1333ECF50059FE74 /* minmax.c in Sources */, 9CBCD9BC1333ECF50059FE74 /* locfit.c in Sources */, 9CBCD9BD1333ECF50059FE74 /* ev_interp.c in Sources */, 9CBCD9BE1333ECF50059FE74 /* ev_atree.c in Sources */, 9CBCD9BF1333ECF50059FE74 /* weight.c in Sources */, 9CBCD9C01333ECF50059FE74 /* wdiag.c in Sources */, 9CBCD9C11333ECF50059FE74 /* adap.c in Sources */, 9CBCD9C21333ECF50059FE74 /* strings.c in Sources */, 9CBCD9C31333ECF50059FE74 /* pout.c in Sources */, 9CBCD9C41333ECF50059FE74 /* dist.c in Sources */, 9CBCD9C51333ECF50059FE74 /* startlf.c in Sources */, 9CBCD9C61333ECF50059FE74 /* band.c in Sources */, 9CBCD9C71333ECF50059FE74 /* lfd.c in Sources */, 9CBCD9C81333ECF50059FE74 /* readfile.c in Sources */, 9CBCD9C91333ECF50059FE74 /* makecmd.c in Sources */, 9CBCD9CA1333ECF50059FE74 /* random.c in Sources */, 9CBCD9CB1333ECF50059FE74 /* help.c in Sources */, 9CBCD9CC1333ECF50059FE74 /* c_plot.c in Sources */, 9CBCD9CD1333ECF50059FE74 /* solve.c in Sources */, 9CBCD9CE1333ECF50059FE74 /* simul.c in Sources */, 9CBCD9CF1333ECF50059FE74 /* preplot.c in Sources */, 9CBCD9D01333ECF50059FE74 /* pcomp.c in Sources */, 9CBCD9D11333ECF50059FE74 /* nbhd.c in Sources */, 9CBCD9D21333ECF50059FE74 /* math.c in Sources */, 9CBCD9D31333ECF50059FE74 /* m_max.c in Sources */, 9CBCD9D41333ECF50059FE74 /* m_eigen.c in Sources */, 9CBCD9D51333ECF50059FE74 /* linalg.c in Sources */, 9CBCD9D61333ECF50059FE74 /* lfstr.c in Sources */, 9CBCD9D71333ECF50059FE74 /* lf_vari.c in Sources */, 9CBCD9D81333ECF50059FE74 /* lf_fitfun.c in Sources */, 9CBCD9D91333ECF50059FE74 /* lf_dercor.c in Sources */, 9CBCD9DA1333ECF50059FE74 /* frend.c in Sources */, 9CBCD9DB1333ECF50059FE74 /* fitted.c in Sources */, 9CBCD9DC1333ECF50059FE74 /* family.c in Sources */, 9CBCD9DD1333ECF50059FE74 /* ev_trian.c in Sources */, 9CBCD9DE1333ECF50059FE74 /* ev_main.c in Sources */, 9CBCD9DF1333ECF50059FE74 /* ev_kdtre.c in Sources */, 9CBCD9E01333ECF50059FE74 /* scb.c in Sources */, 9CBCD9E11333ECF50059FE74 /* scb_cons.c in Sources */, 9CBCD9E21333ECFD0059FE74 /* m_jacob.c in Sources */, 9CBCD9E31333ECFD0059FE74 /* lf_robust.c in Sources */, 9CBCD9E41333ECFD0059FE74 /* m_chol.c in Sources */, 9CBCD9E51333ECFD0059FE74 /* arith.c in Sources */, 9CBCD9E61333ECFD0059FE74 /* c_args.c in Sources */, 9CBCD9E71333ECFD0059FE74 /* ar_funs.c in Sources */, 9CBCD9E81333ECFD0059FE74 /* cmd.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; EDFE39B1122BE65600F24CD3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 9CCF1F59135E29E400D7D6BD /* m_jacob.c in Sources */, 9CCF1F5A135E29E400D7D6BD /* lf_robust.c in Sources */, 9CCF1F5B135E29E400D7D6BD /* m_chol.c in Sources */, 9CCF1F5C135E29E400D7D6BD /* arith.c in Sources */, 9CCF1F5D135E29E400D7D6BD /* c_args.c in Sources */, 9CCF1F5E135E29E400D7D6BD /* ar_funs.c in Sources */, 9CCF1F5F135E29E400D7D6BD /* cmd.c in Sources */, 9CCF1F3C135E29D600D7D6BD /* minmax.c in Sources */, 9CCF1F3D135E29D600D7D6BD /* locfit.c in Sources */, 9CCF1F3E135E29D600D7D6BD /* ev_interp.c in Sources */, 9CCF1F3F135E29D600D7D6BD /* ev_atree.c in Sources */, 9CCF1F40135E29D600D7D6BD /* weight.c in Sources */, 9CCF1F41135E29D600D7D6BD /* wdiag.c in Sources */, 9CCF1F42135E29D600D7D6BD /* strings.c in Sources */, 9CCF1F43135E29D600D7D6BD /* startlf.c in Sources */, 9CCF1F44135E29D600D7D6BD /* solve.c in Sources */, 9CCF1F45135E29D600D7D6BD /* simul.c in Sources */, 9CCF1F46135E29D700D7D6BD /* preplot.c in Sources */, 9CCF1F47135E29D700D7D6BD /* pcomp.c in Sources */, 9CCF1F48135E29D700D7D6BD /* nbhd.c in Sources */, 9CCF1F49135E29D700D7D6BD /* math.c in Sources */, 9CCF1F4A135E29D700D7D6BD /* m_max.c in Sources */, 9CCF1F4B135E29D700D7D6BD /* m_eigen.c in Sources */, 9CCF1F4C135E29D700D7D6BD /* linalg.c in Sources */, 9CCF1F4D135E29D700D7D6BD /* lfstr.c in Sources */, 9CCF1F4E135E29D700D7D6BD /* lf_vari.c in Sources */, 9CCF1F4F135E29D700D7D6BD /* lf_fitfun.c in Sources */, 9CCF1F50135E29D700D7D6BD /* lf_dercor.c in Sources */, 9CCF1F51135E29D700D7D6BD /* frend.c in Sources */, 9CCF1F52135E29D700D7D6BD /* fitted.c in Sources */, 9CCF1F53135E29D700D7D6BD /* family.c in Sources */, 9CCF1F54135E29D700D7D6BD /* ev_trian.c in Sources */, 9CCF1F55135E29D700D7D6BD /* ev_main.c in Sources */, 9CCF1F56135E29D700D7D6BD /* ev_kdtre.c in Sources */, 9CCF1F57135E29D700D7D6BD /* scb.c in Sources */, 9CCF1F58135E29D700D7D6BD /* scb_cons.c in Sources */, EDFE39B6122BE65600F24CD3 /* common.cpp in Sources */, EDFE39C2122BE65600F24CD3 /* tokenize.cpp in Sources */, EDFE39FB122BE7B700F24CD3 /* jensen_shannon.cpp in Sources */, EDDBF70A12D29DF000130D8A /* cuffcluster.cpp in Sources */, ED920F32132137F4008DDA0B /* density.c in Sources */, ED920F3513213903008DDA0B /* vari.cpp in Sources */, ED920F3A13213B19008DDA0B /* dens_haz.c in Sources */, ED920F3C13213B19008DDA0B /* dens_int.c in Sources */, ED920F3E13213B19008DDA0B /* dens_odi.c in Sources */, ED920F4213213C15008DDA0B /* adap.c in Sources */, ED920F4513213C49008DDA0B /* dist.c in Sources */, ED920F4813213CAF008DDA0B /* random.c in Sources */, ED920F4B13213CDF008DDA0B /* lfd.c in Sources */, ED920F4E13213D03008DDA0B /* band.c in Sources */, ED920F51132150D9008DDA0B /* pout.c in Sources */, ED920F541321520A008DDA0B /* makecmd.c in Sources */, ED920F5713215828008DDA0B /* help.c in Sources */, ED920F5A1321587C008DDA0B /* c_plot.c in Sources */, ED920F5D132158CA008DDA0B /* readfile.c in Sources */, ED677C10132A3D83000CFDC8 /* replicates.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; F4A9F36F1742865A000087E1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( F4A9F3C617428670000087E1 /* cuffquant.cpp in Sources */, F4A9F3711742865A000087E1 /* abundances.cpp in Sources */, F4A9F3721742865A000087E1 /* bundles.cpp in Sources */, F4A9F3731742865A000087E1 /* codons.cpp in Sources */, F4A9F3741742865A000087E1 /* common.cpp in Sources */, F4A9F3751742865A000087E1 /* filters.cpp in Sources */, F4A9F3761742865A000087E1 /* GArgs.cpp in Sources */, F4A9F3771742865A000087E1 /* GBase.cpp in Sources */, F4A9F3781742865A000087E1 /* gdna.cpp in Sources */, F4A9F3791742865A000087E1 /* genes.cpp in Sources */, F4A9F37A1742865A000087E1 /* GFaSeqGet.cpp in Sources */, F4A9F37B1742865A000087E1 /* gff.cpp in Sources */, F4A9F37C1742865A000087E1 /* GStr.cpp in Sources */, F4A9F37D1742865A000087E1 /* gtf_tracking.cpp in Sources */, F4A9F37E1742865A000087E1 /* hits.cpp in Sources */, F4A9F37F1742865A000087E1 /* scaffolds.cpp in Sources */, F4A9F3801742865A000087E1 /* tokenize.cpp in Sources */, F4A9F3821742865A000087E1 /* clustering.cpp in Sources */, F4A9F3831742865A000087E1 /* biascorrection.cpp in Sources */, F4A9F3841742865A000087E1 /* jensen_shannon.cpp in Sources */, F4A9F3851742865A000087E1 /* GFastaIndex.cpp in Sources */, F4A9F3861742865A000087E1 /* minmax.c in Sources */, F4A9F3871742865A000087E1 /* locfit.c in Sources */, F4A9F3881742865A000087E1 /* ev_interp.c in Sources */, F4A9F3891742865A000087E1 /* ev_atree.c in Sources */, F4A9F38A1742865A000087E1 /* weight.c in Sources */, F4A9F38B1742865A000087E1 /* wdiag.c in Sources */, F4A9F38C1742865A000087E1 /* strings.c in Sources */, F4A9F38D1742865A000087E1 /* solve.c in Sources */, F4A9F38E1742865A000087E1 /* simul.c in Sources */, F4A9F38F1742865A000087E1 /* preplot.c in Sources */, F4A9F3901742865A000087E1 /* pcomp.c in Sources */, F4A9F3911742865A000087E1 /* nbhd.c in Sources */, F4A9F3921742865A000087E1 /* math.c in Sources */, F4A9F3931742865A000087E1 /* m_max.c in Sources */, F4A9F3941742865A000087E1 /* m_eigen.c in Sources */, F4A9F3951742865A000087E1 /* linalg.c in Sources */, F4A9F3961742865A000087E1 /* lfstr.c in Sources */, F4A9F3971742865A000087E1 /* lf_vari.c in Sources */, F4A9F3981742865A000087E1 /* lf_fitfun.c in Sources */, F4A9F3991742865A000087E1 /* lf_dercor.c in Sources */, F4A9F39A1742865A000087E1 /* frend.c in Sources */, F4A9F39B1742865A000087E1 /* fitted.c in Sources */, F4A9F39C1742865A000087E1 /* family.c in Sources */, F4A9F39D1742865A000087E1 /* ev_trian.c in Sources */, F4A9F39E1742865A000087E1 /* ev_main.c in Sources */, F4A9F39F1742865A000087E1 /* ev_kdtre.c in Sources */, F4A9F3A01742865A000087E1 /* scb.c in Sources */, F4A9F3A11742865A000087E1 /* scb_cons.c in Sources */, F4A9F3A21742865A000087E1 /* m_jacob.c in Sources */, F4A9F3A31742865A000087E1 /* lf_robust.c in Sources */, F4A9F3A41742865A000087E1 /* m_chol.c in Sources */, F4A9F3A51742865A000087E1 /* arith.c in Sources */, F4A9F3A61742865A000087E1 /* c_args.c in Sources */, F4A9F3A71742865A000087E1 /* ar_funs.c in Sources */, F4A9F3A81742865A000087E1 /* cmd.c in Sources */, F4A9F3A91742865A000087E1 /* density.c in Sources */, F4A9F3AA1742865A000087E1 /* vari.cpp in Sources */, F4A9F3AB1742865A000087E1 /* dens_haz.c in Sources */, F4A9F3AC1742865A000087E1 /* dens_int.c in Sources */, F4A9F3AD1742865A000087E1 /* dens_odi.c in Sources */, F4A9F3AE1742865A000087E1 /* startlf.c in Sources */, F4A9F3AF1742865A000087E1 /* adap.c in Sources */, F4A9F3B01742865A000087E1 /* dist.c in Sources */, F4A9F3B11742865A000087E1 /* random.c in Sources */, F4A9F3B21742865A000087E1 /* lfd.c in Sources */, F4A9F3B31742865A000087E1 /* band.c in Sources */, F4A9F3B41742865A000087E1 /* pout.c in Sources */, F4A9F3B51742865A000087E1 /* makecmd.c in Sources */, F4A9F3B61742865A000087E1 /* help.c in Sources */, F4A9F3B71742865A000087E1 /* c_plot.c in Sources */, F4A9F3B81742865A000087E1 /* readfile.c in Sources */, F4A9F3B91742865A000087E1 /* multireads.cpp in Sources */, F4A9F3BA1742865A000087E1 /* replicates.cpp in Sources */, F4A9F3BB1742865A000087E1 /* sampling.cpp in Sources */, F4A9F3CA1742C26D000087E1 /* tracking.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; F4D2AB3218D1124600BB1CF0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( F4D2AB8B18D1125D00BB1CF0 /* cuffnorm.cpp in Sources */, F4D2AB3418D1124600BB1CF0 /* abundances.cpp in Sources */, F4D2AB3518D1124600BB1CF0 /* bundles.cpp in Sources */, F4D2AB3618D1124600BB1CF0 /* codons.cpp in Sources */, F4D2AB3718D1124600BB1CF0 /* common.cpp in Sources */, F4D2AB3818D1124600BB1CF0 /* filters.cpp in Sources */, F4D2AB3918D1124600BB1CF0 /* GArgs.cpp in Sources */, F4D2AB3A18D1124600BB1CF0 /* GBase.cpp in Sources */, F4D2AB3B18D1124600BB1CF0 /* gdna.cpp in Sources */, F4D2AB3C18D1124600BB1CF0 /* genes.cpp in Sources */, F4D2AB3D18D1124600BB1CF0 /* GFaSeqGet.cpp in Sources */, F4D2AB3E18D1124600BB1CF0 /* gff.cpp in Sources */, F4D2AB3F18D1124600BB1CF0 /* GStr.cpp in Sources */, F4D2AB4018D1124600BB1CF0 /* gtf_tracking.cpp in Sources */, F4D2AB4118D1124600BB1CF0 /* hits.cpp in Sources */, F4D2AB4218D1124600BB1CF0 /* scaffolds.cpp in Sources */, F4D2AB4318D1124600BB1CF0 /* tokenize.cpp in Sources */, F4D2AB4418D1124600BB1CF0 /* differential.cpp in Sources */, F4D2AB4518D1124600BB1CF0 /* clustering.cpp in Sources */, F4D2AB4618D1124600BB1CF0 /* biascorrection.cpp in Sources */, F4D2AB4718D1124600BB1CF0 /* jensen_shannon.cpp in Sources */, F4D2AB4818D1124600BB1CF0 /* GFastaIndex.cpp in Sources */, F4D2AB4918D1124600BB1CF0 /* minmax.c in Sources */, F4D2AB4A18D1124600BB1CF0 /* locfit.c in Sources */, F4D2AB4B18D1124600BB1CF0 /* ev_interp.c in Sources */, F4D2AB4C18D1124600BB1CF0 /* ev_atree.c in Sources */, F4D2AB4D18D1124600BB1CF0 /* weight.c in Sources */, F4D2AB4E18D1124600BB1CF0 /* wdiag.c in Sources */, F4D2AB4F18D1124600BB1CF0 /* strings.c in Sources */, F4D2AB5018D1124600BB1CF0 /* solve.c in Sources */, F4D2AB5118D1124600BB1CF0 /* simul.c in Sources */, F4D2AB5218D1124600BB1CF0 /* preplot.c in Sources */, F4D2AB5318D1124600BB1CF0 /* pcomp.c in Sources */, F4D2AB5418D1124600BB1CF0 /* nbhd.c in Sources */, F4D2AB5518D1124600BB1CF0 /* math.c in Sources */, F4D2AB5618D1124600BB1CF0 /* m_max.c in Sources */, F4D2AB5718D1124600BB1CF0 /* m_eigen.c in Sources */, F4D2AB5818D1124600BB1CF0 /* linalg.c in Sources */, F4D2AB5918D1124600BB1CF0 /* lfstr.c in Sources */, F4D2AB5A18D1124600BB1CF0 /* lf_vari.c in Sources */, F4D2AB5B18D1124600BB1CF0 /* lf_fitfun.c in Sources */, F4D2AB5C18D1124600BB1CF0 /* lf_dercor.c in Sources */, F4D2AB5D18D1124600BB1CF0 /* frend.c in Sources */, F4D2AB5E18D1124600BB1CF0 /* fitted.c in Sources */, F4D2AB5F18D1124600BB1CF0 /* family.c in Sources */, F4D2AB6018D1124600BB1CF0 /* ev_trian.c in Sources */, F4D2AB6118D1124600BB1CF0 /* ev_main.c in Sources */, F4D2AB6218D1124600BB1CF0 /* ev_kdtre.c in Sources */, F4D2AB6318D1124600BB1CF0 /* scb.c in Sources */, F4D2AB6418D1124600BB1CF0 /* scb_cons.c in Sources */, F4D2AB6518D1124600BB1CF0 /* m_jacob.c in Sources */, F4D2AB6618D1124600BB1CF0 /* lf_robust.c in Sources */, F4D2AB6718D1124600BB1CF0 /* m_chol.c in Sources */, F4D2AB6818D1124600BB1CF0 /* arith.c in Sources */, F4D2AB6918D1124600BB1CF0 /* c_args.c in Sources */, F4D2AB6A18D1124600BB1CF0 /* ar_funs.c in Sources */, F4D2AB6B18D1124600BB1CF0 /* cmd.c in Sources */, F4D2AB6C18D1124600BB1CF0 /* density.c in Sources */, F4D2AB6D18D1124600BB1CF0 /* vari.cpp in Sources */, F4D2AB6E18D1124600BB1CF0 /* dens_haz.c in Sources */, F4D2AB6F18D1124600BB1CF0 /* dens_int.c in Sources */, F4D2AB7018D1124600BB1CF0 /* dens_odi.c in Sources */, F4D2AB7118D1124600BB1CF0 /* startlf.c in Sources */, F4D2AB7218D1124600BB1CF0 /* adap.c in Sources */, F4D2AB7318D1124600BB1CF0 /* dist.c in Sources */, F4D2AB7418D1124600BB1CF0 /* random.c in Sources */, F4D2AB7518D1124600BB1CF0 /* lfd.c in Sources */, F4D2AB7618D1124600BB1CF0 /* band.c in Sources */, F4D2AB7718D1124600BB1CF0 /* pout.c in Sources */, F4D2AB7818D1124600BB1CF0 /* makecmd.c in Sources */, F4D2AB7918D1124600BB1CF0 /* help.c in Sources */, F4D2AB7A18D1124600BB1CF0 /* c_plot.c in Sources */, F4D2AB7B18D1124600BB1CF0 /* readfile.c in Sources */, F4D2AB7C18D1124600BB1CF0 /* multireads.cpp in Sources */, F4D2AB7D18D1124600BB1CF0 /* replicates.cpp in Sources */, F4D2AB7E18D1124600BB1CF0 /* sampling.cpp in Sources */, F4D2AB7F18D1124600BB1CF0 /* tracking.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ 1DEB923208733DC60010E9CD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_SSE3_EXTENSIONS = NO; GCC_ENABLE_SSE41_EXTENSIONS = NO; GCC_ENABLE_SSE42_EXTENSIONS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_BAM, DEBUG, ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = ""; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; GCC_WARN_ABOUT_MISSING_NEWLINE = NO; GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; GCC_WARN_SHADOW = NO; GCC_WARN_UNINITIALIZED_AUTOS = NO; GCC_WARN_UNUSED_FUNCTION = NO; GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_VALUE = YES; GENERATE_PROFILING_CODE = NO; HEADER_SEARCH_PATHS = ( /opt/local/include, /usr/include, /usr/local/include, ./src, ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)", /opt/local/libIntel64, /opt/local/lib, ); PRODUCT_NAME = cufflinks; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; }; name = Debug; }; 1DEB923308733DC60010E9CD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_AUTO_VECTORIZATION = NO; GCC_DEBUGGING_SYMBOLS = used; GCC_ENABLE_SSE3_EXTENSIONS = YES; GCC_ENABLE_SSE41_EXTENSIONS = YES; GCC_ENABLE_SSE42_EXTENSIONS = YES; GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; GCC_ENABLE_TRIGRAPHS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; GCC_PREPROCESSOR_DEFINITIONS = HAVE_BAM; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_UNROLL_LOOPS = YES; GCC_VERSION = ""; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; HEADER_SEARCH_PATHS = ( /opt/local/include, /usr/include, /usr/local/include, ./src, ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(SRCROOT)", /opt/local/libIntel64, /opt/local/lib, ); ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = cufflinks; }; name = Release; }; 1DEB923608733DC60010E9CD /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_CXX_LIBRARY = "libc++"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = 0; GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ( /opt/local/include, /usr/local/include, ); LIBRARY_SEARCH_PATHS = ( /usr/local/lib, /opt/local/lib, ); LINK_WITH_STANDARD_LIBRARIES = YES; MACOSX_DEPLOYMENT_TARGET = 10.7; ONLY_ACTIVE_ARCH = YES; OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-ftemplate-depth=1024", ); SDKROOT = macosx; USER_HEADER_SEARCH_PATHS = "/usr/include /opt/local/include /usr/local/include"; VALID_ARCHS = x86_64; }; name = Debug; }; 1DEB923708733DC60010E9CD /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CLANG_CXX_LIBRARY = "libc++"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_SSE3_EXTENSIONS = YES; GCC_ENABLE_SSE41_EXTENSIONS = YES; GCC_ENABLE_SSE42_EXTENSIONS = YES; GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ( /opt/local/include, /usr/local/include, ); LIBRARY_SEARCH_PATHS = ( /usr/local/lib, /opt/local/lib, ); LINK_WITH_STANDARD_LIBRARIES = YES; MACOSX_DEPLOYMENT_TARGET = 10.7; OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-ftemplate-depth=1024", ); SDKROOT = macosx; USER_HEADER_SEARCH_PATHS = "/usr/include /opt/local/include /usr/local/include"; VALID_ARCHS = x86_64; }; name = Release; }; 9CD6E93D13379B7E00CCE1DE /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_SSE3_EXTENSIONS = NO; GCC_ENABLE_SSE41_EXTENSIONS = NO; GCC_ENABLE_SSE42_EXTENSIONS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_BAM, DEBUG, ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = NO; GCC_WARN_SHADOW = NO; GCC_WARN_UNINITIALIZED_AUTOS = NO; GCC_WARN_UNUSED_FUNCTION = NO; GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_VALUE = YES; GENERATE_PROFILING_CODE = NO; HEADER_SEARCH_PATHS = ( /usr/local/include, ./src, "/usr/local/include/boost-1_41", ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "\\\\\\\"$(SRCROOT)\\\\\\\"", /usr/local/libIntel64, /opt/local/lib, ); PRODUCT_NAME = compress_gtf; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; }; name = Debug; }; 9CD6E93E13379B7E00CCE1DE /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_DEBUGGING_SYMBOLS = used; GCC_ENABLE_SSE3_EXTENSIONS = YES; GCC_ENABLE_SSE41_EXTENSIONS = YES; GCC_ENABLE_SSE42_EXTENSIONS = YES; GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; GCC_ENABLE_TRIGRAPHS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_UNROLL_LOOPS = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( ./src, "/usr/local/include/boost-1_41", ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "\\\\\\\"$(SRCROOT)\\\\\\\"", /usr/local/libIntel64, /opt/local/lib, ); ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = compress_gtf; }; name = Release; }; ED41B836127602C60000B5A2 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_SSE3_EXTENSIONS = NO; GCC_ENABLE_SSE41_EXTENSIONS = NO; GCC_ENABLE_SSE42_EXTENSIONS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_BAM, DEBUG, ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = NO; GCC_WARN_SHADOW = NO; GCC_WARN_UNINITIALIZED_AUTOS = NO; GCC_WARN_UNUSED_FUNCTION = NO; GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_VALUE = YES; GENERATE_PROFILING_CODE = NO; HEADER_SEARCH_PATHS = ( /usr/local/include, ./src, "/usr/local/include/boost-1_41", ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "\\\\\\\"$(SRCROOT)\\\\\\\"", /usr/local/libIntel64, /opt/local/lib, ); PRODUCT_NAME = cufflinks_xcode; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; }; name = Debug; }; ED41B837127602C60000B5A2 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_DEBUGGING_SYMBOLS = used; GCC_ENABLE_SSE3_EXTENSIONS = YES; GCC_ENABLE_SSE41_EXTENSIONS = YES; GCC_ENABLE_SSE42_EXTENSIONS = YES; GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; GCC_ENABLE_TRIGRAPHS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_UNROLL_LOOPS = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( ./src, "/usr/local/include/boost-1_41", ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "\\\\\\\"$(SRCROOT)\\\\\\\"", /usr/local/libIntel64, /opt/local/lib, ); ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = cufflinks; }; name = Release; }; EDD0CE2010C72F7D00AF308F /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_BAM, DEBUG, ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = ""; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_UNINITIALIZED_AUTOS = NO; HEADER_SEARCH_PATHS = ( /opt/local/include, /usr/local/include, ./src, ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "$(SRCROOT)", /opt/local/lib, /usr/local/libIntel64, /opt/local/libIntel64, ); OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-ftemplate-depth=1024", ); PRODUCT_NAME = cuffdiff; RUN_CLANG_STATIC_ANALYZER = NO; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; USER_HEADER_SEARCH_PATHS = ""; }; name = Debug; }; EDD0CE2110C72F7D00AF308F /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_AUTO_VECTORIZATION = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; GCC_PREPROCESSOR_DEFINITIONS = HAVE_VECLIB; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_UNROLL_LOOPS = YES; GCC_VERSION = ""; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GENERATE_PROFILING_CODE = YES; HEADER_SEARCH_PATHS = ( /opt/local/include, /usr/local/include, ./src, ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "$(SRCROOT)", /opt/local/lib, /usr/local/libIntel64, /opt/local/libIntel64, ); ONLY_ACTIVE_ARCH = YES; OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-ftemplate-depth=1024", ); PRODUCT_NAME = cuffdiff; RUN_CLANG_STATIC_ANALYZER = NO; }; name = Release; }; EDD6A9D311598AB900D3F668 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_SSE3_EXTENSIONS = NO; GCC_ENABLE_SSE41_EXTENSIONS = NO; GCC_ENABLE_SSE42_EXTENSIONS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = DEBUG; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = NO; GCC_WARN_SHADOW = NO; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = NO; GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_VALUE = YES; GENERATE_PROFILING_CODE = NO; HEADER_SEARCH_PATHS = ( /usr/local/include, ./src, "/usr/local/include/boost-1_41", ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "\\\\\\\"$(SRCROOT)\\\\\\\"", /usr/local/libIntel64, /opt/local/lib, ); PRODUCT_NAME = cufflinks_xcode; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; }; name = Debug; }; EDD6A9D411598AB900D3F668 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_DEBUGGING_SYMBOLS = used; GCC_ENABLE_SSE3_EXTENSIONS = YES; GCC_ENABLE_SSE41_EXTENSIONS = YES; GCC_ENABLE_SSE42_EXTENSIONS = YES; GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; GCC_ENABLE_TRIGRAPHS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_UNROLL_LOOPS = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( ./src, "/usr/local/include/boost-1_41", ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "\\\\\\\"$(SRCROOT)\\\\\\\"", /usr/local/libIntel64, /opt/local/lib, ); ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = cufflinks; }; name = Release; }; EDD94B651205C9E800AA1086 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; GCC_AUTO_VECTORIZATION = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_SSE3_EXTENSIONS = NO; GCC_ENABLE_SSE41_EXTENSIONS = NO; GCC_ENABLE_SSE42_EXTENSIONS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_BAM, DEBUG, ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = NO; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = NO; GCC_WARN_SHADOW = NO; GCC_WARN_UNINITIALIZED_AUTOS = NO; GCC_WARN_UNUSED_FUNCTION = NO; GCC_WARN_UNUSED_PARAMETER = NO; GCC_WARN_UNUSED_VALUE = YES; GENERATE_PROFILING_CODE = NO; HEADER_SEARCH_PATHS = ( /usr/local/include, ./src, "/usr/local/include/boost-1_41", ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "\\\"$(SRCROOT)\\\"", /usr/local/libIntel64, /opt/local/lib, ); PRODUCT_NAME = cufflinks_xcode; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; }; name = Debug; }; EDD94B661205C9E800AA1086 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_DEBUGGING_SYMBOLS = used; GCC_ENABLE_SSE3_EXTENSIONS = YES; GCC_ENABLE_SSE41_EXTENSIONS = YES; GCC_ENABLE_SSE42_EXTENSIONS = YES; GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; GCC_ENABLE_TRIGRAPHS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_UNROLL_LOOPS = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( ./src, "/usr/local/include/boost-1_41", ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "\\\"$(SRCROOT)\\\"", /usr/local/libIntel64, /opt/local/lib, ); ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = cufflinks; }; name = Release; }; EDFE39CC122BE65600F24CD3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_BAM, DEBUG, ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( /usr/local/include/, ./src, "/usr/local/include/boost-1_41", ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "\\\"$(SRCROOT)\\\"", /usr/local/libIntel64, /opt/local/lib, ); PRODUCT_NAME = cuffcluster; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; }; name = Debug; }; EDFE39CD122BE65600F24CD3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_AUTO_VECTORIZATION = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; GCC_PREPROCESSOR_DEFINITIONS = HAVE_VECLIB; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_UNROLL_LOOPS = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( ./src, "/usr/local/include/boost-1_41", ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "\\\"$(SRCROOT)\\\"", /usr/local/libIntel64, /opt/local/lib, ); ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = sorting_hat; }; name = Release; }; F4A9F3C31742865A000087E1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LIBRARY = "libc++"; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_BAM, DEBUG, ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = ""; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_UNINITIALIZED_AUTOS = NO; HEADER_SEARCH_PATHS = ( /opt/local/include, /usr/local/include, ./src, ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "$(SRCROOT)", /opt/local/lib, /usr/local/libIntel64, /opt/local/libIntel64, ); MACOSX_DEPLOYMENT_TARGET = 10.7; OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-ftemplate-depth=1024", ); PRODUCT_NAME = cuffquant; RUN_CLANG_STATIC_ANALYZER = NO; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; USER_HEADER_SEARCH_PATHS = ""; }; name = Debug; }; F4A9F3C41742865A000087E1 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LIBRARY = "libc++"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_AUTO_VECTORIZATION = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; GCC_PREPROCESSOR_DEFINITIONS = HAVE_VECLIB; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_UNROLL_LOOPS = YES; GCC_VERSION = ""; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GENERATE_PROFILING_CODE = YES; HEADER_SEARCH_PATHS = ( /opt/local/include, /usr/local/include, ./src, ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "$(SRCROOT)", /opt/local/lib, /usr/local/libIntel64, /opt/local/libIntel64, ); MACOSX_DEPLOYMENT_TARGET = 10.7; ONLY_ACTIVE_ARCH = YES; OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-ftemplate-depth=1024", ); PRODUCT_NAME = cuffquant; RUN_CLANG_STATIC_ANALYZER = NO; }; name = Release; }; F4D2AB8818D1124600BB1CF0 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( HAVE_BAM, DEBUG, ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = ""; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = NO; HEADER_SEARCH_PATHS = ( /opt/local/include, /usr/local/include, ./src, ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "$(SRCROOT)", /opt/local/lib, /opt/local/libIntel64, ); OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-ftemplate-depth=1024", ); PRODUCT_NAME = "cuffdiff copy"; RUN_CLANG_STATIC_ANALYZER = NO; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; USER_HEADER_SEARCH_PATHS = ""; }; name = Debug; }; F4D2AB8918D1124600BB1CF0 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_AUTO_VECTORIZATION = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 3; GCC_PREPROCESSOR_DEFINITIONS = HAVE_VECLIB; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_UNROLL_LOOPS = YES; GCC_VERSION = ""; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GENERATE_PROFILING_CODE = YES; HEADER_SEARCH_PATHS = ( /opt/local/include, /usr/local/include, ./src, ); INSTALL_PATH = /usr/local/bin; LIBRARY_SEARCH_PATHS = ( "$(inherited)", /usr/local/lib, "$(SRCROOT)", /opt/local/lib, /opt/local/libIntel64, ); ONLY_ACTIVE_ARCH = YES; OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-ftemplate-depth=1024", ); PRODUCT_NAME = "cuffdiff copy"; RUN_CLANG_STATIC_ANALYZER = NO; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "cufflinks" */ = { isa = XCConfigurationList; buildConfigurations = ( 1DEB923208733DC60010E9CD /* Debug */, 1DEB923308733DC60010E9CD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "cufflinks" */ = { isa = XCConfigurationList; buildConfigurations = ( 1DEB923608733DC60010E9CD /* Debug */, 1DEB923708733DC60010E9CD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 9CD6E93C13379B7E00CCE1DE /* Build configuration list for PBXNativeTarget "compress_gtf" */ = { isa = XCConfigurationList; buildConfigurations = ( 9CD6E93D13379B7E00CCE1DE /* Debug */, 9CD6E93E13379B7E00CCE1DE /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; ED41B835127602C60000B5A2 /* Build configuration list for PBXNativeTarget "gtf_reads" */ = { isa = XCConfigurationList; buildConfigurations = ( ED41B836127602C60000B5A2 /* Debug */, ED41B837127602C60000B5A2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; EDD0CE1F10C72F7D00AF308F /* Build configuration list for PBXNativeTarget "cuffdiff" */ = { isa = XCConfigurationList; buildConfigurations = ( EDD0CE2010C72F7D00AF308F /* Debug */, EDD0CE2110C72F7D00AF308F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; EDD6A9D211598AB900D3F668 /* Build configuration list for PBXNativeTarget "cuffcompare" */ = { isa = XCConfigurationList; buildConfigurations = ( EDD6A9D311598AB900D3F668 /* Debug */, EDD6A9D411598AB900D3F668 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; EDD94B641205C9E800AA1086 /* Build configuration list for PBXNativeTarget "gtf_to_sam" */ = { isa = XCConfigurationList; buildConfigurations = ( EDD94B651205C9E800AA1086 /* Debug */, EDD94B661205C9E800AA1086 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; EDFE39CB122BE65600F24CD3 /* Build configuration list for PBXNativeTarget "cuffcluster" */ = { isa = XCConfigurationList; buildConfigurations = ( EDFE39CC122BE65600F24CD3 /* Debug */, EDFE39CD122BE65600F24CD3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; F4A9F3C21742865A000087E1 /* Build configuration list for PBXNativeTarget "cuffquant" */ = { isa = XCConfigurationList; buildConfigurations = ( F4A9F3C31742865A000087E1 /* Debug */, F4A9F3C41742865A000087E1 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; F4D2AB8718D1124600BB1CF0 /* Build configuration list for PBXNativeTarget "cuffnorm" */ = { isa = XCConfigurationList; buildConfigurations = ( F4D2AB8818D1124600BB1CF0 /* Debug */, F4D2AB8918D1124600BB1CF0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; } ================================================ FILE: doc/CL_supplement.tex ================================================ \documentclass[12pt]{amsart} \usepackage{graphicx} \usepackage{amsmath} \usepackage[pdftex]{hyperref} \setlength{\textwidth}{6.2in} \setlength{\textheight}{8.4in} \setlength{\topmargin}{0.2in} \setlength{\oddsidemargin}{0in} \setlength{\evensidemargin}{0in} \setlength{\headsep}{.3in} \footskip 0.3in \newtheorem{thm}{Theorem} \newtheorem{lemma}[thm]{Lemma} \newtheorem{prop}[thm]{Proposition} \newtheorem{cor}[thm]{Corollary} \theoremstyle{definition} \newtheorem{defn}[thm]{Definition} \newtheorem{example}[thm]{Example} \newtheorem{remark}[thm]{Remark} \newtheorem{conj}[thm]{Conjecture} \newcommand{\cherry}[1]{\ensuremath{\langle #1 \rangle}} \newcommand{\ignore}[1]{} \newcommand{\half}{\frac{1}{2}} \newcommand{\eopf}{\framebox[6.5pt]{} \vspace{0.2in}} %------------------document begins----------------------- \begin{document} \title{Supplementary methods for the paper\\ Transcript assembly and quantification by RNA-Seq reveals unannotated transcripts and isoform switching during cell differentiation} \author{Cole Trapnell \and Brian A Williams \and Geo Pertea \and Ali Mortazavi \and Gordon Kwan \and Marijke J van Baren \and Steven L Salzberg \and Barbara J Wold \and Lior Pachter} %\address{} %\email{\{whoweare\}@math.berkeley.edu} %\dedicatory{\today} %\thanks{Supported in part by ....} %\subjclass{Primary 55M20; Secondary 47H10} \maketitle \markboth{C Trapnell et al.}{Transcript assembly and abundance estimation from RNA-Seq} This document is a companion to the paper ``Transcript assembly and abundance estimation from RNA-Seq reveals thousands of new transcripts and switching among isoforms''. It describes the experiment performed, the details of the {\tt Cufflinks} assembler and abundance estimation methods, and provides supplementary tables, figures and supporting evidence for claims in the paper. %\pagestyle{plain} \pagenumbering{roman} \tableofcontents \listoffigures \listoftables \newpage \pagenumbering{arabic} \section{Sequencing experiment} The data analyzed in the paper consisted of 430,467,018 paired 75bp reads sequenced from the transcriptome of mouse skeletal muscle C2C12 cells induced to undergo myogenic differentiation. Total RNA was extracted from these cells, and subsequently mRNA was isolated at four different time points (-24 hours, 60 hours, 120 hours, 168 hours). cDNA was prepared following a similar procedure to the one described in \cite{Mortazavi2008}. Fragmentation of the mRNA followed by size selection resulted in fragment lengths approximately 200nt long for all of the time-points. The distribution of fragment lengths is shown in Supplementary Figure \ref{fragment_lengths} (in Section \ref{sec:abundances} this distribution of fragment lengths is referred to as $F$). These estimates are based on alignments of the spiked-in sequences using {\tt Bowtie} 0.12 \cite{Langmead2009}. \begin{figure}[h] \includegraphics{pdfs/library_frags.pdf} \caption[Fragment length distributions of C2C12 time-course libraries]{Fragment length distributions of C2C12 time-course libraries. \label{fragment_lengths}} \end{figure} \section{Mapping fragments to the genome} In principle, an algorithm that infers individual transcript abundances by measuring the fraction of fragments originating from each of a set of known transcripts would begin by computing alignments between fragments and the set of known transcripts that may be contained in the sample. However, because the transcriptome for mouse is incompletely annotated, such an analysis requires mapping of fragments to the genome as a proxy for mapping directly to transcripts. This means that alignments of short sequencing reads must be allowed to span exon-exon splice junctions in genomic coordinate space. We previously developed a program called {\tt TopHat} to map RNA-Seq reads to the genome. {\tt TopHat} does not require a reference transcriptome and can therefore be used to discover novel splice junctions. \cite{Trapnell2009} Fragments were mapped to build 37.1 of the mouse genome with {\tt TopHat} version 1.0.13. We extended our previous algorithms described in \cite{Trapnell2009} to exploit the longer paired reads used in the study. The original {\tt TopHat} program used a seed-and-extend alignment strategy to find spliced alignments of unpaired RNA-Seq experiments. However, due to computational limitations, our original method reported only alignments across GT-AG introns shorter than 20Kb by default. This strategy also could not align reads that spanned multiple splice junctions. However, as sequencing technology has improved and longer (paired end) reads have become available, we have modified the software to employ new strategies to align reads across splice junctions. {\tt TopHat} version 1.0.7 and later splits a read 75bp or longer in three or more segments of approximately equal size (25bp), and maps them independently. Reads with segments that can be mapped to the genome only non-contiguously are marked as possible intron-spanning reads. These ``contiguously unmappable'' reads are used to build a set of possible introns in the transcriptome. \subsection{Discovering splice junctions} Suppose $S$ is a read of length $l$ that crosses a splice junction. {\tt TopHat} splits $S$ into $n=\lfloor l/k \rfloor$ segments where $k=25$bp ($k$ is a parameter that can be adjusted by the user in {\tt TopHat}). At most one of these segments must cross the splice junction, and junctions can be discovered if they lie in any of the segments. {\tt TopHat} maps the segments $s_1,...,s_n$ with {\tt Bowtie} to the genome, and checks for internal segments $s_2,...,s_{n-1}$ that do not map anywhere to the genome, as well as for pairs of successive segments $s_i,s_{i+1}$ that both align to the genome, but not adjacently. When a segment $s_i$ fails to align because it crosses a splice junction, but $s_{i-1}$ and $s_{i+1}$ are aligned (say at starting at positions $x$ and $y$, respectively), {\tt TopHat} looks for the donor and acceptor sites for the junction near $x$ and $y$. Assuming (without loss of generality) that the transcript is on Crick strand of the genome the donor must fall within $k$ bases upstream of position $x+k$, and the acceptor must be within $k$ bases downstream of $y$, a total of $k$ possible exon-exon splice junctions. Similarly, when successive segments $s_i$ and $s_{i+1}$ align to the genome non-adjacently at positions $x$ and $y$, the junction spanned by the read must be from positions $x+k$ to $y$ in the genome. {\tt TopHat} accumulates an index of potential splice junctions by examining segment mapping for all contiguously unmappable reads. For each junction the program then concatenates $k$bp upstream of the donor to $k$bp downstream of the acceptor to form a synthetic spliced sequence around the junction. The segments of the contiguously unmappable reads are then aligned against these synthetic sequences with {\tt Bowtie}. The resulting contiguous and spliced segment alignments for these reads are merged to form complete alignments to the genome, each spanning one or more splice junctions. \subsection{Resolving multiple alignments for fragments} The alignments for both reads from a mate pair are examined together to produce a set of alignments for the corresponding library fragment as a whole, reported in SAM format \cite{Li2009a}. These fragment alignments are ranked according to the procedure described below, and only highest ranking alignments are reported. The ranks are designed to incorporate very loose assumptions on intron and gene length, namely that introns longer than 20kb are rare. Let $x$ and $y$ be fragment alignments. Then $x < y$ if {\em any} of the following (applied in order) are true: \begin {enumerate} \item $x$ is a singleton, and $y$ has both ends mapped, \item $x$ crosses more splice junctions than $y$, \item the reads from $x$ map significantly farther apart in the genome than expected according to the library's fragment length distribution ($\geq$ 3 s.d.), and the reads from $y$ do not, \item the reads from $x$ are significantly closer together than expected according to the library's fragment length distribution, and the reads from $y$ are not, \item The reads from $x$ map more than 100bp farther apart than the reads from $y$, \item $x$ and $y$ both span an intron, and $x$ spans a longer one, \item $x$ has more mismatches than $y$ to the genome. \end {enumerate} Fragments that have multiple equally good alignments according to the above rules are all reported. If there are $n$ alignments for a fragment, each is assigned a probability of only $1/n$ of being correct. The SAM format encodes this probability in the mapping quality field, which is later used by {\tt Cufflinks} to reduce the contribution of multiply mapping fragments (to $1/n$ of a uniquely mappable read) in FPKM calculations (FPKM is a measurement of expression, and is formally defined in Section \ref{sec:abundances}). The recent work of Li et al. \cite{Li2009b} addresses the problem of probabilistically assigning multi-reads, and it should be possible to incorporate the ideas of that paper into future versions of {\tt Tophat} and {\tt Cufflinks}. \begin{table}[h]{ \Small \label{table:reads} \begin{tabular}{l|c|c|c|c|c|c} \hline \textbf{Sample} & \textbf{Sequenced} & \textbf{Aligned} & \textbf{Singleton} & \textbf{Spliced} & \textbf{Multi-mapping} & \textbf{Total} \\ & \textbf{fragments} & \textbf{fragments} & \textbf{fragments} & \textbf{fragments} & \textbf{fragments} & \textbf{alignments} \\ \hline -24 hours & 42,184,539 & 35,852,366 & 11,031,886 & 8,824,825 & 1,768,041 & 41,663,170 \\ 60 hours & 70,192,031 & 57,071,494 & 18,104,211 & 15,778,114 & 2,265,378 & 64,637,511 \\ 120 hours & 41,069,106 & 27,914,989 & 14,431,734 & 7,711,026 & 1,881,772 & 33,929,133 \\ 168 hours & 61,787,833 & 50,705,080 & 20,396,250 & 14,585,287 & 2,458,292 & 58,797,912 \\ Total & 215,233,509 & 171,543,929 & 63,964,081 & 46,899,252 & 8,373,483 & 199,027,726 \\ \hline \end{tabular} } \vskip 0.2in \caption[Number of fragments sequenced, aligned and mapped with {\tt TopHat}]{Number of fragments sequenced, aligned and mapped with {\tt TopHat}. Singleton fragments are fragments for which only one end could be mapped. Spliced fragments include at least one end that maps across a junction. The numbers in the total alignment column may not be the sum of the entries in each row, because some fragments fall into multiple classes.} \end{table} \newpage \section{Transcript abundance estimation \label{abundances}} \label{sec:abundances} \subsection{Definitions} A {\em transcript} is an RNA molecule that has been transcribed from DNA. A {\em primary transcript} is an RNA molecule that has yet to undergo modification. The {\em genomic location} of a primary transcript consists of a pair of coordinates in the genome representing the $5'$ transcription start site and the $3'$ polyadenylation cleavage site. We denote the set of all transcripts in a transcriptome by $T$. We partition transcripts into {\em transcription loci} (for simplicity we refer to these as loci) so that every locus contains a set of transcripts all of whose genomic locations do not overlap the genomic location of any transcript in any other locus. Formally, we consider a maximal partition of transcripts into loci, a partition denoted by $G$, where the genomic location of a transcript $t \in g \in G$ does not overlap the genomic location of any transcript $u $ where $u \in h \in G$ and $h \neq g$. We emphasize that the definition of a transcription locus is not biological; transcripts in the same locus may be regulated via different promoters, and may differ completely in sequence (for example if one transcript is in the intron of another) or have different functions. The reason for defining loci is that we will see that they are computationally convenient. We assume that at the time of an experiment, a transcriptome consists of an ensemble of transcripts $T$ where the proportion of transcript $t \in T$ is $\rho_t$, so that $\sum_{t \in T} \rho_t = 1$ and $0 \leq \rho_t \leq 1$ for all $t \in T$. Formally, a {\em transcriptome} is a set of transcripts $T$ together with the abundances $\rho=\{ \rho_t\}_{t \in T}$. For convenience we also introduce notation for the proportion of transcripts in each locus. We let $\sigma_g = \sum_{t \in g} \rho_t$. Similarly, within a locus $g$, we denote the proportion of each transcript $t \in g$ by $\tau_t = \frac{\rho_t}{\sigma_g}$. We refer to $\rho,\sigma$ and $\tau$ as {\em transcript abundances}. Transcripts have lengths, which we denote by $l(t)$. For a collection of transcripts $S \subset T$ in a transcriptome, we define the length of $S$ using the weighted mean: \begin{equation} \label{eq:effective_length} l(S) =\frac{\sum_{t \in S} \rho_tl(t)}{\sum_{t \in S}\rho_t}. \end{equation} It is important to note that the length of a set of transcripts depends on their relative abundances; the reason for this will be clear later. One grouping of transcripts that we will focus on is the set of transcripts within a locus that share the same transcription start site (TSS). Unlike the concept of a locus, grouping by TSS has a biological basis. Transcripts within such a group are by definition alternatively spliced, and if they have different expression levels, this is most likely due to the spliceosome and not due to differences in transcriptional regulation. \subsection{A statistical model for RNA-Seq} In order to analyze expression levels of transcripts with RNA-Seq data, it is necessary to have a model for the (stochastic) process of sequencing. A {\em sequencing experiment} consists of selecting a total of $M$ fragments of transcripts uniformly at random from the transcriptome. Each fragment is identified by sequencing from its ends, resulting in two reads called {\em mate pairs}. The length of a fragment is a random variable, with a distribution we will denote by $F$. That is, the probability that a fragment has length $i$ is $F(i)$ and $\sum_{i=1}^{\infty} F(i) = 1$. In this paper we assume that $F$ is normal, however in principle $F$ can be estimated using data from the experiment (e.g. spike-in sequences). We decided to use the normal approximation to $F$ (allowing for user specified parameters of the normal distribution) in order to simplify the requirements for running {\tt Cufflinks} at this time. The assumption of random fragment selection is known to oversimplify the complexities of a sequencing experiment, however without rigorous ways to normalize we decided to work with the uniform at random assumption. It is easy to adapt the model to include more complex models that address sequencing bias as RNA-Seq experiments mature and the technologies are better understood. The transcript abundance estimation problem in paired-end RNA-Seq is to estimate $\rho$ given a set of transcripts $T$ and a set of reads sequenced from the ends of fragments. In {\tt Cufflinks}, the transcripts $T$ can be specified by the user, or alternatively $T$ can be estimated directly from the reads. The latter problem is the transcript assembly problem which we discuss in Section \ref{sec:assembly}. We ran {\tt Cufflinks} in the latter ``discovery'' mode where we assembled the transcripts without using the reference annotation. The fact that fragments have different lengths has bearing on the calculation of the probability of selecting a fragment from a transcript. Consider a transcript $t$ with length $l(t)$. The probability of selecting a fragment of length $k$ from $t$ at one of the positions in $t$ assuming that it is selected uniformly at random, is $\frac{1}{l(t)-k}$. For this reason, we will define an adjusted length for transcripts as \begin{equation} \tilde{l}(t) = \sum_{i=1}^{l(t)} F(i)(l(t)-i+1). \end{equation} We also revisit the definition of length for a group of transcripts, and define \begin{equation} \tilde{l}(S) =\frac{\sum_{t \in S} \rho_t\tilde{l}(t)}{\sum_{t \in S}\rho_t}. \end{equation} It is important to note that given a read it may not be obvious from which transcript the fragment it was sequenced from originated. The consistency of fragments with transcripts is important and we define the {\em fragment-transcript matrix} $A_{R,T}$ to be the $M \times |T|$ matrix with $A(r,t)=1$ if the fragment alignment $r$ is completely contained in the genomic interval spanned by $t$, and all the implied introns in $r$ match introns in $t$ (in order), and with $A(r,t)=0$ otherwise. Note that the reads in Figure 1c in the main text are colored according to the matrix $A_{R,T}$, with each column of the matrix corresponding to one of the three colors (yellow, blue, red) and reads colored according to the mixture of colors corresponding to the transcripts their fragments are contained in. Even given the read alignment to a reference genome, it may not be obvious what the length of the fragment was. Formally, in the case that $A_{R,T}(r,t)=1$ we denote by $I_t(r)$ the fragment length from within a transcript $t$ implied by the (presumably unique) sequences corresponding to the mate pairs of a fragment $r$. If $A_{R,T}(r,t)=0$ then $I_t(r)$ is set to be infinite and $F(I_t(r)) = 0$. Given a set of reads, we assume that we can identify for each of them the set of transcripts with which the fragments the reads belonged to are consistent. The rationale for this assumption is the following: we map the reads to a reference genome, and we assume that the read lengths are sufficiently long so that every mate-pair can be uniquely mapped to the genome. We refer to this mapping as the {\em fragment alignment}. We also assume that we know all the possible transcripts and their alignments to the genome. Therefore, we can identify for each read the possible transcripts from which the fragment it belonged to originated. \begin{figure}[!ht] \includegraphics[scale=0.8]{pdfs/implied_length} \caption[Implied length of a fragment alignment]{Alignments of reads to the genome (rectangles) may be consistent with multiple transcripts (in this case both $t_1$ and $t_2$). The transcripts $t_1$ and $t_2$ differ by an internal exon; introns are indicated by long dashed lines. If we denote the fragment alignment by $r$, this means that $A_{R,T}(r,t_1)=1$ and $A_{R,T}(r,t_2)=1$. It is apparent that the implied length $I_{t_1}(r) > I_{t_2}(r)$ due to the presence of the extra internal exon in $t_1$. } \end{figure} We are now ready to write down the likelihood equation for the model. We will write $L(\rho|R)$ for the likelihood of a set of fragment alignments $R$ constructed from $M$ reads. The notation $Pr(trans. = t)$ means ``the probability that a fragment selected at random originates from transcript $t$''. \begin{eqnarray} & & L(\rho|R) = \prod_{r \in R} Pr(rd.\ aln. =r)\\ & = & \prod_{r \in R} \sum_{t \in T} Pr(rd.\ aln. =r|trans. =t)Pr(trans. =t)\\ & = & \prod_{r \in R} \sum_{t \in T} \frac{\rho_t\tilde{l}(t)}{\sum_{u \in T}\rho_u\tilde{l}(u)} Pr(rd.\ aln. = r|trans. =t)\\ & = & \prod_{r \in R} \sum_{t \in T}\frac{\rho_t\tilde{l}(t)}{\sum_{u \in T}\rho_u\tilde{l}(u)} \left(\frac{F(I_t(r))}{l(t)-I_t(r)+1}\right) \\ \label{eq:likerho} & = & \prod_{r \in R} \sum_{t \in T} \alpha_t\left(\frac{F(I_t(r))}{l(t)-I_t(r)+1}\right), \end{eqnarray} where \begin{equation} \alpha_t = \frac{\rho_t\tilde{l}(t)}{\sum_{u \in T}\rho_u\tilde{l}(u)}. \end{equation} Observe that $\alpha_t$ is exactly the probability that a fragment selected at random comes from transcript $t$, and we have that $\sum_{t \in T}\alpha_t = 1$. In light of the probabilistic meaning of the $\alpha=\{\alpha_t\}_{t \in T}$, we refer to them as {\em fragment abundances}. It is evident that the likelihood function is that of a linear model and that the likelihood function is concave (Proposition \ref{prop:linearmodel}) so a numerical method can be used to find the $\alpha$. It is then possible, in principle, to recover the $\rho$ using Lemma \ref{lemma:readstoprobs}. However the number of parameters is in the tens of thousands, and in practice this form of the likelihood function is unwieldy. Instead, we re-write the likelihood utilizing the fact that transcripts in distinct loci do not overlap in genomic location. We first calculate the probability that a fragment originates from a transcript within a given locus $g$: \begin{eqnarray} \beta_g & := & \sum_{t \in g} \alpha_t\\ & = & \frac{\sum_{t \in g} \rho_t \tilde{l}(t)}{\sum_{u \in T} \rho_u \tilde{l}(u)}\\ & = & \frac{\sum_{t \in g} \sigma_g\tau_t \tilde{l}(t)}{\sum_{h \in G} \sum_{u \in h} \sigma_h\tau_u \tilde{l}(u)}\\ & = & \frac{\sigma_g\sum_{t \in g} \tau_t \tilde{l}(t)}{\sum_{h \in G} \sigma_h \sum_{u \in h} \tau_u \tilde{l}(u)}\\ & = & \frac{\sigma_g \tilde{l}(g)}{\sum_{h \in G} \sigma_h \tilde{l}(h)}. \end{eqnarray} Recall that $\sigma_g = \sum_{t \in g} \rho_t$ and that $\tau_t = \frac{\rho_t}{\sigma_g}$ for a locus $g$. Similarly, the probability of selecting a fragment from a single transcript $t$ conditioned on selecting a transcript from the locus $g$ in which $t$ is contained is \begin{equation} \label{eq:gammatau} \gamma_t = \frac{\tau_t \tilde{l}(t)}{\sum_{u \in g} \tau_u \tilde{l}(u)}. \end{equation} The parameters $\gamma=\{\gamma_t\}_{t \in g}$ are conditional fragment abundances, and they are the parameters we estimate from the data in the next Section. Note that for a transcript $t \in g$, $\alpha_t = \beta_g \cdot \gamma_t$ and it is easy to convert between fragment abundances and transcript abundances using Lemma \ref{lemma:readstoprobs}. We denote the fragment counts by $X$; specifically, we denote the number of alignments in locus $g$ by $X_g$. Note that $\sum_{g \in G} X_g = M$. We also use the notation $g_r$ to denote the (unique) locus from which a read alignment $r$ can be obtained. The likelihood function is given by \begin{eqnarray} & & L(\rho|R) = \prod_{r \in R} Pr(rd.\ aln. =r)\\ & = & \prod_{r \in R} \sum_{g \in G} Pr(rd.\ aln. =r|locus=g)Pr(locus=g)\\ & = & \prod_{r \in R} \frac{\sigma_{g_{r}}\tilde{l}(g_{r})}{\sum_{g \in G} \sigma_g\tilde{l}(g)} Pr(rd.\ aln. =r|locus=g_r)\\ & = & \prod_{r \in R} \beta_{g_r} \sum_{t \in g_r}Pr(rd.\ aln. =r|locus=g_{r},trans. = t)Pr(trans. =t|locus=g_r)\\ & = & \prod_{r \in R} \beta_{g_r} \sum_{t \in g_r} \frac{\tau_t\tilde{l}(t)}{\sum_{u \in g_r}\tau_u \tilde{l}(u)} Pr(rd.\ aln. =r|locus=g_{r},trans. = t)\\ & = & \left( \prod_{r \in R} \beta_{g_r} \right) \left( \prod_{r \in R} \sum_{t \in g} \gamma_t \cdot Pr(rd.\ aln. =r|locus=g_r,trans. =t) \right)\\ & = & \left( \prod_{r \in R} \beta_{g_r} \right) \left( \prod_{r \in R} \sum_{t \in g} \gamma_t\cdot \frac{F(I_t(r))}{l(t)-I_t(r)+1}\right)\\ & = & \left( \prod_{g \in G} \beta_g^{X_{g}} \right) \left( \prod_{g \in G} \left( \prod_{r \in R:r \in g} \sum_{t \in g} \gamma_t \cdot \frac{F(I_t(r))}{l(t)-I_t(r)+1}\right) \right). \label{eq:likebest} \end{eqnarray} Explicitly, in terms of the parameters $\rho$, Equation (\ref{eq:likebest}) simplifies to Equation (\ref{eq:likerho}) but we will see in the next section how the maximum likelihood estimates $\hat{\rho}$ are most conveniently obtained by first finding $\hat{\beta}$ and $\hat{\gamma}$ using Equation (\ref{eq:likebest}). We note that it is biologically meaningful to include prior distributions on $\sigma$ and $\tau$ that reflect the inherent stochasticity and resulting variability of transcription in a cell. This will be an interesting direction for further research as more RNA-Seq data (with replicates) becomes available allowing for the determination of biologically meaningful priors. In particular, it seems plausible that specific isoform abundances may vary considerably and randomly within cells from a single tissue and that this may be important in studying differential splicing. We mention to this to clarify that in this paper, the confidence intervals we report represent the variability in the maximum likelihood estimates $\hat{\sigma}_j$ and $\hat{\tau}^k_j$, and are not the variances of prior distributions. \subsection{Estimation of parameters} We begin with a discussion of identifiability of our model. Identifiability refers to the injectivity of the model, i.e., \begin{equation} \mbox{if } Pr_{\rho_1}(r) = Pr_{\rho_2}(r) \ \forall r \in R, \ \mbox{ then } \rho_1 = \rho_2. \end{equation} The identifiability of RNA-Seq models was discussed in \cite{Hiller2009}, where a standard analysis for linear models is applied to RNA-Seq (for another related biological example, see \cite{Pe'er2004} which discusses identifiability of haplotypes in mixed populations from genotype data). The results in these papers apply to our model. For completeness we review the conditions for identifiability. Recall that $A_{R,T}$ is the fragment-transcript matrix that specifies which transcripts each fragment is compatible with. The following theorem provides a simple characterization of identifiability: \begin{thm} The RNA-Seq model is identifiable iff $A_{R,T}$ is full rank. \end{thm} Therefore, for a given set of transcripts and a read set $R$, we can test whether the model is identifiable using elementary linear algebra. For the results in this paper, when estimating expression with given annotations, when the model was not identifiable we picked {\em a} maximum likelihood solution, although in principle it is possible to bound the total expression of the locus and/or report identifiability problems to the user. Returning to the likelihood function \begin{equation} \left( \prod_{g \in G} \beta_g^{X_{g}} \right) \left( \prod_{g \in G} \left( \prod_{r \in R:r \in g} \sum_{t \in g} \gamma_t \cdot \frac{F(I_t(r))}{l(t)-I_t(r)+1}\right) \right), \end{equation} we note that both the $\beta$ and $\gamma$ parameters depend on the $\rho$ parameters. However, we will see that if we maximize the $\beta$ separately from the $\gamma$, and also each of the sets $\{\gamma_t:t \in g\}$ separately, then it is always possible to find $\rho$ that match both the maximal $\beta$ and $\gamma$. In other words, the problem of finding $\hat{\rho}$ is equivalent to finding $\hat{\beta}$ that maximizes $ \prod_{g \in G} \beta_g^{X_g}$ and separately, for each locus $g$, the $\hat{\gamma}_t$ that maximize \begin{equation} \prod_{r \in R:r \in g} \sum_{t \in g} \gamma_t \frac{F(I_t(r))}{l(t)-I_t(r)+1}. \end{equation} We begin by solving for the $\hat{\beta}$ and $\hat{\gamma}$ and the variances of the maximum likelihood estimates, and then explain how these are used to report expression levels. We can solve for the $\hat{\gamma}$ using the fact that the model is linear. That is, the probability of each individual read is linear in the read abundances $\gamma_t$. It is a standard result in statistics (see, e.g., Proposition 1.4 in \cite{ASCB2005}) that the log likelihood function of a linear model is concave. Thus, a hill climbing method can be used to find the $\hat{\gamma}$. We used the EM algorithm for this purpose. Rather than using the direct ML estimates, we obtained a regularized estimate by importance sampling from the posterior distribution with a proposal distribution we explain below. The samples were also used to estimate variances for our estimates. It follows from standard MLE asymptotic theory that the $\hat{\gamma}$ are asymptotically multivariate normal with variance-covariance matrix given by the inverse of the observed Fisher information matrix. This matrix is defined as follows: \begin{defn}[Observed Fisher information matrix] The observed Fisher information matrix is the negative of the Hessian of the log likelihood function evaluated at the maximum likelihood estimate. That is, for parameters $\Theta=(\theta_1,\ldots,\theta_n)$, the $n \times n$ matrix is \begin{eqnarray} \mathcal{F}_{k,l}(\hat{\Theta}) & = & - \frac{\partial^2 log(\mathcal{L}(\Theta|R))}{\partial \theta_k \theta_l} |_{\theta=\hat{\theta}}. \end{eqnarray} \end{defn} In our case, considering a single locus $g$, the parameters are $\Theta = (\gamma_{t_1},\ldots,\gamma_{t_{|g|}})$, and as expected from Proposition \ref{prop:linearmodel}: \begin{eqnarray} \label{eq:Fisher} \mathcal{F}_{t_k,t_l}(\hat{\Theta}) & = & \sum_{r \in R:r \in g} \left[ \frac{1}{\left( \sum_{h \in g} \hat{\gamma}_h \frac{F(I_h(r))}{l(h) - I_h(r)+1} \right)^2} \frac{F(I_{t_k}(r)) F(I_{t_l}(r)) }{(l(t_k)-I_{t_k}+1)(l(t_l)-I_{t_l}+1)} \right]. \end{eqnarray} Because some of the transcript abundances may be close to zero, we adopted the Bayesian approach of \cite{Jiang2009} and instead sampled from the joint posterior distribution of $\Theta$ using the proposal distribution consisting of the multivariate normal with mean given by the MLE, and variance-covariance matrix given by the inverse of (\ref{eq:Fisher}). If the Observed Fisher Information Matrix is singular then the user is warned and the confidence intervals of all transcripts are set to $[0,1]$ (meaning that there is no information about relative abundances). The method used for sampling was importance sampling. The samples were used to obtain a maximum-a-posterior estimate for $\hat{\gamma}_t$ for each $t$ and for the variance-covariance matrix which we denote by $\Psi^g$ (where $g \in G$ denotes the locus). Note that $\Psi^g$ is a $|g| \times |g|$ matrix. The covariance between $\hat{\gamma}_{t_k}$ and $\hat{\gamma}_{t_l}$ for $t_k,t_l \in g$ is given by $\Psi^g_{t_k,t_l}$. Turning to the maximum likelihood estimates $\hat{\beta}$, we use the fact that the model is the log-linear. Therefore, \begin{equation} \label{eq:sigmahat} \hat{\beta_g} = \frac{X_{g}}{M}. \end{equation} Viewed as a random variable, the counts $X_{g}$ are approximately Poisson and therefore the variance of the MLE $\hat{\beta}_g$ is approximately $X_{g}$. We note that for the tests in this paper we directly used the total counts $M$ and the proportional counts $X_g$, however it is easy to incorporate recent suggestions for total count normalization, such as \cite{Bullard2010} into {\tt Cufflinks}. The favored units for reporting expression in RNA-Seq studies to date is not using the transcript abundances directly, but rather using a measure abbreviated as FPKM, which means ``expected number of fragments per kilobase of transcript sequence per millions base pairs sequenced''. These units are equivalent to measuring transcript abundances (multiplied by a scalar). The computational advantage of FPKM, is that the normalization constants conveniently simplify some of the formulas for the variances of transcript abundance estimates. For example, the abundance of a transcript $t \in g$ in FPKM units is \begin{equation} \label{eq:FPKM1} \frac{10^6 \cdot 10^3 \cdot \alpha_t}{\tilde{l}(t)} = \frac{10^6 \cdot 10^3 \cdot \beta_g \cdot \gamma_t}{\tilde{l}(t)}. \end{equation} Equation (\ref{eq:FPKM1}) makes it clear that although the abundance of each transcript $t \in g$ in FPKM units is proportional to the transcript abundance $\rho_t$ it is given in terms of the read abundances $\beta_g$ and $\gamma_t$ which are the parameters estimated from the likelihood function. The maximum likelihood estimates of $\beta_g$ and $\gamma_t$ are random variables, and we denote their scaled product (in FPKM units) by $A_t$. That is $Pr(A_t = a)$ is the probability that for a random set of fragment alignments from a sequencing experiment, the maximum likelihood estimate of the transcript abundance for $t$ in FPKM units is $a$. Using the fact that the expectation of a product of independent random variables is the product of the expectations, for a transcript $t \in g$ we have \begin{equation} E[A_t] = \frac{10^9X_{g}\hat{\gamma}_t}{\tilde{l}(t)M}. \end{equation} Given the variance estimates for the $\hat{\gamma}_t$ we turn to the problem of estimating $Var[A_t]$ for a transcript $t \in g$. We use Lemma \ref{lemma:varproduct} to obtain \begin{eqnarray} Var[A_t]& = & \left(\frac{10^9}{\tilde{l}(t)M}\right)^2 \left( \Psi^g_{t,t}X_{g} + \Psi^g_{t,t}X^2_{g} + (\hat{\gamma}_t)^2 X_{g} \right)\\ & = & X_{g}\left(\frac{10^9}{\tilde{l}(t)M)}\right)^2 \left( \Psi^g_{t,t}(1+X_{g}) + (\hat{\gamma}_t)^2\right). \end{eqnarray} This variance calculation can be used to estimate a confidence interval by utilizing the fact \cite{Aroian1978} that when the expectation divided by the standard deviation of at least one of two random variables is large, their product is approximately normal. Next we turn to the problem of estimating expression levels (and variances of these estimates) for groups of transcripts. Let $S \subset T$ be a group of transcripts located in a single locus $g$, e.g. a collection of transcripts sharing a common TSS. The analogy of Equation (\ref{eq:FPKM1}) for the FPKM of the group is \begin{eqnarray} \label{eq:grouphard} & & \frac{10^6 \cdot 10^3 \cdot \beta_g \cdot \left( \sum_{t \in S} \gamma_t\right)}{\tilde{l}(S)}\\ & = & 10^6 \cdot 10^3 \cdot \beta_g \cdot \sum_{t \in S} \frac{\gamma_t}{\tilde{l}(t)}. \label{eq:groupeasy} \end{eqnarray} As before, we denote by $B_S$ the random variables for which $Pr(B_S = b)$ is the probability that for a random set of fragment alignments from a sequencing experiment, the maximum likelihood estimate of the transcript abundance for all the transcripts in $S$ in FPKM units is $b$. We note that the $B_S$ are products and sums of random variables (Equation (\ref{eq:groupeasy})). This makes Equation (\ref{eq:groupeasy}) more useful than the equivalent unsimplified Equation (\ref{eq:grouphard}), especially because $\tilde{l}(S)$ is, in general, a ratio of two random variables. We again use the fact that the expectation of independent random variables is the product of the expectation, in addition to the fact that expectation is a linear operator to conclude that for a group of transcripts $S$, \begin{equation} \label{eq:expectTSS} E[B_S] = \frac{10^9 \cdot X_g \cdot \sum_{t \in S} \frac{\hat{\gamma}_t}{\tilde{l}(t)}}{M}. \end{equation} In order to compute the variance of $B_S$, we first note that \begin{equation} Var\left[\sum_{t \in S} \frac{\hat{\gamma}_t}{\tilde{l}(t)}\right] = \sum_{t \in S}\frac{1}{\tilde{l}(t)^2}\Psi^g_{t,t} + \sum_{t,u \in S} \frac{1}{\tilde{l}(t)\tilde{l}(u)} \Psi^g_{t,u}. \end{equation} Therefore, \begin{eqnarray} & & \quad Var[B_S] \quad = \quad \nonumber \\ & & X_g\left(\frac{10^9}{M}\right)^2\left( \left(1+X_g\right) \left(\sum_{t \in S}\frac{1}{\tilde{l}(t)^2}\Psi^g_{t,t} + \sum_{t,u \in S} \frac{1}{\tilde{l}(t)\tilde{l}(u)} \Psi^g_{t,u}\right) + \left( \sum_{t \in S} \frac{\hat{\gamma}_t}{\tilde{l}(t)} \right)^2 \right). \label{eq:varTSS} \end{eqnarray} We can again estimate a confidence interval by utilizing the fact that $B_S$ is approximately normal \cite{Aroian1978}. \subsection{Assessment of abundance estimation} We evaluated the accuracy of {\tt Cufflinks}' transcript abundance estimates by first comparing the estimated FPKM values for the spiked-in sequences in each sample against their intended concentrations. Spike FPKMs were highly correlated across a 5-log dynamic range in all four samples (Supplementary Figure \ref{spikes}). However, because sequenced spike fragments were unambiguously mappable, we performed additional simulation to measure the accuracy of the software in alternatively spliced loci. \begin{figure}[h] \includegraphics{pdfs/spikes.pdf} \caption[{\tt Cufflinks}' abundance estimates of spiked-in sequences]{{\tt Cufflinks}' abundance estimates of spiked-in sequences.\label{spikes}} \end{figure} \begin{figure}[h] \includegraphics[scale=0.5]{pdfs/sim_small.pdf} \caption[Accuracy of {\tt Cufflinks} abundance estimates]{\emph{In silico} assessment of the accuracy of {\tt Cufflinks}’ abundance estimation when provided with a perfect assembly (a) and after {\it de novo} comparative assembly (b). Red points indicate in silico transcripts that were only partially recovered, where black points were fully reconstructed by {\tt Cufflinks}. Simulated reads were aligned with {\tt TopHat} and the alignments were provided to {\tt Cufflinks} along with the structures of the transcripts in the simulated sample. \label{sim}} \end{figure} To assess the accuracy of {\tt Cufflinks}' estimates, we simulated an RNA-Seq experiment using the FluxSimulator, a freely available software package that models whole-transcriptome sequencing experiments with the Illumina Genome Analyzer. \cite{Sammeth} The software works by first randomly assigning expression values to the transcripts provided by the user, constructing an amplified, size-selected library, and sequencing it. Mouse UCSC transcripts were supplied to the software, along with build 37.1 of the genome. FluxSimulator then randomly assigned expression ranks to 18,935 transcripts, with the expression value $y$ computed from the rank $x$ according to the formula \begin{equation} y =\left( \frac{x}{5.0 \times 10^7}\right)^{-0.6}e^{-\left(\frac{x}{9.5\times{10^3}}\right) - \left(\frac{x}{9.5\times{10^3}}\right)^2}. \end{equation} From these relative expression levels, the software constructed an \emph{in silico} RNA sample, with each transcript assigned a number of molecules according to its abundances. The software modeled the polyadenylation of each transcript by adding a poly-A tail (of mean length 125nt) after the terminal exon. FluxSimulator then simulated reverse transcription of \emph{in silico} mRNAs by random hexamer priming, followed by size selection of RT products to between 175 and 225 nt. The resulting ``library'' of 6,601,805 cDNA fragments was then sampled uniformly at random for simulated sequencing, where the initial and terminal 75bp of each selected fragment were reported as reads. FluxSimulator does not allow precise control over the number of reads generated (Michael Sammeth, personal communication), but nevertheless generated 13,203,516 75nt paired-end RNA-Seq reads. These reads included sequencing errors; FluxSimulator includes a position-specific sequencing error model. Fragments were mapped with {\tt TopHat} to the mouse genome using identical parameters to those used to map the C2C12 reads, mapping a total of 6,176,961 (93\% of the library). These alignments were supplied along with the exact set of expressed transcripts to {\tt Cufflinks}, to measure {\tt Cufflinks}' abundance estimation accuracy when working with a ``perfect'' assembly (Supplementary Figure \ref{sim}). Estimated FPKM was very close to true \emph{in silico} FPKM across a dynamic range of expression of nearly six orders of magnitude ($R^2=0.95$). \begin{figure}[!ht] \includegraphics[scale=0.30]{pdfs/vs_no_discovery_small.pdf} \caption[Improved abundance accuracy with novel transcripts]{Excluding novel C2C12 transcripts from abundance estimation results in inaccurate estimates for known transcripts. \label{vs_no_discovery}} \end{figure} Estimation of transcript abundances by assigning fragments to them may be inaccurate if one is working with an incomplete set of transcripts for a particular sample. To evaluate the impact of missing transcripts, we removed the newly discovered transcripts from our high-confidence set and re-estimated the abundances of known transcripts, and then compared them to those obtained when working with the complete high-confidence set. While estimates of known transcripts were overall similar or identical when working with both sets, reflecting single-isoform or fully annotated genes, isoforms of some alternatively spliced genes differed greatly. (Supplementary Figure \ref{vs_no_discovery}) As a final note, we point out that a na\"{i}ve, yet popular, current approach to expression estimation is to sum the reads mapping to a gene (where the sum is taken across all exons appearing in all possible isoforms), and then to normalize the count by either the total number of exonic bases, or by the average length of the transcripts. We call the former method the ``projective normalization'' method, and the latter the ``average length'' method. \begin{prop} The totally projective normalization method is correct only for single isoform genes. If a gene has two or more isoforms the expression is underestimated. \end{prop} {\bf Proof}: The effective length of the gene is overestimated, hence the expression level is underestimated. To see this, first note that the length of some transcript in a gene is less than the total number of exonic bases among all transcripts. Then, if $a_1,\ldots,a_n$ are real numbers all greater than zero and $b_1,\ldots,b_n$ are not all equal, we have \begin{equation} \frac{\sum_{i=1}^na_ib_i}{\sum_{i=1}^n a_i} < max_{i}(b_i), \end{equation} so that the effective length in equation (\ref{eq:effective_length}) is always less than the total number of exonic bases among all transcripts. Stated differently, the projective normalization method has the problem that it produces numbers that are not proportional to the $\rho$, so that it is not additive. The average length method is flawed for the same reason. The transcript abundances are not taken into account in computing the effective lengths. In some cases the method might produce the correct answer (for the wrong reasons), but it is bound to be incorrect on most examples, especially in genes with transcripts of variable lengths and non-uniform abundances. \section{Transcript assembly} \label{sec:assembly} \subsection{Overview} {\tt Cufflinks} takes as input alignments of RNA-Seq fragments to a reference genome and, in the absence of an (optional) user provided annotation, initially assembles transcripts from the alignments. Transcripts in each of the loci are assembled independently. The assembly algorithm is designed to aim for the following: \begin{enumerate} \item Every fragment is consistent with at least one assembled transcript. \item Every transcript is tiled by reads. \item The number of transcripts is the smallest required to satisfy requirement (1). \item The resulting RNA-Seq models (in the sense of Section \ref{sec:abundances}) are identifiable. \end{enumerate} In other words, we seek an assembly that parsimoniously “explains” the fragments from the RNA-Seq experiment; every fragment in the experiment (except those filtered out during a preliminary error-control step) should have come from a {\tt Cufflinks} transcript, and {\tt Cufflinks} should produce as few transcripts as possible with that property. Thus, {\tt Cufflinks} seeks to optimize the criterion suggested in \cite{Xing2004}, however, unlike the method in that paper, {\tt Cufflinks} leverages Dilworth's Theorem \cite{Dilworth1950} to solve the problem by reducing it to a matching problem via the equivalence of Dilworth's and K\"{o}nig's theorems (Theorem \ref{thm:dilko} in Appendix A). Our approach to isoform reconstruction is inspired by a similar approach used for haplotype reconstruction from HIV quasi-species \cite{Eriksson2008}. \subsection{A partial order on fragment alignments} The {\tt Cufflinks} program loads a set of alignments in SAM format sorted by reference position and assembles non-overlapping sets of alignments independently. After filtering out any erroneous spliced alignments or reads from incompletely spliced RNAs, {\tt Cufflinks} constructs a partial order (Definition \ref{def:po}), or equivalently a directed acyclic graph (DAG), with one node for each fragment that in turn consists of an aligned pair of mated reads. First, we note that fragment alignments are of two types: those where reads align in their entirety to the genome, and reads which have a split alignment (due to an implied intron). In the case of single reads, the partial order can be simply constructed by checking the reads for {\em compatibility}. Two reads are {\em compatible} if their overlap contains the exact same implied introns (or none). If two reads are not compatible they are {\em incompatible}. The reads can be partially ordered by defining, for two reads $x,y$, that $x\leq y$ if the starting coordinate of $x$ is at or before the starting coordinate of $y$, and if they are compatible. In the case of paired-end RNA-Seq the situation is more complicated because the unknown sequence between mate pairs. To understand this, we first note that pairs of fragments can still be determined to be incompatible if they cannot have originated from the same transcript. As with single reads, this happens when there is disagreement on implied introns in the overlap. However compatibility is more subtle. We would like to define a pair of fragments $x,y$ to be compatible if they do not overlap, or if every implied intron in one fragment overlaps an identical implied intron in the other fragment. However it is important to note that it may be impossible to determine the compatibility (as defined above) or incompatibility of a pair of fragments. For example, an unknown region internal to a fragment may overlap two different introns (that are incompatible with each other). The fragment may be compatible with one of the introns (and the fragment from which it originates) in which case it is incompatible with the other. Since the opposite situation is also feasible, compatibility (or incompatibility) cannot be assigned. Fragments for which the compatibility/incompatibility cannot be determined with respect to every other fragment are called {\em uncertain}. Finally, two fragments are called {\em nested} if one is contained within the other. \begin{figure}[h] \includegraphics[scale=0.5]{pdfs/compatibility.pdf} \caption[Compatibility and incompatibility of fragments]{Compatibility and incompatibility of fragments. End-reads are solid lines, unknown sequences within fragments are shown by dotted lines and implied introns are dashed lines. The reads in (a) are compatible, whereas the fragments in (b) are incompatible. The fragments in (c) are nested. Fragment $x_4$ in (d) is uncertain, because $y_4$ and $y_5$ are incompatible with each other.} \end{figure} Before constructing a partial order, fragments are extended to include their nested fragments and uncertain fragments are discarded. These discarded fragments are used in the abundance estimation. In theory, this may result in suboptimal (i.e. non-minimal assemblies) but we determined empirically that after assembly uncertain fragments are almost always consistent with one of the transcripts. When they are not, there was no completely tiled transcript that contained them. Thus, we employ a heuristic that substantially speeds up the program, and that works in practice. A partial order $P$ is then constructed from the remaining fragments by declaring that $x \leq y$ whenever the fragment corresponding to $x$ begins at, or before, the location of the fragment corresponding to $y$ and $x$ and $y$ are compatible. In what follows we identify $P$ with its Hasse diagram (or covering relation), equivalently a directed acyclic graph (DAG) that is the transitive reduction. \begin{prop} $P$ is a partial order. \end{prop} {\bf Proof}: The fragments can be totally ordered according to the locations where they begin. It therefore suffices to check that if $x,y,z$ are fragments with $x$ compatible with $y$ and $y$ compatible with $z$ then $x$ is compatible with $z$. Since $x$ is not uncertain, it must be either compatible or incompatible with $z$. The latter case can occur only if $x$ and/or $z$ contain implied introns that overlap and are not identical. Since $y$ is not nested within $z$ and $x$ is not nested within $y$, it must be that $y$ contains an implied intron that is not identical with an implied intron in either $x$ or $z$. Therefore $y$ cannot be compatible with both $x$ and $z$. \qed \subsection{Assembling a parsimonious set of transcripts} In order to assemble a set of transcripts, {\tt Cufflinks} finds a (minimum) partition of $P$ into chains (see Definition \ref{def:po}). A partition of $P$ into chains yields an assembly because every chain is a totally ordered set of compatible fragments $x_1,\ldots,x_l$ and therefore there is a set of overlapping fragments that connects them. By Dilworth's theorem (Theorem \ref{thm:Dilworth}), the problem of finding a minimum partition $P$ into chains is equivalent to finding a maximum antichain in $P$ (an antichain is a set of mutually incompatible fragments). Subsequently, by Theorem \ref{thm:dilko}, the problem of finding a maximum antichain in $P$ can be reduced to finding a maximum matching in a certain bipartite graph that emerges naturally in deducing Dilworth's theorem from K\"{o}nig's theorem \ref{thm:konig}. We call the key bipartite graph the ``reachability'' graph. It is the transitive closure of the DAG, i.e. it is the graph where each fragment $x$ has nodes $L_x$ and $R_x$ in the left and right partitions of the reachability graph respectively, and where there is an edge between $L_x$ and $R_y$ when $x \leq y$ in $P$. The maximum matching problem is a classic problem that admits a polynomial time algorithm. The Hopcroft-Karp algorithm \cite{Hopcroft1973} has a run time of $O(\sqrt{V}E)$ where in our case $V$ is the number of fragments and $E$ depends on the extent of overlap, but is bounded by a constant times the coverage depth. We note that our parsimony approach to assembly therefore has a better complexity than the $O(V^3)$ PASA algorithm \cite{Haas2003}. The minimum cardinality chain decomposition computed using the approach above may not be unique. For example, a locus may contain two putative distinct initial exons (defined by overlapping incompatible fragments), and one of two distinct terminal and a constitutive exon in between that is longer than any read or insert in the RNA-Seq experiment. In such a case, the parsimonious assembly will consist of two transcripts, but there are four possible solutions that are all minimal. In order to ``phase'' distant exons, we leverage the fact that abundance inhomogeneities can link distant exons via their coverage. We therefore weight the edges of the bipartite reachability graph based on the percent-spliced-in metric introduced by Wang \emph{et al.} in \cite{Wang2008}. In our setting, the percent-spliced-in $\psi_x$ for an alignment $x$ is computed by counting the alignments overlapping $x$ in the genome that are compatible with $x$ and dividing by the total number of alignments that overlap $x$, and normalizing for the length of the $x$. The cost $C(y,z)$ assigned to an edge between alignments $y$ and $z$ reflects the belief that they originate from different transcripts: \begin{equation} C(y,z) = -\log(1 - |\psi_y - \psi_z|). \label{eq:match_cost} \end{equation} Rather than using the Hopcroft-Karp algorithm, a modified version of the {\tt LEMON} \cite{LEMON} and {\tt Boost} \cite{Boost} graph libraries are used to compute a {\em min-cost} maximum cardinality matching on the bipartite compatibility graph. Even with the presence of weighted edges, our algorithm is very fast. The best known algorithm for weighted matching is $O(V^2logV+VE)$. Because we isolated total RNA, we expected that a small fraction of our reads would come from the intronic regions of incompletely processed primary transcripts. Moreover, transcribed repetitive elements and low-complexity sequence result in ``shadow'' transfrags that we wished to discard as artifacts. Thus, {\tt Cufflinks} heuristically identifies artifact transfrags and suppresses them in its output. We also filter extremely low-abundance minor isoforms of alternatively spliced genes, using the model described in Section \ref {abundances} as a means of reducing the variance of estimates for more abundant transcripts. A transcript $x$ meeting any of the following criteria is suppressed: \begin{enumerate} \item $x$ aligns to the genome entirely within an intronic region of the alignment for a transcript $y$, and the abundance of $x$ is less than 15\% of $y$'s abundance. \item $x$ is supported by only a single fragment alignment to the genome. \item More than 75\% of the fragment alignments supporting $x$, are mappable to multiple genomic loci. \item $x$ is an isoform of an alternatively spliced gene, and has an estimated abundance less than 5\% of the major isoform of the gene. \end{enumerate} Prior to transcript assembly, {\tt Cufflinks} also filters out some of the alignments for fragments that are likely to originate from incompletely spliced nuclear RNA, as these can reduce the accuracy abundance estimates for fully spliced mRNAs. These filters and the output filters above are detailed in the source file \verb!filters.cpp! of the source code for {\tt Cufflinks}. In the overview of this Section, we mentioned that our assembly algorithm has the property that the resulting models are identifiable. This is a convenient property that emerges naturally from the parsimony criterion for a ``minimal explanation'' of the fragment alignments. Formally, it is a corollary of Dilworth's theorem: \begin{prop} The assembly produced by the {\tt Cufflinks} algorithm always results in an identifiable RNA-Seq model. \end{prop} {\bf Proof}: By Dilworth's theorem, the minimum chain decomposition (assembly) we obtain has the same size as the maximum antichain in the partially ordered set we construct from the reads. An antichain consists of reads that are pairwise incompatible, and therefore those reads must form a permutation sub-matrix in the fragment-transcript matrix $A_{R,T}$ with columns corresponding to the transcripts in a locus, and with rows corresponding to the fragments in the antichain. The matrix $A_{R,T}$ therefore contains permutation sub-matrices that together span all the columns, and the matrix is full-rank. \subsection{Assessment of assembly quality} To compare {\tt Cufflinks} transfrags against annotated transcriptomes, and also to find transfrags common to multiple assemblies, we developed a tool called {\tt Cuffcompare} that builds structural equivalence classes of transcripts. We ran {\tt Cuffcompare} on each the assembly from each time point against the combined annotated transcriptomes of the {UCSC known genes}, {\tt Ensembl}, and {\tt Vega}. Because of the stochastic nature of sequencing, \emph{ab initio} assembly of the same transcript in two different samples may result in transfrags of slightly different lengths. A {\tt Cufflinks} transfrag was considered a complete match when there was a transcript with an identical chain of introns in the combined annotation. When no complete match is found between a {\tt Cufflinks} transfrag and the transcripts in the combined annotation, {\tt Cuffcompare} determines and reports if another substantial relationship exists with any of the annotation transcripts that can be found in or around the same genomic locus. For example, when all the introns of a transfrag match perfectly a part of the intron chain (sub-chain) of an annotation transcript, a ``containment'' relationship is reported. For single-exon transfrags, containment is also reported when the exon appears fully overlapped by any of the exons of an annotation transcript. If there is no perfect match for the intron chain of a transfrag but only some exons overlap and there is at least one intron-exon junction match, {\tt Cuffcompare} classifies the transfrag as a putative ``novel'' isoform of an annotated gene. When a transfrag is unspliced (single-exon) and it overlaps the intronic genomic space of a reference annotation transcript, the transfrag is classified as potential pre-mRNA fragment. Finally, when no other relationship is found between a {\tt Cufflinks} transfrag and an annotation transcript, {\tt Cuffcompare} can check the repeat content of the transfrag's genomic region (assuming the soft-masked genomic sequence was also provided) and it would classify the transfrag as ``repeat'' if most of its bases are found to be repeat-masked. When provided multiple time point assemblies, {\tt Cuffcompare} matches transcripts between samples that have an identical intron structure, placing all mutually matching transcripts in the same equivalence class. The program reports a non-redundant set of transcript structures, choosing the longest transcript from each equivalence class as the representative transcript. {\tt Cuffcompare} also reports the relationships found between each equivalence class (transcripts that have a complete match across time points) and reference transcripts from the combined annotation set, where applicable. \begin{figure}[h] \includegraphics{pdfs/categories.pdf} \caption[Categorization of {\tt Cufflinks} transcripts by estimated depth of read coverage]{Categorization of {\tt Cufflinks} transcripts by estimated depth of read coverage. \label{categories}} \end{figure} Table \ref{category_table} includes the classifications of the transfrags reported by {\tt Cufflinks} after assembling the C2C12 reads. While only 13.5\% of assembled transfrags represent known transcripts, {\tt Cufflinks} assigns more than 76\% of reads to these, reflecting the fact that moderate and highly-abundant transfrags generate most of the library fragments in the experiment. Less abundant transcripts receive less complete sequencing coverage, resulting in numerous transfrags that partially but compatibly match known transcripts. Supplementary Figure \ref{categories} shows the categories of {\tt Cufflinks} transfrags as estimated depth of sequencing coverage increasing. \begin{table}[h]{ \Small \begin{tabular}{l|c|c|c} \hline \textbf{Category} & \textbf{Transfrags} & \textbf{\% of total transfrags} & \textbf{Assembled reads} (\%) \\ \hline Match to known isoform & 39,857 & 13.5 & 76.7 \\ Novel isoform of known gene & 18,565 & 6.3 & 11.3 \\ Contained in known isoform & 71,029 & 24.1 & 4.6 \\ Repeat & 41,906 & 14.2 & 0.6 \\ Intronic & 32,658 & 11.1 & 0.6 \\ Polymerase run-on & 18,522 & 6.3 & 0.5 \\ Intergenic & 48,604 & 16.5 & 1.2 \\ Other artifacts & 22,483 & 7.7 & 4.5 \\ \hline Total transfrags & 293,624 & 100.0 & 100.0 \\ \hline \end{tabular} } \caption[Types of assembled transfrags]{Classification of all transfrags produced at any time point with respect to annotated gene models and masked repeats in the mouse genome. Transfrags that are present in multiple time point assemblies are multiply counted to preserve the relative distribution of transfrags among the categories across the full experiment. \label{category_table}} \end{table} We selected the {\tt Cufflinks} transfrags that did not have a complete match or ``containment'' relationship with a known annotation transcript, but were classified by {\tt Cuffcompare} as putative ``novel isoforms'' of known genes. We explored the sequence similarity between these transfrags and two sets of mRNA sequences: one set representing the mouse transcriptome and consisting of all mouse ESTs in dbEST plus all reviewed or validated RefSeq mouse mRNAs, and the other consisting of all reviewed or validated RefSeq mRNAs from other mammalian species. We used megablast to map all mouse ESTs onto this set of {\tt Cufflinks} transfrags, only keeping EST alignments where at least 80\% of the EST length was aligned with at least 95\% identity. We calculated transfrag coverage by tiling overlapping EST mappings on each transfrag and counted only those transfrags that are covered by ESTs for at least 80\% of the transfrag length without any coverage gaps, and with coverage discontinuities only allowed at no more than 10\% distance from either end. For the mouse mRNAs alignments we also used megablast with the same basic coverage cutoffs (minimum 80\% covered with no more than 10\% unaligned on either side of the overlap) but applied to each pairwise alignment independently (i.e. as opposed to EST alignments, no coverage tiling was considered for mRNA alignments). For alignments with the non-mouse mRNAs we used discontiguous megablast with a dual (combined) discontiguous word template (option -N 2), with the same coverage assessment protocol as in the case of mouse mRNA alignments but with the percent identity cutoff lowered to 80\%. \begin{figure}[h] \includegraphics{pdfs/FHL3_RT-PCR.pdf} \caption[New isoform of Fhl3]{New and known isoforms of Fhl3 recovered by {\tt Cufflinks} at each time point (a) were confirmed by form-specific RT-PCR (b). \label{FHL3_RT-PCR}} \end{figure} \begin{figure}[h] \includegraphics{pdfs/Additional_RT-PCR.pdf} \caption[RT-PCR validation of selected genes]{RT-PCR of selected genes. For Schip1, {\tt Cufflinks} assembled a known and a novel isoform (with a new TSS), both of which are detected by RT-PCR. Prkar1a is annotated with two alternate first exons and start sites in {\tt UCSC known genes}, both of which were detected. {\tt Cufflinks} assembles the known isoform of the splicing factor Sfpq, along with a novel variant that contains most of RIKEN clone. Tpm1, a gene known to have muscle- and non-muscle-specific isoforms displays previously observed alternative first and last exons. \label{RT-PCR}} \end{figure} \begin{table}[h]{ \Small \begin{tabular}{r|l|c|c} \hline \textbf{Primer name} & \textbf{sequence} & \textbf{product length} & \textbf{endpoint gel score} \\ \hline \textbf{FHL3 Ex1Ex3} & & & \\ Left & CTCGCCGCTGCTCTCTCG & 221 & +++ \\ Right & GTGTTGTCATAGCACGGAACG & & \\ \textbf{FHL3 Ex2Ex3} & & & \\ Left & AGGAAGGGCTCACAAGTGG & 407 & +++ \\ Right & ATAGCACGGAACGCAGTAGG & & \\ \textbf{Sfpq Ex9Ex10} & & & \\ Left & GTGGTGGCATAGGTTATGAAGC & 936 & +++ \\ Right & CCATTTTCAAAAGCTTTCAAGG & & \\ \textbf{Sfpq Ex9Ex11} & & & \\ Left & GTGGTGGCATAGGTTATGAAGC & 172 & +++ \\ Right & CTCAAGTAAATAAGACTCCAAAATCAGC & & \\ \textbf{Prkar1aEx1Ex3} & & & \\ Left & ACAGCAGGGATCTCCTTGTCC & 418 & +++ \\ Right & CCTCTCAAAGTATTCCCGAAGG & & \\ \textbf{Prkar1aEx2Ex3} & & & \\ Left & GCTATCGCAGAGTGGTAGTGAGG & 279 & +++ \\ Right & CCTCTCAAAGTATTCCCGAAGG & & \\ \textbf{Schip1Ex1Ex3} & & & \\ Left & GGCTATGAGGGTGAAAAGTGC & 1050 & +++ \\ Right & GTATAGATTCCTGGGCCATCG & & \\ \textbf{Schip1Ex2Ex3} & & & \\ Left & CAGCATGAGTGGTAACCAAGG & 269 & +++ \\ Right & GTATAGATTCCTGGGCCATCG & & \\ \textbf{Tpm1Ex1Ex3} & & & \\ Left & TGAACAAAAGACCCCAGAGG & 565 & +++ \\ Right & CTGAAGTACAAGGCCATCAGC & & \\ \textbf{Tpm1Ex2Ex3} & & & \\ Left & AGTTTTATTGAGCGTTGAGACG & 318 & +++ \\ Right & CTGAAGTACAAGGCCATCAGC & & \\ \hline \end{tabular} } \caption[Form-specific RT-PCR primers for selected genes]{Form-specific RT-PCR primers for selected genes, designed with Primer3 \cite{Rozen2000}. \label{RT-PCR_primers}} \end{table} To assess the dependence of assembly quality on the depth of sequencing, we mapped and assembled subsets of our reads at the 60 hour time point. We partitioned the three Illumina lanes' worth of data (a total of ~140 million reads) into 64 subsets. We then processed a single subset with {\tt TopHat} and {\tt Cufflinks}, as above, and compared the resulting transfrags to the output of {\tt Cufflinks} on all three lanes using {\tt Cuffcompare}. We repeated the mapping and assembly with two subsets, four subsets, eight, and so on. Figure 4 in the main text shows the fraction of reference transcripts captured by {\tt Cufflinks} using all three lanes that are still captured when less data is available. For transcripts with low abundance ($<$15 FPKM), increased sequencing yields more full-length transcripts. However, for even moderately abundant transcripts ($\geq$15 FPKM), 75\% or more of the transcripts are recovered with only ~40 million reads, or a lane's worth of Illumina GA II sequencing. \section{Analysis of gene expression dynamics} Expression dynamics of genes are composed of absolute changes in overall transcript abundances, as well as relative changes in transcript abundances over time. Moreover, select groups of transcripts, for example transcripts grouped by TSS, may exhibit specific dynamics due to the underlying biological mechanisms that drive expression. In this section we describe statistical tests we developed in the multiple hypothesis testing framework for examining absolute and relative changes in arbitrary groups of transcripts. \subsection{Selection of high-confidence transcripts for expression tracking} We first restricted our analysis of expression dynamics over the time-course to a set of transcripts we believed were fully sequenced and correctly assembled, and we focused only on known and reliable novel isoforms of annotated genes. This set consisted of transcripts that either were present in the {\tt UCSC genome browser}, {\tt Ensembl}, or {\tt Vega} annotated transcriptomes, or were found in multiple C2C12 time point assemblies. We ignored transfrags classified as intronic pre-mRNA or polymerase run-on, as well as intergenic repeats to focus on coding genes and long non-coding RNAs. This high-confidence set contained a total of 17,416 transcripts, 13,692 of which were in {\tt UCSC known genes}, {\tt Ensembl} or {\tt VEGA} annotation and 3,724 of which are novel. Running {\tt Cufflinks}' abundance estimation algorithm on this high-confidence set of transcripts at each time point allowed us to scan for differentially expressed transcripts, differentially spliced pre-mRNAs, and genes with shifts in promoter preference. \subsection{Testing for changes in absolute expression} Between any two consecutive time points, we tested whether a transcript was significantly (after FDR control \cite{Benjamini1995}) up or down regulated with respect to the null hypothesis of no change, with variability in expression due solely to the uncertainties resulting from our abundance estimation procedure. This was done using the following testing procedure for absolute differential expression: We employed the standard method used in microarray-based expression analysis and proposed for RNA-Seq in \cite{Bullard2010}, which is to compute the logarithm of the ratio of intensities (in our case FPKM), and to then use the delta method to estimate the variance of the log odds. We describe this for testing differential expression of individual transcripts and also groups of transcripts (e.g. grouped by TSS). We recall that the MLE FPKM for a transcript $t$ in a locus $g$ is given by \begin{equation} \frac{10^9X_g\hat{\gamma}_t}{\tilde{l}(t)M}. \end{equation} Given two different experiments resulting in $X^a_g,M^a$ and $X^b_g,M^b$ respectively, as well as $\hat{\gamma}^a_t$ and $\hat{\gamma}^b_t$, we would like to test the significance of departures from unity of the ratio of MLE FPKMS, i.e. \begin{eqnarray} & & \left(\frac{10^9X^a_g\hat{\gamma}^a_t}{\tilde{l}(t)M^a}\right) / \left(\frac{10^9X^b_g\hat{\gamma}^b_t}{\tilde{l}(t)M^b}\right)\\ & = & \frac{X_g^a\hat{\gamma}^a_tM^b}{X_g^b \hat{\gamma}^b_tM^a}. \end{eqnarray} This can be turned into a test statistic that is approximately normal by taking the logarithm, and normalizing by the variance. We recall that using the delta method, if $X$ is a random variable then $Var[log(X)] \approx \frac{Var[X]}{E[X]^2}$. Therefore, our test statistic is \begin{equation} \frac{log(X^a_g)+log(\hat{\gamma}^a_t)+log(M^b)-log(X^b_g)-log(\hat{\gamma}^b_t)-log(M^a)} { \sqrt{\frac{\left( \Psi^{g,a}_{t,t}(1+X^a_{g}) + (\hat{\gamma}^a_t)^2\right)}{X^a_g \left(\hat{\gamma}^a_t \right)^2}+ \frac{\left( \Psi^{g,b}_{t,t}(1+X^b_{g}) + (\hat{\gamma}^b_t)^2\right)}{X^b_{g}\left( \hat{\gamma}^b_t\right)^2} } }. \end{equation} In order to test for differential expression of a group of transcripts, we replace the numerator and denominator above by those from Equations (\ref{eq:expectTSS}) and (\ref{eq:varTSS}). It is has been noted that the power of differential expression tests in RNA-Seq depend on the length of the transcripts being tested, because longer transcripts accumulate more reads \cite{Oshlack2009}. This means that the results we report are biased towards discovering longer differentially expressed transcripts and genes. \subsection{Quantifying transcriptional and post-transcriptional overloading} In order to infer the extent of differential promoter usage, we decided to measure changes in relative abundances of primary transcripts of single genes. Similarly, we investigated changes in relative abundances of transcripts grouped by TSS in order to infer differential splicing. These inferences required two ingredients: \begin{enumerate} \item A metric on probability distributions (derived from relative abundances). \item A test statistic for assessing significant changes in differential promoter usage and splicing as measured using the metric referred to above. \end{enumerate} In order to address the first requirement, namely a metric on probability distributions, we turned to an entropy-based metric. This was motivated by the methods in \cite{Ritchie2008} where tests for differences in relative isoform abundances were performed to distinguish cancer cells from normal cells. We extend this approach to be able to test for relative isoform abundance changes among multiple experiments in RNA-Seq. \begin{defn}[Entropy] The entropy of a discrete probability distribution $p=(p_1,\ldots,p_n)$ ($0 \leq p_i \leq 1$ and $\sum_{i=1}^n p_i = 1$) is \begin{equation} H(p) = -\sum_{i=1}^n p_i log p_i. \end{equation} If $p_i=0$ for some $i$ the value of $p_i log p_i$ is taken to be $0$. \end{defn} \begin{defn}[The Jensen-Shannon divergence] The Jensen-Shannon divergence of $m$ discrete probability distributions $p^1,\ldots,p^m$ is defined to be: \begin{equation} JS(p^1,\ldots,p^m) = H\left(\frac{p^1 + \cdots + p^m}{m}\right) - \frac{\sum_{j=1}^m H(p^j)}{m}. \end{equation} In other words, the Jensen-Shannon divergence of a set of probability distributions is the entropy of their average minus the average of their entropies. \end{defn} In the case where $m=2$, we remark that the Jensen-Shannon divergence can also be described in terms of the Kullback-Leibler divergence of two discrete probability distributions. If we denote Kullback-Leibler divergence by \begin{equation} D(p^1\|p^2) = \sum_i p^1_i log \frac{p^1_i}{p^2_i}, \end{equation} then \begin{equation} JS(p^1,p^2) = \frac{1}{2}D(p^1\|m)+\frac{1}{2}D(p^2\|m) \end{equation} where $m=\frac{1}{2}(p^1+p^2)$. In other words the Jensen-Shannon divergence is a symmetrized variant of the Kullback-Leibler divergence. The Jensen-Shannon divergence has a number of useful properties: for example it is symmetric and non-negative. However it is {\em not} a metric. The following theorem shows how to construct a metric from the Jensen-Shannon divergence: \begin{thm}[Fuglede and Tops{\o}e 2004 \cite{Fuglede2004}] The square root of the Jensen-Shannon divergence is a metric. \end{thm} The proof of this result is based on a harmonic analysis argument that is the basis for the remark in the main paper that ``transcript abundances move in time along a logarithmic spiral in Hilbert space''. We therefore call the square root of the Jensen-Shannon divergence the {\em Jensen-Shannon metric}. We employed this metric in order to quantify relative changes in expression in (groups of) transcripts. In order to test for significance, we introduce a bit of notation. Suppose that $S$ is a collection of transcripts (for example, they may share a common TSS). We define \begin{equation} \kappa_t = \frac{ \frac{\gamma_t}{\tilde{l}(t)}}{\sum_{u \in S} \frac{\gamma_u}{\tilde{l}(u)}} \end{equation} to be the proportion of transcript $t$ among all the transcripts in a group $S$. We let $Z=\sum_{u \in S} \hat{\gamma}_u / \tilde{l}(u)$ so that $\hat{\kappa}_t = \frac{\gamma_t}{\tilde{l}(t)Z}$. We therefore have that \begin{eqnarray} \label{eq:variancekappa1} Var[\hat{\kappa}_t] & = &\frac{Var[\hat{\gamma}_t]}{\tilde{l}(t)^2Z^2}, \\ Cov[\hat{\kappa}_t,\hat{\kappa}_u] & = & \frac{Cov[\hat{\gamma}_t,\hat{\gamma}_u]}{\tilde{l}(t)\tilde{l}(u)Z^2}.\label{eq:variancekappa2} \end{eqnarray} Our test statistic for divergent relative expression was the Jensen-Shannon metric. The test could be applied to multiple time points simultaneously, but we focused on pairwise tests (involving consecutive time points). Under the null hypothesis of no change in relative expression, the Jensen-Shannon metric should be zero. We tested for this using a one-sided $t$-test, based on an asymptotic derivation of the distribution of the Jensen-Shannon metric under the null hypothesis. This asymptotic distribution is normal by applying the delta method approximation, which involves computing the linear component of the Taylor expansion of the variance of $\sqrt{JS}$. In order to simplify notation, we let $f(p^1,\ldots,p^m)$ be the Jensen-Shannon metric for $m$ probability distributions $p^1,\ldots,p^m$. \begin{lemma} The partial derivatives of the Jensen-Shannon metric are give by \begin{equation} \frac{\partial f}{\partial p^k_l} = \frac{1}{2m\sqrt{f(p^1,\ldots,p^m)}} log \left( \frac{p^k_l}{\frac{1}{m} \sum_{j=1}^m p_l^j} \right). \end{equation} \end{lemma} Let $\hat{\kappa}^1,\ldots,\hat{\kappa}^m$ denote $m$ probability distributions on the set of transcripts $S$, for example the MLE for the transcript abundances in a time course. Then from the delta method we have that $\sqrt{JS(\hat{\kappa}^1,\ldots,\hat{\kappa}^m)}$ is approximately normally distributed with variance given by \begin{equation} Var[\sqrt{JS(\hat{\kappa}^1,\ldots,\hat{\kappa}^m)}] \approx (\bigtriangledown f)^T \Sigma (\bigtriangledown f), \end{equation} where $\Sigma$ is the variance-covariance matrix for the $\kappa^1,\ldots,\kappa^m$, i.e., it is a block diagonal matrix where the $i$th block is the variance-covariance matrix for the $\kappa^i_t$ given by Equations (\ref{eq:variancekappa1},\ref{eq:variancekappa2}). There are two biologically meaningful groupings of transcripts whose relative abundances are interesting to track in a time course. Transcripts that share a TSS are likely to be regulated by the same promoter, and therefore tracking the change in relative abundances of groups of transcripts sharing a TSS may reveal how transcriptional regulation is affecting expression over time. Similarly, transcripts that share a TSS and exhibit changes in expression relative to each other are likely to be affected by splicing or other post-transcriptional regulation. We therefore grouped transcripts by TSS and compared relative abundance changes within and between groups. We define ``overloading'' to be a significant change in relative abundances for a set of transcripts (as determined by the Jensen-Shannon metric, see below). The term is intended to generalize the simple notion of ``isoform switching'' that is well-defined in the case of two transcripts, to multiple transcripts. It is complementary to absolute differential changes in expression: the overall expression of a gene may remain constant while individual transcripts change drastically in relative abundances resulting in overloading. The term is borrowed from computer science, where in some statically-typed programming languages, a function may be used in multiple, specialized instances via ``method overloading''. We tested for overloaded genes by performing a one-sided $t$-test based on the asymptotics of the Jensen-Shannon metric under the null hypothesis of no change in relative abundnaces of isoforms (either grouped by shared TSS for for post-transcriptional overloading, or by comparison of groups of isoforms with shared TSS for transcriptional overloading). Type I errors were controlled with the Benjamini-Hochberg \cite{Benjamini1995} correction for multiple testing. A selection of overloaded genes are displayed in Supplemental Figs. \ref{splice_overloaded} and \ref{promoter_overloaded}. \newpage \begin{figure}[!ht] \includegraphics{pdfs/splice_overloaded} \caption[Selected genes with post-transcriptional overloading]{Selected genes with post-transcriptional overloading. Trajectories indicate the expression of individual isoforms in FPKM ($y$ axis) over time in hours ($x$ axis). Dashed isoforms have not been previously annotated. Isoform trajectories are colored by TSS, so isoforms with the same color presumably share a common promoter and are processed from the same primary transcript. It is evident that total gene expression may remain constant during isoforms switching (Eya3) while in other cases changes in relative abundance are accompanied by changes in absolute expression. The Jensen-Shannon metric generalizes the notion of ``isoform switching'' and is useful in cases with multiple isoforms (e.g. Ddx17). \label{splice_overloaded}} \end{figure} \begin{figure}[!ht] \includegraphics{pdfs/promoter_overloaded} \caption[Selected genes with transcriptional overloading]{Selected genes with transcriptional overloading. Trajectories indicate the expression of individual isoforms in FPKM (y axis) over time in hours (x axis). Dashed isoforms have not been previously annotated. Isoform trajectories are colored by TSS, so that isoforms with different colors presumably vary in their promoter and are processed from different primary transcripts. \label{promoter_overloaded}} \end{figure} We can visualize overloading and expression dynamics with a plot that superimposes transcriptional and post-transcriptional overloading and gene-level expression over the time course. We refer to these as ``Minard plots'', after Charles Joseph Minard's famous depiction of the advance and retreat of Napoleon's armies in the campaign against Russia in 1812 \cite{Tufte2001}. Minard made use of multiple visual cues to display numerous varying quantities in one diagram. An example of a Minard plot for the gene Myc is shown in Figure 3c, and others are given in Appendix B. The dotted line indicates gene-level FPKM, with measured FPKM indicated by black circles. Grey circles indicate the arithmetic mean of gene-level FPKM between consecutive measured time points, interpolating FPKM at intermediate time points. The total gene expression overloading is visualized as a swatch centered around the interpolated expression curve. The width of the swatch encodes the amount of expression overloading between successive time points. The color of the swatch indicates the relative contributions of transcriptional and post-transcriptional expression overloading. Some genes, such as tropomyosin I and II, feature a single primary transcript, and so all overloading is by definition post-transcriptional. Others, like Fhl3, have two primary transcripts, but only a single isoform arises from each, so all overloading is transcriptional. Genes with multiple primary transcripts, one or more of which are alternatively spliced, such as Myc or RTN4, display both forms. \section{The {\tt Cufflinks} software} The transcript assembly and abundance estimation algorithms are implemented in freely available open source software called {\tt Cufflinks} that is available from \newline {\tt http://cufflinks.cbcb.umd.edu/} \newline Furthermore methods for comparing annotations across time points, and for performing the differential expression, promoter usage and splicing tests are implemented in the companion programs {\tt Cuffdiff} and {\tt Cuffcompare}. Instructions on how to install and run the software are provided on the website. The input to {\tt Cufflinks} consists of fragment alignments in the SAM format \cite{Li2009a}. These may consist of either single fragment alignments, or alignments of mate-pairs (paired-end reads produce better assemblies and more accurate abundance estimates than single reads). {\tt Cufflinks} will assemble the transcripts using the algorithm in Section \ref{sec:assembly}, and transcript abundances will be estimated using the model in Section \ref{sec:abundances}. Transcript coordinates and abundances are reported in the Gene Transfer Format (GTF). User supplied annotations may be provided to {\tt Cufflinks} (optional input) in which case they form the basis for the transcript abundance estimation. Some of the algorithms here rely on sufficient depth of sequencing in order to produce reliable output. {\tt Cufflinks} determines that depth is sufficient where possible to check that required assumptions hold. For example, in loci where one or more isoforms have extremely low relative expression, the observed Fisher Information Matrix may not be positive definite after rounding errors. In this case, it is not possible to produce a reliable variance-covariance matrix for isoform fragment abundances. {\tt Cufflinks} will report a numerical exception in this and similar cases. When an exception is reported, the confidence intervals for the isoforms' abundances will be set from 0 FPKM to the FPKM for the whole gene. If such an exception is generated during a {\tt Cuffdiff} run, no differential analysis involving the problematic sample will be performed on that locus. \newpage \section{Appendix A: Lemmas and Theorems} The following elementary/classical results are required for our methods and we include them so that the supplement is self-contained. \begin{lemma} \label{lemma:varsum} Let $X_1,\ldots,X_n$ be random variables and $a_1,\ldots,a_n$ real numbers with $Y=\sum_{i=1}^na_iX_i$. Then \begin{equation} Var[Y] = \sum_{i=1}^n a_i^2Var[X_i]+2\sum_{i I_{t_2}(r)$ due to the presence of the extra internal exon in $t_1$. } \end{figure} We are now ready to write down the likelihood equation for the model. We will write $L(\rho|R)$ for the likelihood of a set of fragment alignments $R$ constructed from $M$ reads. The notation $Pr(trans. = t)$ means ``the probability that a fragment selected at random originates from transcript $t$''. \begin{eqnarray} & & L(\rho|R) = \prod_{r \in R} Pr(rd.\ aln. =r)\\ & = & \prod_{r \in R} \sum_{t \in T} Pr(rd.\ aln. =r|trans. =t)Pr(trans. =t)\\ & = & \prod_{r \in R} \sum_{t \in T} \frac{\rho_t\tilde{l}(t)}{\sum_{u \in T}\rho_u\tilde{l}(u)} Pr(rd.\ aln. = r|trans. =t)\\ & = & \prod_{r \in R} \sum_{t \in T}\frac{\rho_t\tilde{l}(t)}{\sum_{u \in T}\rho_u\tilde{l}(u)} \left(\frac{F(I_t(r))}{l(t)-I_t(r)+1}\right) \\ \label{eq:likerho} & = & \prod_{r \in R} \sum_{t \in T} \alpha_t\left(\frac{F(I_t(r))}{l(t)-I_t(r)+1}\right), \end{eqnarray} where \begin{equation} \alpha_t = \frac{\rho_t\tilde{l}(t)}{\sum_{u \in T}\rho_u\tilde{l}(u)}. \end{equation} Observe that $\alpha_t$ is exactly the probability that a fragment selected at random comes from transcript $t$, and we have that $\sum_{t \in T}\alpha_t = 1$. In light of the probabilistic meaning of the $\alpha=\{\alpha_t\}_{t \in T}$, we refer to them as {\em fragment abundances}. It is evident that the likelihood function is that of a linear model and that the likelihood function is concave (Proposition \ref{prop:linearmodel}) so a numerical method can be used to find the $\alpha$. It is then possible, in principle, to recover the $\rho$ using Lemma \ref{lemma:readstoprobs}. However the number of parameters is in the tens of thousands, and in practice this form of the likelihood function is unwieldy. Instead, we re-write the likelihood utilizing the fact that transcripts in distinct loci do not overlap in genomic location. We first calculate the probability that a fragment originates from a transcript within a given locus $g$: \begin{eqnarray} \beta_g & := & \sum_{t \in g} \alpha_t\\ & = & \frac{\sum_{t \in g} \rho_t \tilde{l}(t)}{\sum_{u \in T} \rho_u \tilde{l}(u)}\\ & = & \frac{\sum_{t \in g} \sigma_g\tau_t \tilde{l}(t)}{\sum_{h \in G} \sum_{u \in h} \sigma_h\tau_u \tilde{l}(u)}\\ & = & \frac{\sigma_g\sum_{t \in g} \tau_t \tilde{l}(t)}{\sum_{h \in G} \sigma_h \sum_{u \in h} \tau_u \tilde{l}(u)}\\ & = & \frac{\sigma_g \tilde{l}(g)}{\sum_{h \in G} \sigma_h \tilde{l}(h)}. \end{eqnarray} Recall that $\sigma_g = \sum_{t \in g} \rho_t$ and that $\tau_t = \frac{\rho_t}{\sigma_g}$ for a locus $g$. Similarly, the probability of selecting a fragment from a single transcript $t$ conditioned on selecting a transcript from the locus $g$ in which $t$ is contained is \begin{equation} \label{eq:gammatau} \gamma_t = \frac{\tau_t \tilde{l}(t)}{\sum_{u \in g} \tau_u \tilde{l}(u)}. \end{equation} The parameters $\gamma=\{\gamma_t\}_{t \in g}$ are conditional fragment abundances, and they are the parameters we estimate from the data in the next Section. Note that for a transcript $t \in g$, $\alpha_t = \beta_g \cdot \gamma_t$ and it is easy to convert between fragment abundances and transcript abundances using Lemma \ref{lemma:readstoprobs}. We denote the fragment counts by $X$; specifically, we denote the number of alignments in locus $g$ by $X_g$. Note that $\sum_{g \in G} X_g = M$. We also use the notation $g_r$ to denote the (unique) locus from which a read alignment $r$ can be obtained. The likelihood function is given by \begin{eqnarray} & & L(\rho|R) = \prod_{r \in R} Pr(rd.\ aln. =r)\\ & = & \prod_{r \in R} \sum_{g \in G} Pr(rd.\ aln. =r|locus=g)Pr(locus=g)\\ & = & \prod_{r \in R} \frac{\sigma_{g_{r}}\tilde{l}(g_{r})}{\sum_{g \in G} \sigma_g\tilde{l}(g)} Pr(rd.\ aln. =r|locus=g_r)\\ & = & \prod_{r \in R} \beta_{g_r} \sum_{t \in g_r}Pr(rd.\ aln. =r|locus=g_{r},trans. = t)Pr(trans. =t|locus=g_r)\\ & = & \prod_{r \in R} \beta_{g_r} \sum_{t \in g_r} \frac{\tau_t\tilde{l}(t)}{\sum_{u \in g_r}\tau_u \tilde{l}(u)} Pr(rd.\ aln. =r|locus=g_{r},trans. = t)\\ & = & \left( \prod_{r \in R} \beta_{g_r} \right) \left( \prod_{r \in R} \sum_{t \in g} \gamma_t \cdot Pr(rd.\ aln. =r|locus=g_r,trans. =t) \right)\\ & = & \left( \prod_{r \in R} \beta_{g_r} \right) \left( \prod_{r \in R} \sum_{t \in g} \gamma_t\cdot \frac{F(I_t(r))}{l(t)-I_t(r)+1}\right)\\ & = & \left( \prod_{g \in G} \beta_g^{X_{g}} \right) \left( \prod_{g \in G} \left( \prod_{r \in R:r \in g} \sum_{t \in g} \gamma_t \cdot \frac{F(I_t(r))}{l(t)-I_t(r)+1}\right) \right). \label{eq:likebest} \end{eqnarray} Explicitly, in terms of the parameters $\rho$, Equation (\ref{eq:likebest}) simplifies to Equation (\ref{eq:likerho}) but we will see in the next section how the maximum likelihood estimates $\hat{\rho}$ are most conveniently obtained by first finding $\hat{\beta}$ and $\hat{\gamma}$ using Equation (\ref{eq:likebest}). We note that it is biologically meaningful to include prior distributions on $\sigma$ and $\tau$ that reflect the inherent stochasticity and resulting variability of transcription in a cell. This will be an interesting direction for further research as more RNA-Seq data (with replicates) becomes available allowing for the determination of biologically meaningful priors. In particular, it seems plausible that specific isoform abundances may vary considerably and randomly within cells from a single tissue and that this may be important in studying differential splicing. We mention to this to clarify that in this paper, the confidence intervals we report represent the variability in the maximum likelihood estimates $\hat{\sigma}_j$ and $\hat{\tau}^k_j$, and are not the variances of prior distributions. \subsubsection{Estimation of parameters} We begin with a discussion of identifiability of our model. Identifiability refers to the injectivity of the model, i.e., \begin{equation} \mbox{if } Pr_{\rho_1}(r) = Pr_{\rho_2}(r) \ \forall r \in R, \ \mbox{ then } \rho_1 = \rho_2. \end{equation} The identifiability of RNA-Seq models was discussed in \cite{Hiller2009}, where a standard analysis for linear models is applied to RNA-Seq (for another related biological example, see \cite{Pe'er2004} which discusses identifiability of haplotypes in mixed populations from genotype data). The results in these papers apply to our model. For completeness we review the conditions for identifiability. Recall that $A_{R,T}$ is the fragment-transcript matrix that specifies which transcripts each fragment is compatible with. The following theorem provides a simple characterization of identifiability: \begin{thm} The RNA-Seq model is identifiable iff $A_{R,T}$ is full rank. \end{thm} Therefore, for a given set of transcripts and a read set $R$, we can test whether the model is identifiable using elementary linear algebra. For the results in this paper, when estimating expression with given annotations, when the model was not identifiable we picked {\em a} maximum likelihood solution, although in principle it is possible to bound the total expression of the locus and/or report identifiability problems to the user. Returning to the likelihood function \begin{equation} \left( \prod_{g \in G} \beta_g^{X_{g}} \right) \left( \prod_{g \in G} \left( \prod_{r \in R:r \in g} \sum_{t \in g} \gamma_t \cdot \frac{F(I_t(r))}{l(t)-I_t(r)+1}\right) \right), \end{equation} we note that both the $\beta$ and $\gamma$ parameters depend on the $\rho$ parameters. However, we will see that if we maximize the $\beta$ separately from the $\gamma$, and also each of the sets $\{\gamma_t:t \in g\}$ separately, then it is always possible to find $\rho$ that match both the maximal $\beta$ and $\gamma$. In other words, the problem of finding $\hat{\rho}$ is equivalent to finding $\hat{\beta}$ that maximizes $ \prod_{g \in G} \beta_g^{X_g}$ and separately, for each locus $g$, the $\hat{\gamma}_t$ that maximize \begin{equation} \prod_{r \in R:r \in g} \sum_{t \in g} \gamma_t \frac{F(I_t(r))}{l(t)-I_t(r)+1}. \end{equation} We begin by solving for the $\hat{\beta}$ and $\hat{\gamma}$ and the variances of the maximum likelihood estimates, and then explain how these are used to report expression levels. We can solve for the $\hat{\gamma}$ using the fact that the model is linear. That is, the probability of each individual read is linear in the read abundances $\gamma_t$. It is a standard result in statistics (see, e.g., Proposition 1.4 in \cite{ASCB2005}) that the log likelihood function of a linear model is concave. Thus, a hill climbing method can be used to find the $\hat{\gamma}$. We used the EM algorithm for this purpose. Rather than using the direct ML estimates, we obtained a regularized estimate by importance sampling from the posterior distribution with a proposal distribution we explain below. The samples were also used to estimate variances for our estimates. It follows from standard MLE asymptotic theory that the $\hat{\gamma}$ are asymptotically multivariate normal with variance-covariance matrix given by the inverse of the observed Fisher information matrix. This matrix is defined as follows: \begin{defn}[Observed Fisher information matrix] The observed Fisher information matrix is the negative of the Hessian of the log likelihood function evaluated at the maximum likelihood estimate. That is, for parameters $\Theta=(\theta_1,\ldots,\theta_n)$, the $n \times n$ matrix is \begin{eqnarray} \mathcal{F}_{k,l}(\hat{\Theta}) & = & - \frac{\partial^2 log(\mathcal{L}(\Theta|R))}{\partial \theta_k \theta_l} |_{\theta=\hat{\theta}}. \end{eqnarray} \end{defn} In our case, considering a single locus $g$, the parameters are $\Theta = (\gamma_{t_1},\ldots,\gamma_{t_{|g|}})$, and as expected from Proposition \ref{prop:linearmodel}: \begin{eqnarray} \label{eq:Fisher} \mathcal{F}_{t_k,t_l}(\hat{\Theta}) & = & \sum_{r \in R:r \in g} \left[ \frac{1}{\left( \sum_{h \in g} \hat{\gamma}_h \frac{F(I_h(r))}{l(h) - I_h(r)+1} \right)^2} \frac{F(I_{t_k}(r)) F(I_{t_l}(r)) }{(l(t_k)-I_{t_k}+1)(l(t_l)-I_{t_l}+1)} \right]. \end{eqnarray} Because some of the transcript abundances may be close to zero, we adopted the Bayesian approach of \cite{Jiang2009} and instead sampled from the joint posterior distribution of $\Theta$ using the proposal distribution consisting of the multivariate normal with mean given by the MLE, and variance-covariance matrix given by the inverse of (\ref{eq:Fisher}). If the Observed Fisher Information Matrix is singular then the user is warned and the confidence intervals of all transcripts are set to $[0,1]$ (meaning that there is no information about relative abundances). The method used for sampling was importance sampling. The samples were used to obtain a maximum-a-posterior estimate for $\hat{\gamma}_t$ for each $t$ and for the variance-covariance matrix which we denote by $\Psi^g$ (where $g \in G$ denotes the locus). Note that $\Psi^g$ is a $|g| \times |g|$ matrix. The covariance between $\hat{\gamma}_{t_k}$ and $\hat{\gamma}_{t_l}$ for $t_k,t_l \in g$ is given by $\Psi^g_{t_k,t_l}$. Turning to the maximum likelihood estimates $\hat{\beta}$, we use the fact that the model is the log-linear. Therefore, \begin{equation} \label{eq:sigmahat} \hat{\beta_g} = \frac{X_{g}}{M}. \end{equation} Viewed as a random variable, the counts $X_{g}$ are approximately Poisson and therefore the variance of the MLE $\hat{\beta}_g$ is approximately $X_{g}$. We note that for the tests in this paper we directly used the total counts $M$ and the proportional counts $X_g$, however it is easy to incorporate recent suggestions for total count normalization, such as \cite{Bullard2010} into {\tt Cufflinks}. The favored units for reporting expression in RNA-Seq studies to date is not using the transcript abundances directly, but rather using a measure abbreviated as FPKM, which means ``expected number of fragments per kilobase of transcript sequence per millions base pairs sequenced''. These units are equivalent to measuring transcript abundances (multiplied by a scalar). The computational advantage of FPKM, is that the normalization constants conveniently simplify some of the formulas for the variances of transcript abundance estimates. For example, the abundance of a transcript $t \in g$ in FPKM units is \begin{equation} \label{eq:FPKM1} \frac{10^6 \cdot 10^3 \cdot \alpha_t}{\tilde{l}(t)} = \frac{10^6 \cdot 10^3 \cdot \beta_g \cdot \gamma_t}{\tilde{l}(t)}. \end{equation} Equation (\ref{eq:FPKM1}) makes it clear that although the abundance of each transcript $t \in g$ in FPKM units is proportional to the transcript abundance $\rho_t$ it is given in terms of the read abundances $\beta_g$ and $\gamma_t$ which are the parameters estimated from the likelihood function. The maximum likelihood estimates of $\beta_g$ and $\gamma_t$ are random variables, and we denote their scaled product (in FPKM units) by $A_t$. That is $Pr(A_t = a)$ is the probability that for a random set of fragment alignments from a sequencing experiment, the maximum likelihood estimate of the transcript abundance for $t$ in FPKM units is $a$. Using the fact that the expectation of a product of independent random variables is the product of the expectations, for a transcript $t \in g$ we have \begin{equation} E[A_t] = \frac{10^9X_{g}\hat{\gamma}_t}{\tilde{l}(t)M}. \end{equation} Given the variance estimates for the $\hat{\gamma}_t$ we turn to the problem of estimating $Var[A_t]$ for a transcript $t \in g$. We use Lemma \ref{lemma:varproduct} to obtain \begin{eqnarray} Var[A_t]& = & \left(\frac{10^9}{\tilde{l}(t)M}\right)^2 \left( \Psi^g_{t,t}X_{g} + \Psi^g_{t,t}X^2_{g} + (\hat{\gamma}_t)^2 X_{g} \right)\\ & = & X_{g}\left(\frac{10^9}{\tilde{l}(t)M)}\right)^2 \left( \Psi^g_{t,t}(1+X_{g}) + (\hat{\gamma}_t)^2\right). \end{eqnarray} This variance calculation can be used to estimate a confidence interval by utilizing the fact \cite{Aroian1978} that when the expectation divided by the standard deviation of at least one of two random variables is large, their product is approximately normal. Next we turn to the problem of estimating expression levels (and variances of these estimates) for groups of transcripts. Let $S \subset T$ be a group of transcripts located in a single locus $g$, e.g. a collection of transcripts sharing a common TSS. The analogy of Equation (\ref{eq:FPKM1}) for the FPKM of the group is \begin{eqnarray} \label{eq:grouphard} & & \frac{10^6 \cdot 10^3 \cdot \beta_g \cdot \left( \sum_{t \in S} \gamma_t\right)}{\tilde{l}(S)}\\ & = & 10^6 \cdot 10^3 \cdot \beta_g \cdot \sum_{t \in S} \frac{\gamma_t}{\tilde{l}(t)}. \label{eq:groupeasy} \end{eqnarray} As before, we denote by $B_S$ the random variables for which $Pr(B_S = b)$ is the probability that for a random set of fragment alignments from a sequencing experiment, the maximum likelihood estimate of the transcript abundance for all the transcripts in $S$ in FPKM units is $b$. We note that the $B_S$ are products and sums of random variables (Equation (\ref{eq:groupeasy})). This makes Equation (\ref{eq:groupeasy}) more useful than the equivalent unsimplified Equation (\ref{eq:grouphard}), especially because $\tilde{l}(S)$ is, in general, a ratio of two random variables. We again use the fact that the expectation of independent random variables is the product of the expectation, in addition to the fact that expectation is a linear operator to conclude that for a group of transcripts $S$, \begin{equation} \label{eq:expectTSS} E[B_S] = \frac{10^9 \cdot X_g \cdot \sum_{t \in S} \frac{\hat{\gamma}_t}{\tilde{l}(t)}}{M}. \end{equation} In order to compute the variance of $B_S$, we first note that \begin{equation} Var\left[\sum_{t \in S} \frac{\hat{\gamma}_t}{\tilde{l}(t)}\right] = \sum_{t \in S}\frac{1}{\tilde{l}(t)^2}\Psi^g_{t,t} + \sum_{t,u \in S} \frac{1}{\tilde{l}(t)\tilde{l}(u)} \Psi^g_{t,u}. \end{equation} Therefore, \begin{eqnarray} & & \quad Var[B_S] \quad = \quad \nonumber \\ & & X_g\left(\frac{10^9}{M}\right)^2\left( \left(1+X_g\right) \left(\sum_{t \in S}\frac{1}{\tilde{l}(t)^2}\Psi^g_{t,t} + \sum_{t,u \in S} \frac{1}{\tilde{l}(t)\tilde{l}(u)} \Psi^g_{t,u}\right) + \left( \sum_{t \in S} \frac{\hat{\gamma}_t}{\tilde{l}(t)} \right)^2 \right). \label{eq:varTSS} \end{eqnarray} We can again estimate a confidence interval by utilizing the fact that $B_S$ is approximately normal \cite{Aroian1978}. \subsection{Transcript assembly} \label{sec:assembly} \subsubsection{Overview} {\tt Cufflinks} takes as input alignments of RNA-Seq fragments to a reference genome and, in the absence of an (optional) user provided annotation, initially assembles transcripts from the alignments. Transcripts in each of the loci are assembled independently. The assembly algorithm is designed to aim for the following: \begin{enumerate} \item Every fragment is consistent with at least one assembled transcript. \item Every transcript is tiled by reads. \item The number of transcripts is the smallest required to satisfy requirement (1). \item The resulting RNA-Seq models (in the sense of Section \ref{sec:abundances}) are identifiable. \end{enumerate} In other words, we seek an assembly that parsimoniously “explains” the fragments from the RNA-Seq experiment; every fragment in the experiment (except those filtered out during a preliminary error-control step) should have come from a {\tt Cufflinks} transcript, and {\tt Cufflinks} should produce as few transcripts as possible with that property. Thus, {\tt Cufflinks} seeks to optimize the criterion suggested in \cite{Xing2004}, however, unlike the method in that paper, {\tt Cufflinks} leverages Dilworth's Theorem \cite{Dilworth1950} to solve the problem by reducing it to a matching problem via the equivalence of Dilworth's and K\"{o}nig's theorems (Theorem \ref{thm:dilko} in Appendix A). Our approach to isoform reconstruction is inspired by a similar approach used for haplotype reconstruction from HIV quasi-species \cite{Eriksson2008}. \subsection{A partial order on fragment alignments} The {\tt Cufflinks} program loads a set of alignments in SAM format sorted by reference position and assembles non-overlapping sets of alignments independently. After filtering out any erroneous spliced alignments or reads from incompletely spliced RNAs, {\tt Cufflinks} constructs a partial order (Definition \ref{def:po}), or equivalently a directed acyclic graph (DAG), with one node for each fragment that in turn consists of an aligned pair of mated reads. First, we note that fragment alignments are of two types: those where reads align in their entirety to the genome, and reads which have a split alignment (due to an implied intron). In the case of single reads, the partial order can be simply constructed by checking the reads for {\em compatibility}. Two reads are {\em compatible} if their overlap contains the exact same implied introns (or none). If two reads are not compatible they are {\em incompatible}. The reads can be partially ordered by defining, for two reads $x,y$, that $x\leq y$ if the starting coordinate of $x$ is at or before the starting coordinate of $y$, and if they are compatible. In the case of paired-end RNA-Seq the situation is more complicated because the unknown sequence between mate pairs. To understand this, we first note that pairs of fragments can still be determined to be incompatible if they cannot have originated from the same transcript. As with single reads, this happens when there is disagreement on implied introns in the overlap. However compatibility is more subtle. We would like to define a pair of fragments $x,y$ to be compatible if they do not overlap, or if every implied intron in one fragment overlaps an identical implied intron in the other fragment. However it is important to note that it may be impossible to determine the compatibility (as defined above) or incompatibility of a pair of fragments. For example, an unknown region internal to a fragment may overlap two different introns (that are incompatible with each other). The fragment may be compatible with one of the introns (and the fragment from which it originates) in which case it is incompatible with the other. Since the opposite situation is also feasible, compatibility (or incompatibility) cannot be assigned. Fragments for which the compatibility/incompatibility cannot be determined with respect to every other fragment are called {\em uncertain}. Finally, two fragments are called {\em nested} if one is contained within the other. \begin{figure}[h] \includegraphics[scale=0.5]{pdfs/compatibility.pdf} \caption[Compatibility and incompatibility of fragments]{Compatibility and incompatibility of fragments. End-reads are solid lines, unknown sequences within fragments are shown by dotted lines and implied introns are dashed lines. The reads in (a) are compatible, whereas the fragments in (b) are incompatible. The fragments in (c) are nested. Fragment $x_4$ in (d) is uncertain, because $y_4$ and $y_5$ are incompatible with each other.} \end{figure} Before constructing a partial order, fragments are extended to include their nested fragments and uncertain fragments are discarded. These discarded fragments are used in the abundance estimation. In theory, this may result in suboptimal (i.e. non-minimal assemblies) but we determined empirically that after assembly uncertain fragments are almost always consistent with one of the transcripts. When they are not, there was no completely tiled transcript that contained them. Thus, we employ a heuristic that substantially speeds up the program, and that works in practice. A partial order $P$ is then constructed from the remaining fragments by declaring that $x \leq y$ whenever the fragment corresponding to $x$ begins at, or before, the location of the fragment corresponding to $y$ and $x$ and $y$ are compatible. In what follows we identify $P$ with its Hasse diagram (or covering relation), equivalently a directed acyclic graph (DAG) that is the transitive reduction. \begin{prop} $P$ is a partial order. \end{prop} {\bf Proof}: The fragments can be totally ordered according to the locations where they begin. It therefore suffices to check that if $x,y,z$ are fragments with $x$ compatible with $y$ and $y$ compatible with $z$ then $x$ is compatible with $z$. Since $x$ is not uncertain, it must be either compatible or incompatible with $z$. The latter case can occur only if $x$ and/or $z$ contain implied introns that overlap and are not identical. Since $y$ is not nested within $z$ and $x$ is not nested within $y$, it must be that $y$ contains an implied intron that is not identical with an implied intron in either $x$ or $z$. Therefore $y$ cannot be compatible with both $x$ and $z$. \qed \subsection{Assembling a parsimonious set of transcripts} In order to assemble a set of transcripts, {\tt Cufflinks} finds a (minimum) partition of $P$ into chains (see Definition \ref{def:po}). A partition of $P$ into chains yields an assembly because every chain is a totally ordered set of compatible fragments $x_1,\ldots,x_l$ and therefore there is a set of overlapping fragments that connects them. By Dilworth's theorem (Theorem \ref{thm:Dilworth}), the problem of finding a minimum partition $P$ into chains is equivalent to finding a maximum antichain in $P$ (an antichain is a set of mutually incompatible fragments). Subsequently, by Theorem \ref{thm:dilko}, the problem of finding a maximum antichain in $P$ can be reduced to finding a maximum matching in a certain bipartite graph that emerges naturally in deducing Dilworth's theorem from K\"{o}nig's theorem \ref{thm:konig}. We call the key bipartite graph the ``reachability'' graph. It is the transitive closure of the DAG, i.e. it is the graph where each fragment $x$ has nodes $L_x$ and $R_x$ in the left and right partitions of the reachability graph respectively, and where there is an edge between $L_x$ and $R_y$ when $x \leq y$ in $P$. The maximum matching problem is a classic problem that admits a polynomial time algorithm. The Hopcroft-Karp algorithm \cite{Hopcroft1973} has a run time of $O(\sqrt{V}E)$ where in our case $V$ is the number of fragments and $E$ depends on the extent of overlap, but is bounded by a constant times the coverage depth. We note that our parsimony approach to assembly therefore has a better complexity than the $O(V^3)$ PASA algorithm \cite{Haas2003}. The minimum cardinality chain decomposition computed using the approach above may not be unique. For example, a locus may contain two putative distinct initial exons (defined by overlapping incompatible fragments), and one of two distinct terminal and a constitutive exon in between that is longer than any read or insert in the RNA-Seq experiment. In such a case, the parsimonious assembly will consist of two transcripts, but there are four possible solutions that are all minimal. In order to ``phase'' distant exons, we leverage the fact that abundance inhomogeneities can link distant exons via their coverage. We therefore weight the edges of the bipartite reachability graph based on the percent-spliced-in metric introduced by Wang \emph{et al.} in \cite{Wang2008}. In our setting, the percent-spliced-in $\psi_x$ for an alignment $x$ is computed by counting the alignments overlapping $x$ in the genome that are compatible with $x$ and dividing by the total number of alignments that overlap $x$, and normalizing for the length of the $x$. The cost $C(y,z)$ assigned to an edge between alignments $y$ and $z$ reflects the belief that they originate from different transcripts: \begin{equation} C(y,z) = -\log(1 - |\psi_y - \psi_z|). \label{eq:match_cost} \end{equation} Rather than using the Hopcroft-Karp algorithm, a modified version of the {\tt LEMON} \cite{LEMON} and {\tt Boost} \cite{Boost} graph libraries are used to compute a {\em min-cost} maximum cardinality matching on the bipartite compatibility graph. Even with the presence of weighted edges, our algorithm is very fast. The best known algorithm for weighted matching is $O(V^2logV+VE)$. Because we isolated total RNA, we expected that a small fraction of our reads would come from the intronic regions of incompletely processed primary transcripts. Moreover, transcribed repetitive elements and low-complexity sequence result in ``shadow'' transfrags that we wished to discard as artifacts. Thus, {\tt Cufflinks} heuristically identifies artifact transfrags and suppresses them in its output. We also filter extremely low-abundance minor isoforms of alternatively spliced genes, using the model described in Section \ref {abundances} as a means of reducing the variance of estimates for more abundant transcripts. A transcript $x$ meeting any of the following criteria is suppressed: \begin{enumerate} \item $x$ aligns to the genome entirely within an intronic region of the alignment for a transcript $y$, and the abundance of $x$ is less than 15\% of $y$'s abundance. \item $x$ is supported by only a single fragment alignment to the genome. \item More than 75\% of the fragment alignments supporting $x$, are mappable to multiple genomic loci. \item $x$ is an isoform of an alternatively spliced gene, and has an estimated abundance less than 5\% of the major isoform of the gene. \end{enumerate} Prior to transcript assembly, {\tt Cufflinks} also filters out some of the alignments for fragments that are likely to originate from incompletely spliced nuclear RNA, as these can reduce the accuracy abundance estimates for fully spliced mRNAs. These filters and the output filters above are detailed in the source file \verb!filters.cpp! of the source code for {\tt Cufflinks}. In the overview of this Section, we mentioned that our assembly algorithm has the property that the resulting models are identifiable. This is a convenient property that emerges naturally from the parsimony criterion for a ``minimal explanation'' of the fragment alignments. Formally, it is a corollary of Dilworth's theorem: \begin{prop} The assembly produced by the {\tt Cufflinks} algorithm always results in an identifiable RNA-Seq model. \end{prop} {\bf Proof}: By Dilworth's theorem, the minimum chain decomposition (assembly) we obtain has the same size as the maximum antichain in the partially ordered set we construct from the reads. An antichain consists of reads that are pairwise incompatible, and therefore those reads must form a permutation sub-matrix in the fragment-transcript matrix $A_{R,T}$ with columns corresponding to the transcripts in a locus, and with rows corresponding to the fragments in the antichain. The matrix $A_{R,T}$ therefore contains permutation sub-matrices that together span all the columns, and the matrix is full-rank. \subsection{Assessment of assembly quality} To compare {\tt Cufflinks} transfrags against annotated transcriptomes, and also to find transfrags common to multiple assemblies, we developed a tool called {\tt Cuffcompare} that builds structural equivalence classes of transcripts. We ran {\tt Cuffcompare} on each the assembly from each time point against the combined annotated transcriptomes of the {UCSC known genes}, {\tt Ensembl}, and {\tt Vega}. Because of the stochastic nature of sequencing, \emph{ab initio} assembly of the same transcript in two different samples may result in transfrags of slightly different lengths. A {\tt Cufflinks} transfrag was considered a complete match when there was a transcript with an identical chain of introns in the combined annotation. When no complete match is found between a {\tt Cufflinks} transfrag and the transcripts in the combined annotation, {\tt Cuffcompare} determines and reports if another substantial relationship exists with any of the annotation transcripts that can be found in or around the same genomic locus. For example, when all the introns of a transfrag match perfectly a part of the intron chain (sub-chain) of an annotation transcript, a ``containment'' relationship is reported. For single-exon transfrags, containment is also reported when the exon appears fully overlapped by any of the exons of an annotation transcript. If there is no perfect match for the intron chain of a transfrag but only some exons overlap and there is at least one intron-exon junction match, {\tt Cuffcompare} classifies the transfrag as a putative ``novel'' isoform of an annotated gene. When a transfrag is unspliced (single-exon) and it overlaps the intronic genomic space of a reference annotation transcript, the transfrag is classified as potential pre-mRNA fragment. Finally, when no other relationship is found between a {\tt Cufflinks} transfrag and an annotation transcript, {\tt Cuffcompare} can check the repeat content of the transfrag's genomic region (assuming the soft-masked genomic sequence was also provided) and it would classify the transfrag as ``repeat'' if most of its bases are found to be repeat-masked. When provided multiple time point assemblies, {\tt Cuffcompare} matches transcripts \subsubsection{Testing for changes in absolute expression} Between any two consecutive time points, we tested whether a transcript was significantly (after FDR control \cite{Benjamini1995}) up or down regulated with respect to the null hypothesis of no change, with variability in expression due solely to the uncertainties resulting from our abundance estimation procedure. This was done using the following testing procedure for absolute differential expression: We employed the standard method used in microarray-based expression analysis and proposed for RNA-Seq in \cite{Bullard2010}, which is to compute the logarithm of the ratio of intensities (in our case FPKM), and to then use the delta method to estimate the variance of the log odds. We describe this for testing differential expression of individual transcripts and also groups of transcripts (e.g. grouped by TSS). We recall that the MLE FPKM for a transcript $t$ in a locus $g$ is given by \begin{equation} \frac{10^9X_g\hat{\gamma}_t}{\tilde{l}(t)M}. \end{equation} Given two different experiments resulting in $X^a_g,M^a$ and $X^b_g,M^b$ respectively, as well as $\hat{\gamma}^a_t$ and $\hat{\gamma}^b_t$, we would like to test the significance of departures from unity of the ratio of MLE FPKMS, i.e. \begin{eqnarray} & & \left(\frac{10^9X^a_g\hat{\gamma}^a_t}{\tilde{l}(t)M^a}\right) / \left(\frac{10^9X^b_g\hat{\gamma}^b_t}{\tilde{l}(t)M^b}\right)\\ & = & \frac{X_g^a\hat{\gamma}^a_tM^b}{X_g^b \hat{\gamma}^b_tM^a}. \end{eqnarray} This can be turned into a test statistic that is approximately normal by taking the logarithm, and normalizing by the variance. We recall that using the delta method, if $X$ is a random variable then $Var[log(X)] \approx \frac{Var[X]}{E[X]^2}$. Therefore, our test statistic is \begin{equation} \frac{log(X^a_g)+log(\hat{\gamma}^a_t)+log(M^b)-log(X^b_g)-log(\hat{\gamma}^b_t)-log(M^a)} { \sqrt{\frac{\left( \Psi^{g,a}_{t,t}(1+X^a_{g}) + (\hat{\gamma}^a_t)^2\right)}{X^a_g \left(\hat{\gamma}^a_t \right)^2}+ \frac{\left( \Psi^{g,b}_{t,t}(1+X^b_{g}) + (\hat{\gamma}^b_t)^2\right)}{X^b_{g}\left( \hat{\gamma}^b_t\right)^2} } }. \end{equation} In order to test for differential expression of a group of transcripts, we replace the numerator and denominator above by those from Equations (\ref{eq:expectTSS}) and (\ref{eq:varTSS}). It is has been noted that the power of differential expression tests in RNA-Seq depend on the length of the transcripts being tested, because longer transcripts accumulate more reads \cite{Oshlack2009}. This means that the results we report are biased towards discovering longer differentially expressed transcripts and genes. \subsection{Quantifying transcriptional and post-transcriptional overloading} In order to infer the extent of differential promoter usage, we decided to measure changes in relative abundances of primary transcripts of single genes. Similarly, we investigated changes in relative abundances of transcripts grouped by TSS in order to infer differential splicing. These inferences required two ingredients: \begin{enumerate} \item A metric on probability distributions (derived from relative abundances). \item A test statistic for assessing significant changes in differential promoter usage and splicing as measured using the metric referred to above. \end{enumerate} In order to address the first requirement, namely a metric on probability distributions, we turned to an entropy-based metric. This was motivated by the methods in \cite{Ritchie2008} where tests for differences in relative isoform abundances were performed to distinguish cancer cells from normal cells. We extend this approach to be able to test for relative isoform abundance changes among multiple experiments in RNA-Seq. \begin{defn}[Entropy] The entropy of a discrete probability distribution $p=(p_1,\ldots,p_n)$ ($0 \leq p_i \leq 1$ and $\sum_{i=1}^n p_i = 1$) is \begin{equation} H(p) = -\sum_{i=1}^n p_i log p_i. \end{equation} If $p_i=0$ for some $i$ the value of $p_i log p_i$ is taken to be $0$. \end{defn} \begin{defn}[The Jensen-Shannon divergence] The Jensen-Shannon divergence of $m$ discrete probability distributions $p^1,\ldots,p^m$ is defined to be: \begin{equation} JS(p^1,\ldots,p^m) = H\left(\frac{p^1 + \cdots + p^m}{m}\right) - \frac{\sum_{j=1}^m H(p^j)}{m}. \end{equation} In other words, the Jensen-Shannon divergence of a set of probability distributions is the entropy of their average minus the average of their entropies. \end{defn} In the case where $m=2$, we remark that the Jensen-Shannon divergence can also be described in terms of the Kullback-Leibler divergence of two discrete probability distributions. If we denote Kullback-Leibler divergence by \begin{equation} D(p^1\|p^2) = \sum_i p^1_i log \frac{p^1_i}{p^2_i}, \end{equation} then \begin{equation} JS(p^1,p^2) = \frac{1}{2}D(p^1\|m)+\frac{1}{2}D(p^2\|m) \end{equation} where $m=\frac{1}{2}(p^1+p^2)$. In other words the Jensen-Shannon divergence is a symmetrized variant of the Kullback-Leibler divergence. The Jensen-Shannon divergence has a number of useful properties: for example it is symmetric and non-negative. However it is {\em not} a metric. The following theorem shows how to construct a metric from the Jensen-Shannon divergence: \begin{thm}[Fuglede and Tops{\o}e 2004 \cite{Fuglede2004}] The square root of the Jensen-Shannon divergence is a metric. \end{thm} The proof of this result is based on a harmonic analysis argument that is the basis for the remark in the main paper that ``transcript abundances move in time along a logarithmic spiral in Hilbert space''. We therefore call the square root of the Jensen-Shannon divergence the {\em Jensen-Shannon metric}. We employed this metric in order to quantify relative changes in expression in (groups of) transcripts. In order to test for significance, we introduce a bit of notation. Suppose that $S$ is a collection of transcripts (for example, they may share a common TSS). We define \begin{equation} \kappa_t = \frac{ \frac{\gamma_t}{\tilde{l}(t)}}{\sum_{u \in S} \frac{\gamma_u}{\tilde{l}(u)}} \end{equation} to be the proportion of transcript $t$ among all the transcripts in a group $S$. We let $Z=\sum_{u \in S} \hat{\gamma}_u / \tilde{l}(u)$ so that $\hat{\kappa}_t = \frac{\gamma_t}{\tilde{l}(t)Z}$. We therefore have that \begin{eqnarray} \label{eq:variancekappa1} Var[\hat{\kappa}_t] & = &\frac{Var[\hat{\gamma}_t]}{\tilde{l}(t)^2Z^2}, \\ Cov[\hat{\kappa}_t,\hat{\kappa}_u] & = & \frac{Cov[\hat{\gamma}_t,\hat{\gamma}_u]}{\tilde{l}(t)\tilde{l}(u)Z^2}.\label{eq:variancekappa2} \end{eqnarray} Our test statistic for divergent relative expression was the Jensen-Shannon metric. The test could be applied to multiple time points simultaneously, but we focused on pairwise tests (involving consecutive time points). Under the null hypothesis of no change in relative expression, the Jensen-Shannon metric should be zero. We tested for this using a one-sided $t$-test, based on an asymptotic derivation of the distribution of the Jensen-Shannon metric under the null hypothesis. This asymptotic distribution is normal by applying the delta method approximation, which involves computing the linear component of the Taylor expansion of the variance of $\sqrt{JS}$. In order to simplify notation, we let $f(p^1,\ldots,p^m)$ be the Jensen-Shannon metric for $m$ probability distributions $p^1,\ldots,p^m$. \begin{lemma} The partial derivatives of the Jensen-Shannon metric are give by \begin{equation} \frac{\partial f}{\partial p^k_l} = \frac{1}{2m\sqrt{f(p^1,\ldots,p^m)}} log \left( \frac{p^k_l}{\frac{1}{m} \sum_{j=1}^m p_l^j} \right). \end{equation} \end{lemma} Let $\hat{\kappa}^1,\ldots,\hat{\kappa}^m$ denote $m$ probability distributions on the set of transcripts $S$, for example the MLE for the transcript abundances in a time course. Then from the delta method we have that $\sqrt{JS(\hat{\kappa}^1,\ldots,\hat{\kappa}^m)}$ is approximately normally distributed with variance given by \begin{equation} Var[\sqrt{JS(\hat{\kappa}^1,\ldots,\hat{\kappa}^m)}] \approx (\bigtriangledown f)^T \Sigma (\bigtriangledown f), \end{equation} where $\Sigma$ is the variance-covariance matrix for the $\kappa^1,\ldots,\kappa^m$, i.e., it is a block diagonal matrix where the $i$th block is the variance-covariance matrix for the $\kappa^i_t$ given by Equations (\ref{eq:variancekappa1},\ref{eq:variancekappa2}). There are two biologically meaningful groupings of transcripts whose relative abundances are interesting to track in a time course. Transcripts that share a TSS are likely to be regulated by the same promoter, and therefore tracking the change in relative abundances of groups of transcripts sharing a TSS may reveal how transcriptional regulation is affecting expression over time. Similarly, transcripts that share a TSS and exhibit changes in expression relative to each other are likely to be affected by splicing or other post-transcriptional regulation. We therefore grouped transcripts by TSS and compared relative abundance changes within and between groups. We define ``overloading'' to be a significant change in relative abundances for a set of transcripts (as determined by the Jensen-Shannon metric, see below). The term is intended to generalize the simple notion of ``isoform switching'' that is well-defined in the case of two transcripts, to multiple transcripts. It is complementary to absolute differential changes in expression: the overall expression of a gene may remain constant while individual transcripts change drastically in relative abundances resulting in overloading. The term is borrowed from computer science, where in some statically-typed programming languages, a function may be used in multiple, specialized instances via ``method overloading''. We tested for overloaded genes by performing a one-sided $t$-test based on the asymptotics of the Jensen-Shannon metric under the null hypothesis of no change in relative abundnaces of isoforms (either grouped by shared TSS for for post-transcriptional overloading, or by comparison of groups of isoforms with shared TSS for transcriptional overloading). Type I errors were controlled with the Benjamini-Hochberg \cite{Benjamini1995} correction for multiple testing. A selection of overloaded genes are displayed in Supplemental Figs. \ref{splice_overloaded} and \ref{promoter_overloaded}. \newpage \begin{figure}[!ht] \includegraphics{pdfs/splice_overloaded} \caption[Selected genes with post-transcriptional overloading]{Selected genes with post-transcriptional overloading. Trajectories indicate the expression of individual isoforms in FPKM ($y$ axis) over time in hours ($x$ axis). Dashed isoforms have not been previously annotated. Isoform trajectories are colored by TSS, so isoforms with the same color presumably share a common promoter and are processed from the same primary transcript. It is evident that total gene expression may remain constant during isoforms switching (Eya3) while in other cases changes in relative abundance are accompanied by changes in absolute expression. The Jensen-Shannon metric generalizes the notion of ``isoform switching'' and is useful in cases with multiple isoforms (e.g. Ddx17). \label{splice_overloaded}} \end{figure} \begin{figure}[!ht] \includegraphics{pdfs/promoter_overloaded} \caption[Selected genes with transcriptional overloading]{Selected genes with transcriptional overloading. Trajectories indicate the expression of individual isoforms in FPKM (y axis) over time in hours (x axis). Dashed isoforms have not been previously annotated. Isoform trajectories are colored by TSS, so that isoforms with different colors presumably vary in their promoter and are processed from different primary transcripts. \label{promoter_overloaded}} \end{figure} We can visualize overloading and expression dynamics with a plot that superimposes transcriptional and post-transcriptional overloading and gene-level expression over the time course. We refer to these as ``Minard plots'', after Charles Joseph Minard's famous depiction of the advance and retreat of Napoleon's armies in the campaign against Russia in 1812 \cite{Tufte2001}. Minard made use of multiple visual cues to display numerous varying quantities in one diagram. An example of a Minard plot for the gene Myc is shown in Figure 3c, and others are given in Appendix B. The dotted line indicates gene-level FPKM, with measured FPKM indicated by black circles. Grey circles indicate the arithmetic mean of gene-level FPKM between consecutive measured time points, interpolating FPKM at intermediate time points. The total gene expression overloading is visualized as a swatch centered around the interpolated expression curve. The width of the swatch encodes the amount of expression overloading between successive time points. The color of the swatch indicates the relative contributions of transcriptional and post-transcriptional expression overloading. Some genes, such as tropomyosin I and II, feature a single primary transcript, and so all overloading is by definition post-transcriptional. Others, like Fhl3, have two primary transcripts, but only a single isoform arises from each, so all overloading is transcriptional. Genes with multiple primary transcripts, one or more of which are alternatively spliced, such as Myc or RTN4, display both forms. \subsection{The {\tt Cufflinks} software} The transcript assembly and abundance estimation algorithms are implemented in freely available open source software called {\tt Cufflinks} that is available from \newline {\tt http://cufflinks.cbcb.umd.edu/} \newline Furthermore methods for comparing annotations across time points, and for performing the differential expression, promoter usage and splicing tests are implemented in the companion programs {\tt Cuffdiff} and {\tt Cuffcompare}. Instructions on how to install and run the software are provided on the website. The input to {\tt Cufflinks} consists of fragment alignments in the SAM format \cite{Li2009a}. These may consist of either single fragment alignments, or alignments of mate-pairs (paired-end reads produce better assemblies and more accurate abundance estimates than single reads). {\tt Cufflinks} will assemble the transcripts using the algorithm in Section \ref{sec:assembly}, and transcript abundances will be estimated using the model in Section \ref{sec:abundances}. Transcript coordinates and abundances are reported in the Gene Transfer Format (GTF). User supplied annotations may be provided to {\tt Cufflinks} (optional input) in which case they form the basis for the transcript abundance estimation. Some of the algorithms here rely on sufficient depth of sequencing in order to produce reliable output. {\tt Cufflinks} determines that depth is sufficient where possible to check that required assumptions hold. For example, in loci where one or more isoforms have extremely low relative expression, the observed Fisher Information Matrix may not be positive definite after rounding errors. In this case, it is not possible to produce a reliable variance-covariance matrix for isoform fragment abundances. {\tt Cufflinks} will report a numerical exception in this and similar cases. When an exception is reported, the confidence intervals for the isoforms' abundances will be set from 0 FPKM to the FPKM for the whole gene. If such an exception is generated during a {\tt Cuffdiff} run, no differential analysis involving the problematic sample will be performed on that locus. \newpage \section{Appendix A: Lemmas and Theorems} The following elementary/classical results are required for our methods and we include them so that the supplement is self-contained. \begin{lemma} \label{lemma:varsum} Let $X_1,\ldots,X_n$ be random variables and $a_1,\ldots,a_n$ real numbers with $Y=\sum_{i=1}^na_iX_i$. Then \begin{equation} Var[Y] = \sum_{i=1}^n a_i^2Var[X_i]+2\sum_{i