private void StartElement(IEquatable<string> qName, IDictionary<string, string> attrs) { if (inFeature){ if (qName.Equals("location")){ inFeatureLocation = true; } else if (qName.Equals("position")){ string position = attrs["position"]; featureBegin = position; featureEnd = position; } else if (qName.Equals("begin")){ string position = attrs.ContainsKey("position") ? attrs["position"] : attrs["status"]; featureBegin = position; } else if (qName.Equals("end")){ string position = attrs.ContainsKey("position") ? attrs["position"] : attrs["status"]; featureEnd = position; } else if (qName.Equals("original")){ original = new StringBuilder(); } else if (qName.Equals("variation")){ variation = new StringBuilder(); }else{ throw new Exception("Unknown qname: " + qName); } } if (inOrganism) { if (qName.Equals("name")) { string type = attrs["type"]; if (type.Equals("scientific")) { oname = new StringBuilder(); } } else if (qName.Equals("dbReference")) { string type = attrs["type"]; if (type.Equals("NCBI Taxonomy")) { string id = attrs["id"]; entry.AddTaxonomyId(id); } } } if (inOrganismHost) { if (qName.Equals("dbReference")) { string type = attrs["type"]; if (type.Equals("NCBI Taxonomy")) { string id = attrs["id"]; entry.AddHostTaxonomyId(id); } } } if (qName.Equals("entry")) { entry = new UniprotEntry(); accessions = new List<string>(); proteinFullNames = new List<string>(); proteinShortNames = new List<string>(); proteinEcNumbers = new List<string>(); gnames = new List<Tuple<string, string>>(); onames = new List<string>(); unames = new List<string>(); level = 0; } else if (qName.Equals("dbReference")){ inDbRef = true; dbReferenceType = attrs["type"]; dbReferenceId = attrs["id"]; entry.AddDbEntry(dbReferenceType, dbReferenceId); } else if (qName.Equals("property")){ if (inDbRef){ entry.AddDbEntryProperty(dbReferenceType, dbReferenceId, attrs["type"], attrs["value"]); } } else if (qName.Equals("feature")){ inFeature = true; featureType = attrs.ContainsKey("type") ? attrs["type"] : ""; featureDescription = attrs.ContainsKey("description") ? attrs["description"] : ""; featureStatus = attrs.ContainsKey("status") ? attrs["status"] : ""; featureId = attrs.ContainsKey("id") ? attrs["id"] : ""; entry.AddFeature(featureType, featureDescription, featureStatus, featureId); } else if (qName.Equals("sequence")) { sequence = new StringBuilder(); } else if (qName.Equals("keyword")) { keyword = new StringBuilder(); } else if (qName.Equals("accession")) { accession = new StringBuilder(); } else if (qName.Equals("protein")){ inProtein = true; } else if (qName.Equals("recommendedName") && inProtein){ inProteinRecommendedName = true; } else if (qName.Equals("organism")) { inOrganism = true; } else if (qName.Equals("organismHost")) { inOrganismHost = true; } else if (qName.Equals("gene")) { inGene = true; } else if (qName.Equals("fullName") && inProteinRecommendedName){ proteinFullName = new StringBuilder(); } else if (qName.Equals("shortName") && inProteinRecommendedName){ proteinShortName = new StringBuilder(); } else if (qName.Equals("ecNumber") && inProteinRecommendedName){ proteinEcNumber = new StringBuilder(); } else if (qName.Equals("name") && inGene){ gname = new StringBuilder(); gnameType = attrs["type"]; } else if (qName.Equals("name") && level == 1){ uname = new StringBuilder(); } }
private void StartElement(IEquatable <string> qName, IDictionary <string, string> attrs) { if (inFeature) { if (qName.Equals("location")) { inFeatureLocation = true; } else if (qName.Equals("position")) { string position = attrs["position"]; featureBegin = position; featureEnd = position; } else if (qName.Equals("begin")) { string position = attrs.ContainsKey("position") ? attrs["position"] : attrs["status"]; featureBegin = position; } else if (qName.Equals("end")) { string position = attrs.ContainsKey("position") ? attrs["position"] : attrs["status"]; featureEnd = position; } else if (qName.Equals("original")) { original = new StringBuilder(); } else if (qName.Equals("variation")) { variation = new StringBuilder(); } else { throw new Exception("Unknown qname: " + qName); } } if (inOrganism) { if (qName.Equals("name")) { string type = attrs["type"]; if (type.Equals("scientific")) { oname = new StringBuilder(); } } else if (qName.Equals("dbReference")) { string type = attrs["type"]; if (type.Equals("NCBI Taxonomy")) { string id = attrs["id"]; entry.AddTaxonomyId(id); } } } if (inOrganismHost) { if (qName.Equals("dbReference")) { string type = attrs["type"]; if (type.Equals("NCBI Taxonomy")) { string id = attrs["id"]; entry.AddHostTaxonomyId(id); } } } if (qName.Equals("entry")) { entry = new UniprotEntry(); accessions = new List <string>(); proteinFullNames = new List <string>(); proteinShortNames = new List <string>(); proteinEcNumbers = new List <string>(); gnames = new List <Tuple <string, string> >(); onames = new List <string>(); unames = new List <string>(); level = 0; } else if (qName.Equals("dbReference")) { inDbRef = true; dbReferenceType = attrs["type"]; dbReferenceId = attrs["id"]; entry.AddDbEntry(dbReferenceType, dbReferenceId); } else if (qName.Equals("property")) { if (inDbRef) { entry.AddDbEntryProperty(dbReferenceType, dbReferenceId, attrs["type"], attrs["value"]); } } else if (qName.Equals("feature")) { inFeature = true; featureType = attrs.ContainsKey("type") ? attrs["type"] : ""; featureDescription = attrs.ContainsKey("description") ? attrs["description"] : ""; featureStatus = attrs.ContainsKey("status") ? attrs["status"] : ""; featureId = attrs.ContainsKey("id") ? attrs["id"] : ""; entry.AddFeature(featureType, featureDescription, featureStatus, featureId); } else if (qName.Equals("sequence")) { sequence = new StringBuilder(); } else if (qName.Equals("keyword")) { keyword = new StringBuilder(); } else if (qName.Equals("accession")) { accession = new StringBuilder(); } else if (qName.Equals("protein")) { inProtein = true; } else if (qName.Equals("recommendedName") && inProtein) { inProteinRecommendedName = true; } else if (qName.Equals("organism")) { inOrganism = true; } else if (qName.Equals("organismHost")) { inOrganismHost = true; } else if (qName.Equals("gene")) { inGene = true; } else if (qName.Equals("fullName") && inProteinRecommendedName) { proteinFullName = new StringBuilder(); } else if (qName.Equals("shortName") && inProteinRecommendedName) { proteinShortName = new StringBuilder(); } else if (qName.Equals("ecNumber") && inProteinRecommendedName) { proteinEcNumber = new StringBuilder(); } else if (qName.Equals("name") && inGene) { gname = new StringBuilder(); gnameType = attrs["type"]; } else if (qName.Equals("name") && level == 1) { uname = new StringBuilder(); } }