sectionContent.add(PsIdentificationAlgorithmMatchesFeature.decoy);
sectionContent.add(PsPsmFeature.validated);
exportFeatures.put(PsProteinFeature.type, sectionContent);
ExportScheme topDownReport = new ExportScheme("Default Hierarchical Report", false, exportFeatures, "\t", true, true, 0, false, true, false);
///////////////////////////
// Default protein report
///////////////////////////
exportFeatures = new HashMap<String, ArrayList<ExportFeature>>();
sectionContent = new ArrayList<ExportFeature>();
// protein accessions and protein inferences
sectionContent.add(PsProteinFeature.accession);
sectionContent.add(PsProteinFeature.protein_description);
sectionContent.add(PsProteinFeature.gene_name);
sectionContent.add(PsProteinFeature.chromosome);
sectionContent.add(PsProteinFeature.pi);
sectionContent.add(PsProteinFeature.other_proteins);
sectionContent.add(PsProteinFeature.protein_group);
// peptide and spectrum counts
sectionContent.add(PsProteinFeature.peptides);
sectionContent.add(PsProteinFeature.validated_peptides);
sectionContent.add(PsProteinFeature.unique_peptides);
sectionContent.add(PsProteinFeature.psms);
sectionContent.add(PsProteinFeature.validated_psms);
// protein coverage
sectionContent.add(PsProteinFeature.coverage);
sectionContent.add(PsProteinFeature.possible_coverage);
// molecular weight and spectrum counting
sectionContent.add(PsProteinFeature.mw);
sectionContent.add(PsProteinFeature.spectrum_counting_nsaf);
sectionContent.add(PsProteinFeature.spectrum_counting_empai);
// variable_ptms
sectionContent.add(PsProteinFeature.confident_modification_sites);
sectionContent.add(PsProteinFeature.confident_modification_sites_number);
sectionContent.add(PsProteinFeature.ambiguous_modification_sites);
sectionContent.add(PsProteinFeature.ambiguous_modification_sites_number);
// protein scores
sectionContent.add(PsProteinFeature.confidence);
sectionContent.add(PsProteinFeature.decoy);
sectionContent.add(PsProteinFeature.validated);
exportFeatures.put(PsProteinFeature.type, sectionContent);
ExportScheme proteinReport = new ExportScheme("Default Protein Report", false, exportFeatures, "\t", true, true, 0, false, true, false);
///////////////////////////
// Default peptide report
///////////////////////////
exportFeatures = new HashMap<String, ArrayList<ExportFeature>>();
sectionContent = new ArrayList<ExportFeature>();
// accessions
sectionContent.add(PsPeptideFeature.accessions);
// peptide sequence
sectionContent.add(PsPeptideFeature.aaBefore);
sectionContent.add(PsPeptideFeature.sequence);
sectionContent.add(PsPeptideFeature.aaAfter);
// variable_ptms
sectionContent.add(PsPeptideFeature.modified_sequence);
sectionContent.add(PsPeptideFeature.variable_ptms);
sectionContent.add(PsPeptideFeature.localization_confidence);
sectionContent.add(PsPeptideFeature.fixed_ptms);
// psms
sectionContent.add(PsPeptideFeature.validated_psms);
sectionContent.add(PsPeptideFeature.psms);
// peptide scores
sectionContent.add(PsPeptideFeature.confidence);
sectionContent.add(PsPeptideFeature.decoy);
sectionContent.add(PsPeptideFeature.validated);
exportFeatures.put(PsPeptideFeature.type, sectionContent);
ExportScheme peptideReport = new ExportScheme("Default Peptide Report", false, exportFeatures, "\t", true, true, 0, false, true, false);
///////////////////////////
// Default PSM report
///////////////////////////
exportFeatures = new HashMap<String, ArrayList<ExportFeature>>();
sectionContent = new ArrayList<ExportFeature>();
// protein accessions
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.accessions);
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.sequence);
// ptms
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.variable_ptms);
sectionContent.add(PsPsmFeature.d_score);
sectionContent.add(PsPsmFeature.probabilistic_score);
sectionContent.add(PsPsmFeature.localization_confidence);
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.fixed_ptms);
// spectrum file
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.spectrum_file);
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.spectrum_title);
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.spectrum_scan_number);
// spectrum details
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.rt);
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.mz);
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.spectrum_charge);
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.identification_charge);
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.theoretical_mass);
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.isotope);
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.mz_error);
// psm scores
sectionContent.add(PsPsmFeature.confidence);
sectionContent.add(PsIdentificationAlgorithmMatchesFeature.decoy);
sectionContent.add(PsPsmFeature.validated);
exportFeatures.put(PsPsmFeature.type, sectionContent);
ExportScheme psmReport = new ExportScheme("Default PSM Report", false, exportFeatures, "\t", true, true, 1, false, true, false);
///////////////////////////
// Certificate of analysis
///////////////////////////
exportFeatures = new HashMap<String, ArrayList<ExportFeature>>();
ArrayList<String> sectionsList = new ArrayList<String>();
// project details
sectionContent = new ArrayList<ExportFeature>();
sectionsList.add(PsProjectFeature.type);
sectionContent.add(PsProjectFeature.peptide_shaker);
sectionContent.add(PsProjectFeature.date);
sectionContent.add(PsProjectFeature.experiment);
sectionContent.add(PsProjectFeature.sample);
sectionContent.add(PsProjectFeature.replicate);
sectionContent.add(PsProjectFeature.identification_algorithms);
exportFeatures.put(PsProjectFeature.type, sectionContent);
// search parameters
sectionsList.add(PsSearchFeature.type);
exportFeatures.put(PsSearchFeature.type, PsSearchFeature.values()[0].getExportFeatures(false));
// input filters
sectionsList.add(PsInputFilterFeature.type);
exportFeatures.put(PsInputFilterFeature.type, PsInputFilterFeature.values()[0].getExportFeatures(false));
// validation details
sectionsList.add(PsValidationFeature.type);
exportFeatures.put(PsValidationFeature.type, PsValidationFeature.values()[0].getExportFeatures(false));
// ptms
sectionsList.add(PsPtmScoringFeature.type);
exportFeatures.put(PsPtmScoringFeature.type, PsPtmScoringFeature.values()[0].getExportFeatures(false));
// spectrum counting details
sectionsList.add(PsSpectrumCountingFeature.type);
exportFeatures.put(PsSpectrumCountingFeature.type, PsSpectrumCountingFeature.values()[0].getExportFeatures(false));
// annotation settings
sectionsList.add(PsAnnotationFeature.type);
exportFeatures.put(PsAnnotationFeature.type, PsAnnotationFeature.values()[0].getExportFeatures(false));
ExportScheme coa = new ExportScheme("Certificate of Analysis", false, sectionsList, exportFeatures, ": ", true, false, 2, true, false, true);
HashMap<String, ExportScheme> defaultSchemes = new HashMap<String, ExportScheme>();
defaultSchemes.put(topDownReport.getName(), topDownReport);
defaultSchemes.put(proteinReport.getName(), proteinReport);
defaultSchemes.put(peptideReport.getName(), peptideReport);
defaultSchemes.put(psmReport.getName(), psmReport);
defaultSchemes.put(coa.getName(), coa);
return defaultSchemes;
}