/// <summary> /// Create an object using the contents of the corresponding MzIdentML object /// </summary> /// <param name="sc"></param> /// <param name="idata"></param> public SequenceCollectionObj(SequenceCollectionType sc, IdentDataObj idata) : base(idata) { _dBSequences = null; _peptides = null; _peptideEvidences = null; idata.SequenceCollection = this; if ((sc.DBSequence != null) && (sc.DBSequence.Count > 0)) { DBSequences = new IdentDataList <DbSequenceObj>(); foreach (var dbs in sc.DBSequence) { DBSequences.Add(new DbSequenceObj(dbs, IdentData)); } } if ((sc.Peptide != null) && (sc.Peptide.Count > 0)) { Peptides = new IdentDataList <PeptideObj>(); foreach (var p in sc.Peptide) { Peptides.Add(new PeptideObj(p, IdentData)); } } if ((sc.PeptideEvidence != null) && (sc.PeptideEvidence.Count > 0)) { PeptideEvidences = new IdentDataList <PeptideEvidenceObj>(); foreach (var pe in sc.PeptideEvidence) { PeptideEvidences.Add(new PeptideEvidenceObj(pe, IdentData)); } } }
/// <summary> /// Writes current data to a mzid file /// </summary> /// <param name="xml"> /// A <see cref="System.String"/> with the output file name /// </param> public void Save(string xml) { Data.creationDate = DateTime.UtcNow; // AnalysisSoftwareList Data.AnalysisSoftwareList = ListSW.ToArray(); // AuditCollection List <AbstractContactType> audit = new List <AbstractContactType>(); audit.AddRange(ListOrganizations); audit.AddRange(ListPeople); Data.AuditCollection = audit.ToArray(); // SequenceCollection SequenceCollectionType seq = new SequenceCollectionType(); seq.DBSequence = ListProteins.ToArray(); seq.Peptide = ListPeptides.ToArray(); seq.PeptideEvidence = ListEvidences.ToArray(); Data.SequenceCollection = seq; // Serialization XmlSerializer serializer = new XmlSerializer(typeof(MzIdentMLType)); TextWriter writer = new StreamWriter(xml); serializer.Serialize(writer, Data); writer.Close(); //Data.SaveToFile( xml ); System.GC.Collect(); }
/// <summary> /// Writes current data to a mzid file /// </summary> /// <param name="xml"> /// A <see cref="System.String"/> with the output file name /// </param> public void Save(string xml) { Data.creationDate = DateTime.UtcNow; // CommonOntology Data.cvList = ListOntology.ToArray(); // AnalysisSoftwareList Data.AnalysisSoftwareList = ListSW.ToArray(); // Provider Data.Provider = Provider; // AuditCollection Data.AuditCollection = new FuGECollectionAuditCollectionType(); Data.AuditCollection.Person = ListPeople.ToArray(); Data.AuditCollection.Organization = ListOrganizations.ToArray(); // SequenceCollection SequenceCollectionType seq = new SequenceCollectionType(); seq.DBSequence = ListProteins.ToArray(); seq.Peptide = ListPeptides.ToArray(); Data.SequenceCollection = seq; // Serialization XmlSerializer serializer = new XmlSerializer(typeof(PSIPIMainmzIdentMLType)); TextWriter writer = new StreamWriter(xml); serializer.Serialize(writer, Data); writer.Close(); System.GC.Collect(); }
/// <summary> /// Create an object using the contents of the corresponding MzIdentML object /// </summary> /// <param name="sc"></param> /// <param name="idata"></param> public SequenceCollectionObj(SequenceCollectionType sc, IdentDataObj idata) : base(idata) { DBSequences = new IdentDataList <DbSequenceObj>(1); Peptides = new IdentDataList <PeptideObj>(1); PeptideEvidences = new IdentDataList <PeptideEvidenceObj>(1); idata.SequenceCollection = this; if (sc.DBSequence?.Count > 0) { DBSequences.AddIdMap(); DBSequences.AddRange(sc.DBSequence, dbs => new DbSequenceObj(dbs, IdentData)); } if (sc.Peptide?.Count > 0) { Peptides.AddIdMap(); Peptides.AddRange(sc.Peptide, p => new PeptideObj(p, IdentData)); } if (sc.PeptideEvidence?.Count > 0) { PeptideEvidences.AddIdMap(); PeptideEvidences.AddRange(sc.PeptideEvidence, pe => new PeptideEvidenceObj(pe, IdentData)); } }