https://github.com/sanger-pathogens/gubbins
Tip revision: 1b689a73c1fb94da5b08166f2aca2566b45964d9 authored by Nick Croucher on 11 September 2023, 05:42:05 UTC
Fix broken link
Fix broken link
Tip revision: 1b689a7
Newickform.h
#ifndef __NEWICKFORM_H__
#define __NEWICKFORM_H__
/*
* Yu-Wei Wu http://yuweibioinfo.blogspot.com/2008/10/newick-tree-parser-in-c-make-use-of.html
* Copyright (C) 2011 Yu-Wei Wu
*
* 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, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
typedef struct newick_child
{
struct newick_node *node;
struct newick_child *next;
} newick_child;
typedef struct newick_node
{
char *taxon;
char *taxon_names;
char *seq;
float dist;
int childNum;
int * recombinations;
int num_recombinations;
int number_of_snps;
int current_node_id;
int number_of_blocks;
int total_bases_removed_excluding_gaps;
int ** block_coordinates;
struct newick_child *child;
struct newick_node *parent;
} newick_node;
#define MAX_FILENAME_SIZE 1024
#ifdef __NEWICKFORM_C__
newick_node* parseTree(char *str);
newick_node* build_newick_tree(char * filename, FILE *vcf_file_pointer,int * snp_locations, int number_of_snps, char** column_names, int number_of_columns, int length_of_original_genome,int min_snps, int window_min, int window_max, float uncorrected_p_value, float trimming_ratio, int extensive_search_flag);
void print_tree(newick_node *root, FILE * outputfile);
char* strip_quotes(char *taxon);
#else
extern newick_node* parseTree(char *str);
extern newick_node* build_newick_tree(char * filename, FILE *vcf_file_pointer,int * snp_locations, int number_of_snps, char** column_names, int number_of_columns, int length_of_original_genome,int min_snps, int window_min, int window_max, float uncorrected_p_value, float trimming_ratio, int extensive_search_flag);
extern void print_tree(newick_node *root, FILE * outputfile);
extern char* strip_quotes(char *taxon);
#endif
#endif