def get_coding_annotation_fasta(seq_record):
	"""
	When passed a sequence record object returns an array of FASTA strings for each annotation.

	:param seq_record: A Biopython sequence record object.
	:return: A FASTA file string containing all sequences record object CDS sequence features.
	"""
	fasta = []
	features = seq_record.features  # Each sequence has a list (called features) that stores seqFeature objects.
	for feature in features:  # For each feature on the sequence
		if feature.type == "CDS":  # CDS means coding sequence (These are the only feature we're interested in)
			feat_qualifiers = feature.qualifiers  # Each feature contains a dictionary called qualifiers which contains
			# data about the sequence feature (for example the translation)

			start = int(feature.location.start)  # Type-casting to int strips fuzzy < > characters.
			end = int(feature.location.end)
			strand = feature.location.strand
			if strand is None:
				strand = "?"
			elif int(strand) < 0:
				strand = "-"
			elif int(strand) > 0:
				strand = "+"
			else:
				strand = "?"

			location = "[" + str(start) + ":" + str(end) + "](" + strand + ")"

			# Gets the required qualifiers. Uses featQualifiers.get to return the qualifiers or a default value if the qualifiers
			# is not found. Calls strip to remove unwanted brackets and ' from qualifiers before storing it as a string.
			protein_id = str(feat_qualifiers.get('protein_id', 'no_protein_id')).strip('\'[]')
			if protein_id == 'no_protein_id':
				continue  # Skips the iteration if protein has no id.
			protein_locus = str(feat_qualifiers.get('locus_tag', 'no_locus_tag')).strip('\'[]')
			gene = str(feat_qualifiers.get('gene', 'no_gene_name')).strip('\'[]')
			product = str(feat_qualifiers.get('product', 'no_product_name')).strip('\'[]')
			translated_protein = str(feat_qualifiers.get('translation', 'no_translation')).strip('\'[]')

			fasta_part_one = ">" + protein_id + " " + gene + "-" + product + " (Locus: " + protein_locus + ")"
			fasta_part_two = " (Location: " + location + ")" + "\n" + translated_protein + "\n"
			fasta.append(fasta_part_one + fasta_part_two)
	fasta_string = "".join(fasta)
	return fasta_string