diff mrfast-2.1.0.4/Output.c @ 1:d4054b05b015 default tip

Version update to 2.1.0.5
author calkan
date Fri, 09 Mar 2012 07:35:51 -0500
parents 7b3dc85dc7fd
children
line wrap: on
line diff
--- a/mrfast-2.1.0.4/Output.c	Tue Feb 21 10:29:47 2012 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-/*
- * Copyright (c) <2008 - 2012>, University of Washington, Simon Fraser University
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list
- * of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright notice, this
- *   list of conditions and the following disclaimer in the documentation and/or other
- *   materials provided with the distribution.
- * - Neither the names of the University of Washington, Simon Fraser University, 
- *   nor the names of its contributors may be
- *   used to endorse or promote products derived from this software without specific
- *   prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
-  Authors: 
-	Farhad Hormozdiari
-        Faraz Hach
-	Can Alkan
-  Emails: 
-	farhadh AT uw DOT edu
-	fhach AT cs DOT sfu DOT ca
-        calkan AT uw DOT edu
-*/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <zlib.h>
-#include <string.h>
-#include "Common.h"
-#include "Output.h"
-
-FILE			*_out_fp;
-gzFile			_out_gzfp;
-
-char buffer[300000];
-int bufferSize = 0;
-
-
-void finalizeGZOutput()
-{
-	gzclose(_out_gzfp);
-}
-
-void finalizeTXOutput()
-{
-	fclose(_out_fp);
-}
-
-
-void gzOutputQ(SAM map)
-{
-	gzprintf(_out_gzfp, "%s\t%d\t%s\t%d\t%d\t%s\t%s\t%d\t%d\t%s\t%s", 
-			map.QNAME, 
-			map.FLAG,
-			map.RNAME, 
-			map.POS,
-			map.MAPQ,
-			map.CIGAR,
-			map.MRNAME,
-			map.MPOS,
-			map.ISIZE,
-			map.SEQ,
-			map.QUAL);
-	
-	int i;
-
-	for ( i = 0; i < map.optSize; i++)
-	{
-		switch (map.optFields[i].type)
-		{
-			case 'A':
-				gzprintf(_out_gzfp, "\t%s:%c:%c", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].cVal);
-				break;
-			case 'i':
-				gzprintf(_out_gzfp, "\t%s:%c:%d", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].iVal);
-				break;
-			case 'f':
-				gzprintf(_out_gzfp, "\t%s:%c:%f", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].fVal);
-				break;
-			case 'Z':
-			case 'H':
-				gzprintf(_out_gzfp, "\t%s:%c:%s", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].sVal);
-				break;
-		}
-	}
-	gzprintf(_out_gzfp, "\n");
-}
-
-void outputSAM(FILE *fp, SAM map)
-{
-        fprintf(fp, "%s\t%d\t%s\t%d\t%d\t%s\t%s\t%d\t%d\t%s\t%s",
-                        map.QNAME,
-                        map.FLAG,
-                        map.RNAME,
-                        map.POS,
-                        map.MAPQ,
-                        map.CIGAR,
-                        map.MRNAME,
-                        map.MPOS,
-                        map.ISIZE,
-                        map.SEQ,
-                        map.QUAL);
-
-
-        int i;
-
-        for ( i = 0; i < map.optSize; i++)
-        {
-                switch (map.optFields[i].type)
-                {
-					case 'A':
-						fprintf(fp, "\t%s:%c:%c", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].cVal);
-						break;
-					case 'i':
-						fprintf(fp, "\t%s:%c:%d", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].iVal);
-						break;
-					case 'f':
-						fprintf(fp, "\t%s:%c:%f", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].fVal);
-						break;
-					case 'Z':
-					case 'H':
-						fprintf(fp, "\t%s:%c:%s", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].sVal);
-						break;
-                }
-        }
-
-        fprintf(fp, "\n");
-
-}
-
-void outputQ(SAM map)
-{
-
-	fprintf(_out_fp, "%s\t%d\t%s\t%d\t%d\t%s\t%s\t%d\t%d\t%s\t%s", 
-			map.QNAME, 
-			map.FLAG,
-			map.RNAME, 
-			map.POS,
-			map.MAPQ,
-			map.CIGAR,
-			map.MRNAME,
-			map.MPOS,
-			map.ISIZE,
-			map.SEQ,
-			map.QUAL);
-
-	
-	int i;
-
-	for ( i = 0; i < map.optSize; i++)
-	{
-		switch (map.optFields[i].type)
-		{
-			case 'A':
-						fprintf(_out_fp, "\t%s:%c:%c", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].cVal);
-						break;
-			case 'i':
-						fprintf(_out_fp, "\t%s:%c:%d", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].iVal);
-						break;
-			case 'f':
-						fprintf(_out_fp, "\t%s:%c:%f", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].fVal);
-						break;
-			case 'Z':
-			case 'H':
-						fprintf(_out_fp, "\t%s:%c:%s", map.optFields[i].tag, map.optFields[i].type, map.optFields[i].sVal);
-						break;
-		}
-	}
-	
-	fprintf(_out_fp, "\n");
-}
-
-int initOutput ( char *fileName, int compressed)
-{
-	if (compressed)
-	{
-		char newFileName[strlen(fileName)+4];
-		sprintf(newFileName, "%s.gz", fileName);
-
-        	_out_gzfp = fileOpenGZ(newFileName, "w1f");
-		if (_out_gzfp == Z_NULL)
-		{
-			return 0;
-		}
-	
-		finalizeOutput = &finalizeGZOutput;
-
-		output = &gzOutputQ;
-	}
-	else
-	{
-		_out_fp = fileOpen(fileName, "w");
-		if (_out_fp == NULL)
-		{
-			return 0;
-		}
-
-		finalizeOutput = &finalizeTXOutput;
-		output = &outputQ;
-	}
-	buffer[0] = '\0';
-	return 1;
-}
-
-FILE* getOutputFILE() 
-{
-	if(_out_fp != NULL)
-		return _out_fp;
-	else if(_out_gzfp != NULL)
-		return _out_gzfp;
-	else
-		return NULL;
-}