diff source/fastq_pair_array.h @ 0:816cb55b5a2d draft default tip

planemo upload for repository https://github.com/portiahollyoak/Tools commit c4769fd68ad9583d4b9dbdf212e4ecb5968cef1c-dirty
author portiahollyoak
date Thu, 02 Jun 2016 11:34:51 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/fastq_pair_array.h	Thu Jun 02 11:34:51 2016 -0400
@@ -0,0 +1,96 @@
+/****************************************************************************
+ * The 'FASTQ_PAIR_ARRAY' structure group was used to store a array of 
+ * paired FASTQ reads, including basic operation function as well.
+ *
+ * This file was written by Haibin Xu, December 2011.
+ ****************************************************************************/
+
+#include "fastq_pair.h"
+
+#ifndef FASTQ_PAIR_ARRAY_BLOCK_SIZE
+	#define FASTQ_PAIR_ARRAY_BLOCK_SIZE 100000
+#endif
+
+#ifndef _FASTQ_PAIR_ARRAY_BLOCK
+	typedef struct fastq_pair_array_block
+		{
+			FASTQ_PAIR *block[FASTQ_PAIR_ARRAY_BLOCK_SIZE];
+			struct fastq_pair_array_block *previous;
+			struct fastq_pair_array_block *next;
+			long num;
+		} FASTQ_PAIR_ARRAY_BLOCK;
+	#define _FASTQ_PAIR_ARRAY_BLOCK
+#endif
+
+#ifndef _FASTQ_PAIR_ARRAY
+	typedef struct fastq_pair_array
+		{
+			FASTQ_PAIR_ARRAY_BLOCK *array;
+			FASTQ_PAIR_ARRAY_BLOCK *last;
+			long block_num;
+			long fastq_pair_num;
+			FASTQ_PAIR_ARRAY_BLOCK **index;
+		} FASTQ_PAIR_ARRAY;
+	#define _FASTQ_PAIR_ARRAY
+#endif
+
+/* create a FASTQ pair array. If successful, return the point to it, 
+ * otherwise, return NULL. */
+FASTQ_PAIR_ARRAY *fastq_pair_array_create();
+
+/* free the FASTQ pair array. If successful, return 0, otherwise return 1. */
+int fastq_pair_array_remove(FASTQ_PAIR_ARRAY *fq_pair_array);
+
+/* append a new FASTQ pair to the array. if successful, return 0, otherwise
+ * return 1. */
+int fastq_pair_array_append(FASTQ_PAIR *fq_pair,
+                            FASTQ_PAIR_ARRAY *fq_pair_array);
+
+/* generate the index for given FASTQ_PAIR, if successful, return 0, otherwise
+ * return 1. */
+int fastq_pair_array_generate_index(FASTQ_PAIR_ARRAY *fq_pair_array);
+
+/* get double pointer to individual fastq_pair member at specific position
+ * in the array, if successful, return the double pointer, otherwise
+ * return NULL */
+FASTQ_PAIR **fastq_pair_array_get_pointer(FASTQ_PAIR_ARRAY *fq_pair_array,
+                                          long position);
+
+/* merge the two sorted part in array, low-middle and middle-high, into a 
+ * single sorted order. If successful, return 0, otherwise return. */
+int fastq_pair_array_merge(FASTQ_PAIR_ARRAY *fq_pair_array,
+                           FASTQ_PAIR_ARRAY *temp_fq_pair_array, 
+						   long low, long middle, long high);
+
+/* sort the FASTQ pair array. If successful, return 0, otherwise
+ * return 1. */
+int fastq_pair_array_sort(FASTQ_PAIR_ARRAY *fq_pair_array, 
+                          FASTQ_PAIR_ARRAY *temp_fq_pair_array,
+						  long first, long last);
+
+/* write the pair-end reads in the array in FASTA or FASTQ format into two 
+ * output files(format='fa' or 'fq')  or in FASTA format into a single output
+ * file(format="fa" and fp_out2==NULL) using the original description 
+ * (serial_flag=0) or a new serial number(serial_flag=1). Output all sequences
+ * (flag_uniq==0), or unique ones(flag_uniq==1). If successful, return 0,
+ * otherwise return 1. */
+int fastq_pair_array_printf(FASTQ_PAIR_ARRAY *fq_pair_array, FILE *fp_out1,
+                            FILE *fp_out2, char *format, int serial_flag, 
+                            int flag_uniq);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+