예제 #1
0
        /// <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));
                }
            }
        }
예제 #2
0
        /// <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();
        }
예제 #3
0
        /// <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));
            }
        }