3232
3333static void print_usage ()
3434{
35- printf ("Usage: snp-sites [-mvph] [-o output_filename] <file>\n" );
36- printf ("This program finds snp sites from a multi FASTA alignment file.\n" );
37- printf (" -r output internal pseudo reference sequence\n" );
38- printf (" -m output a multi fasta alignment file (default)\n" );
39- printf (" -v output a VCF file\n" );
40- printf (" -p output a phylip file\n" );
41- printf (" -o specify an output filename\n" );
42- printf (" -h this help message\n" );
43- printf (" -V print version and exit\n" );
44- printf (" <file> input alignment file which can optionally be gzipped\n\n" );
35+ printf ("Usage: snp-sites [-rmvpcbhV] [-o output_filename] <file>\n" );
36+ printf ("This program finds snp sites from a multi FASTA alignment file.\n" );
37+ printf (" -r output internal pseudo reference sequence\n" );
38+ printf (" -m output a multi fasta alignment file (default)\n" );
39+ printf (" -v output a VCF file\n" );
40+ printf (" -p output a phylip file\n" );
41+ printf (" -o STR specify an output filename\n" );
42+ printf (" -c only output columns containing exclusively ACGT\n" );
43+ printf (" -b output monomorphic sites, used for BEAST\n" );
44+ printf (" -h this help message\n" );
45+ printf (" -V print version and exit\n" );
46+ printf (" <file> input alignment file which can optionally be gzipped\n\n" );
47+
48+ printf ("Example: creating files for BEAST\n" );
49+ printf (" snp-sites -cb -o outputfile.aln inputfile.aln\n\n" );
4550
4651 printf ("If you use this program, please cite:\n" );
4752 printf ("\"SNP-sites: rapid efficient extraction of SNPs from multi-FASTA alignments\",\n" );
@@ -65,8 +70,10 @@ int main (int argc, char **argv) {
6570 int output_vcf_file = 0 ;
6671 int output_phylip_file = 0 ;
6772 int output_reference = 0 ;
68-
69- while ((c = getopt (argc , argv , "mvrpo:V" )) != -1 )
73+ int pure_mode = 0 ;
74+ int output_monomorphic = 0 ;
75+
76+ while ((c = getopt (argc , argv , "mvrbpco:V" )) != -1 )
7077 switch (c )
7178 {
7279 case 'm' :
@@ -83,6 +90,12 @@ int main (int argc, char **argv) {
8390 break ;
8491 case 'r' :
8592 output_reference = 1 ;
93+ break ;
94+ case 'c' :
95+ pure_mode = 1 ;
96+ break ;
97+ case 'b' :
98+ output_monomorphic = 1 ;
8699 break ;
87100 case 'o' :
88101 strncpy (output_filename , optarg , FILENAME_MAX );
@@ -105,7 +118,15 @@ int main (int argc, char **argv) {
105118 }
106119
107120 strncpy (multi_fasta_filename , argv [optind ], FILENAME_MAX );
108- if (output_reference ) {
121+
122+ if ( pure_mode || output_monomorphic )
123+ {
124+ generate_snp_sites_with_ref_pure_mono (multi_fasta_filename ,
125+ output_multi_fasta_file ,
126+ output_vcf_file , output_phylip_file ,
127+ output_filename ,output_reference ,pure_mode ,output_monomorphic );
128+ }
129+ else if (output_reference ) {
109130 generate_snp_sites_with_ref (multi_fasta_filename ,
110131 output_multi_fasta_file ,
111132 output_vcf_file , output_phylip_file ,
0 commit comments