示例#1
0
        /// <summary>
        /// Helper method for including an additional analysis software to the list
        /// </summary>
        public void AddAnalysisSoftware(
            string id, string name, string version, string uri, string org_id,
            string contact_accession, string contact_name, string contact_cvRef,
            string customizations)
        {
            PSIPIanalysissearchAnalysisSoftwareType sw = new PSIPIanalysissearchAnalysisSoftwareType(
                id, name, version, uri, org_id,
                contact_accession, contact_name, contact_cvRef,
                customizations);

            ListSW.Add(sw);
        }
示例#2
0
	/// <summary>
	/// Save results to a mzIdentML file
	/// </summary>
	public void SaveMzid(
		string mzid,
		string org_id, string org_name,
		string owner_name, string owner_email ) {
		// Previous file is required for including MS data
		if( m_mzid == null || m_InputFiles.Count > 1 )
			return;
        
        #region Organization
		FuGECommonAuditOrganizationType org = new FuGECommonAuditOrganizationType();
		org.id = "UPV/EHU";
		org.name = "University of the Basque Country";
		foreach( FuGECommonAuditOrganizationType o in m_mzid.ListOrganizations )
			if( o.id == org.id ) {
				m_mzid.ListOrganizations.Remove( o );
				break;
			}
		m_mzid.ListOrganizations.Add( org );
		#endregion
		
		#region Software author
		FuGECommonAuditPersonType person = new FuGECommonAuditPersonType();
		person.id = "PAnalyzer_Author";
		person.firstName = "Gorka";
		person.lastName = "Prieto";
		person.email = "*****@*****.**";
		FuGECommonAuditPersonTypeAffiliations aff = new FuGECommonAuditPersonTypeAffiliations();
		aff.Organization_ref = org.id;		
		person.affiliations = new FuGECommonAuditPersonTypeAffiliations[]{aff};
		foreach( FuGECommonAuditPersonType p in m_mzid.ListPeople )
			if( p.id == person.id ) {
				m_mzid.ListPeople.Remove( p );
				break;
			}
		m_mzid.ListPeople.Add( person );
		#endregion

		#region Analysis software
		PSIPIanalysissearchAnalysisSoftwareType sw = new PSIPIanalysissearchAnalysisSoftwareType();
		sw.id = m_Software.Name;
		sw.name = m_Software.ToString();
		sw.URI = m_Software.Url;
		sw.version = m_Software.Version;
		ParamType swname = new ParamType();
		FuGECommonOntologycvParamType item = new FuGECommonOntologycvParamType();
		item.name = "PAnalyzer";
		item.cvRef = "PSI-MS";
		item.accession = "MS:1002076";		
		swname.Item = item;
		sw.SoftwareName = swname;
		FuGECommonAuditContactRoleType contact = new FuGECommonAuditContactRoleType();
		contact.Contact_ref = person.id;
		FuGECommonAuditContactRoleTypeRole role = new FuGECommonAuditContactRoleTypeRole();
		FuGECommonOntologycvParamType contacttype = new FuGECommonOntologycvParamType();
		contacttype.accession = "MS:1001271";
		contacttype.cvRef = "PSI-MS";
		contacttype.name = "researcher";
		role.cvParam = contacttype;
		contact.role = role;
		sw.ContactRole = contact;
		sw.Customizations = m_Software.Customizations;
		foreach( PSIPIanalysissearchAnalysisSoftwareType s in m_mzid.ListSW )
			if( s.id == m_Software.Name ) {
				m_mzid.ListSW.Remove( sw );
				break;
			}
		m_mzid.ListSW.Add( sw );
		#endregion
		
		#region Protein detection protocol
		m_mzid.Data.AnalysisCollection.ProteinDetection.ProteinDetectionList_ref = "PDL_PAnalyzer";
		m_mzid.Data.AnalysisCollection.ProteinDetection.ProteinDetectionProtocol_ref = "PDP_PAnalyzer";
		m_mzid.Data.AnalysisProtocolCollection.ProteinDetectionProtocol.AnalysisSoftware_ref = sw.id;
		m_mzid.Data.AnalysisProtocolCollection.ProteinDetectionProtocol.id = "PDP_PAnalyzer";
		#endregion
        
        #region Protein detection list
        List<PSIPIanalysisprocessProteinAmbiguityGroupType> listGroup =
        	new List<PSIPIanalysisprocessProteinAmbiguityGroupType>();
        int hit = 1;
        foreach( Protein p in Proteins ) {
        	if( p.Evidence == Protein.EvidenceType.Filtered )
        		continue;
        	PSIPIanalysisprocessProteinAmbiguityGroupType grp = new PSIPIanalysisprocessProteinAmbiguityGroupType();
        	grp.id = "PAG_hit_" + (hit++);
        	int num = (p.Subset.Count == 0 ? 1 : p.Subset.Count);
        	grp.ProteinDetectionHypothesis = new PSIPIanalysisprocessProteinDetectionHypothesisType[num];
        	if( p.Subset.Count == 0 )
        		grp.ProteinDetectionHypothesis[0] = BuildHypothesis( p, p.Evidence );
        	else {
        		int i = 0;
        		foreach( Protein p2 in p.Subset )
        			grp.ProteinDetectionHypothesis[i++] = BuildHypothesis( p2, p.Evidence );
        	}        	
        	listGroup.Add( grp );
        }
        PSIPIanalysisprocessProteinDetectionListType analysis = new PSIPIanalysisprocessProteinDetectionListType();
        analysis.id = "PDL_PAnalyzer";
       	analysis.ProteinAmbiguityGroup = listGroup.ToArray();
        m_mzid.Data.DataCollection.AnalysisData.ProteinDetectionList = analysis;
        #endregion
        
        m_mzid.Save( mzid );        
        Notify( "Saved to " + mzid );
	}