private static string ExtractDbId(IAnnotatedPosition annotatedPosition) { var dbSnp = new VcfField(); var nonDbsnpIds = GetNonDbsnpIds(annotatedPosition.Position.VcfFields[VcfCommon.IdIndex]); if (nonDbsnpIds != null) { foreach (var nonDbsnpId in nonDbsnpIds) { dbSnp.Add(nonDbsnpId); } } foreach (var annotatedVariant in annotatedPosition.AnnotatedVariants) { foreach (var suppAnnotation in annotatedVariant.SupplementaryAnnotations) { if (suppAnnotation.SaDataSource.KeyName != DbSnpKeyName) { continue; } foreach (var s in suppAnnotation.GetVcfStrings()) { dbSnp.Add(s); } } } return(dbSnp.GetString("")); }
private void AddInfoField(IAnnotatedPosition annotatedPosition, StringBuilder sb) { var infoEntries = new VcfField(); var infoField = annotatedPosition.Position.InfoData.UpdatedInfoField; if (!string.IsNullOrEmpty(infoField)) { infoEntries.Add(infoField); } ExtractInfo(annotatedPosition, infoEntries); infoField = infoEntries.GetString(""); // remove . if (infoField == ".") { infoField = ""; } sb.Append(infoField); var csqs = new List <CsqEntry>(); ExtractCsqs(annotatedPosition, csqs); if (csqs.Count != 0) { if (infoField.Length > 0) { sb.Append(";"); } } // append CSQ tags using delegate from annotator sb.Append(GetCsqtAndCsqrVcfInfo(csqs)); if (csqs.Count == 0 && infoField.Length == 0) { sb.Append("."); } }