Exemplo n.º 1
0
// return new number of snps
int refilter_existing_snps(char * reference_bases, int number_of_snps, char ** column_names, int number_of_columns,int * snp_locations, int * filtered_snp_locations)
{
	// go through each snp column and check to see if there is still variation
	int i;
	int number_of_filtered_snps = number_of_snps;
	for(i = 0; i < number_of_snps; i++)
	{
		if( does_column_contain_snps(i, reference_bases[i]) == 0)
		{
			snp_locations[i] = -1;
			reference_bases[i] = '*';
			
			number_of_filtered_snps--;
		}
	}
	
	remove_filtered_snp_locations(filtered_snp_locations, snp_locations, number_of_snps);
	return number_of_filtered_snps;
}
Exemplo n.º 2
0
END_TEST

START_TEST (phylip_read_in_file_with_gaps)
{
	load_sequences_from_multifasta_file("../tests/data/alignment_with_gaps.aln");
	fail_unless( does_column_contain_snps(0, 'A') == 0);
  fail_unless( does_column_contain_snps(1, '-') == 0);
  fail_unless( does_column_contain_snps(2, '-') == 0);
  fail_unless( does_column_contain_snps(3, 'T') == 0);
  fail_unless( does_column_contain_snps(4, 'G') == 1);
  fail_unless( does_column_contain_snps(4, '-') == 1);
  fail_unless( does_column_contain_snps(5, 'N') == 0);

  // Check you can fill in parent bases with gaps if all children have the same gap at the same place
	int child_indices[2] = {1,2};
	fill_in_unambiguous_gaps_in_parent_from_children(0, child_indices, 2);
	char sequence_bases[10];
  get_sequence_for_sample_name(sequence_bases, "2956_6_1");
  fail_unless( strcmp(sequence_bases, "A-N-CT") == 0);
}