Beispiel #1
0
void output_vcf_row(FILE * vcf_file_pointer, char * bases_for_snp, int snp_location, int number_of_samples, char pseudo_reference_sequence[])
{
	char reference_base =  pseudo_reference_sequence[snp_location];
	if(reference_base == '\0')
	{
    fprintf(stderr, "Couldnt get the reference base for coordinate %d\n",snp_location);
    fflush(stderr);
    exit(EXIT_FAILURE);
	}
	
	// Chromosome
	fprintf( vcf_file_pointer, "1\t");
	
	// Position
	fprintf( vcf_file_pointer, "%d\t", (int) snp_location +1 );	
	
	//ID
	fprintf( vcf_file_pointer, ".\t");
	
	// REF
	fprintf( vcf_file_pointer, "%c\t", (char) reference_base );
	
	// ALT
	// Need to look through list and find unique characters
	
	char * alt_bases = alternative_bases(reference_base, bases_for_snp, number_of_samples);
	char * alternative_bases_string = format_alternative_bases(alt_bases);
	fprintf( vcf_file_pointer, "%s\t", alternative_bases_string );
	free(alternative_bases_string);
	
	// QUAL
	fprintf( vcf_file_pointer, ".\t");
	
	// FILTER
	fprintf( vcf_file_pointer, ".\t");
	
	// INFO
	fprintf( vcf_file_pointer, ".\t");
	
	// FORMAT
	fprintf( vcf_file_pointer, "GT\t");
	
	// Bases for each sample
	output_vcf_row_samples_bases(vcf_file_pointer, reference_base, alt_bases, bases_for_snp, number_of_samples );
	free(alt_bases);
	
	fprintf( vcf_file_pointer, "\n");	
  
}
Beispiel #2
0
void output_vcf_row(FILE * vcf_file_pointer, char * bases_for_snp, int snp_location, int number_of_samples)
{
	char reference_base =  bases_for_snp[0];
	if(reference_base == '\0')
	{
		return;	
	}
	
	// Chromosome
	fprintf( vcf_file_pointer, "1\t");
	
	// Position
	fprintf( vcf_file_pointer, "%d\t", (int) snp_location +1 );	
	
	//ID
	fprintf( vcf_file_pointer, ".\t");
	
	// REF
	fprintf( vcf_file_pointer, "%c\t", (char) reference_base );
	
	// ALT
	// Need to look through list and find unique characters
	
	char * alt_bases = alternative_bases(reference_base, bases_for_snp, number_of_samples);
	char * alternative_bases_string = format_alternative_bases(alt_bases);
	fprintf( vcf_file_pointer, "%s\t", alternative_bases_string );
	free(alternative_bases_string);
	
	// QUAL
	fprintf( vcf_file_pointer, ".\t");
	
	// FILTER
	fprintf( vcf_file_pointer, ".\t");
	
	// INFO
	fprintf( vcf_file_pointer, ".\t");
	
	// FORMAT
	fprintf( vcf_file_pointer, "GT\t");
	
	// Bases for each sample
	output_vcf_row_samples_bases(vcf_file_pointer, reference_base, alt_bases, bases_for_snp, number_of_samples );
	free(alt_bases);
	
	fprintf( vcf_file_pointer, "\n");	
}