Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/22/10 03:17:02 (14 years ago)
Author:
swagner
Message:

Worked on allele frequency analysis (#1234)

Location:
trunk/sources/HeuristicLab.Analysis/3.3
Files:
1 added
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Analysis/3.3/AlleleFrequencyAnalyzer.cs

    r4631 r4639  
    2020#endregion
    2121
     22using System.Collections.Generic;
    2223using System.Linq;
    2324using HeuristicLab.Core;
     
    7273    }
    7374
     75    private class AlleleFrequencyEqualityComparer : IEqualityComparer<AlleleFrequency> {
     76      public bool Equals(AlleleFrequency x, AlleleFrequency y) {
     77        return x.Id == y.Id;
     78      }
     79      public int GetHashCode(AlleleFrequency obj) {
     80        return obj.GetHashCode();
     81      }
     82    }
     83
    7484    public override IOperation Apply() {
    7585      int updateInterval = UpdateIntervalParameter.Value.Value;
     
    110120                                                          bestAlleles.Any(a => a.Id == x.Key)));
    111121
     122        // calculate dummy allele frequencies of alleles of best known solution which did not occur
     123        var bestKnownFrequencies = bestKnownAlleles.Select(x => new AlleleFrequency(x.Id, 0, x.Impact, 0, true, false)).Except(frequencies, new AlleleFrequencyEqualityComparer());
     124
    112125        // fetch results collection
    113126        ResultCollection results;
     
    120133
    121134        // store allele frequencies
    122         AlleleFrequencyArray frequenciesArray = new AlleleFrequencyArray(frequencies);
     135        AlleleFrequencyCollection frequenciesCollection = new AlleleFrequencyCollection(bestKnownFrequencies.Concat(frequencies));
    123136        if (!results.ContainsKey("Allele Frequencies"))
    124           results.Add(new Result("Allele Frequencies", frequenciesArray));
     137          results.Add(new Result("Allele Frequencies", frequenciesCollection));
    125138        else
    126           results["Allele Frequencies"].Value = frequenciesArray;
     139          results["Allele Frequencies"].Value = frequenciesCollection;
    127140
    128141        // store allele frequencies history
    129142        if (storeHistory) {
    130143          if (!results.ContainsKey("Allele Frequencies History")) {
    131             ItemCollection<AlleleFrequencyArray> history = new ItemCollection<AlleleFrequencyArray>();
    132             history.Add(frequenciesArray);
     144            AlleleFrequencyCollectionCollection history = new AlleleFrequencyCollectionCollection();
     145            history.Add(frequenciesCollection);
    133146            results.Add(new Result("Allele Frequencies History", history));
    134147          } else {
    135             ((ItemCollection<AlleleFrequencyArray>)results["Allele Frequencies History"].Value).Add(frequenciesArray);
     148            ((AlleleFrequencyCollectionCollection)results["Allele Frequencies History"].Value).Add(frequenciesCollection);
    136149          }
    137150        }
     
    146159          allelesTable = (DataTable)results["Alleles"].Value;
    147160        }
    148         allelesTable.Rows["Unique Alleles"].Values.Add(frequenciesArray.Length);
     161        allelesTable.Rows["Unique Alleles"].Values.Add(frequenciesCollection.Count);
    149162      }
    150163      return base.Apply();
  • trunk/sources/HeuristicLab.Analysis/3.3/AlleleFrequencyCollection.cs

    r4638 r4639  
    2626namespace HeuristicLab.Analysis {
    2727  /// <summary>
    28   /// Represents an array of allele frequencies.
     28  /// Represents a collection of allele frequencies.
    2929  /// </summary>
    30   [Item("AlleleFrequencyArray", "Represents an array of allele frequencies.")]
     30  [Item("AlleleFrequencyCollection", "Represents a collection of allele frequencies.")]
    3131  [StorableClass]
    32   public class AlleleFrequencyArray : ReadOnlyItemArray<AlleleFrequency> {
    33     public AlleleFrequencyArray() : base() { }
    34     public AlleleFrequencyArray(IEnumerable<AlleleFrequency> frequencies) : base(new ItemArray<AlleleFrequency>(frequencies)) { }
     32  public class AlleleFrequencyCollection : ReadOnlyItemCollection<AlleleFrequency> {
     33    public AlleleFrequencyCollection() : base() { }
     34    public AlleleFrequencyCollection(IEnumerable<AlleleFrequency> frequencies) : base(new ItemCollection<AlleleFrequency>(frequencies)) { }
    3535    [StorableConstructor]
    36     protected AlleleFrequencyArray(bool deserializing) : base(deserializing) { }
     36    protected AlleleFrequencyCollection(bool deserializing) : base(deserializing) { }
    3737  }
    3838}
  • trunk/sources/HeuristicLab.Analysis/3.3/HeuristicLab.Analysis-3.3.csproj

    r4623 r4639  
    110110  <ItemGroup>
    111111    <None Include="HeuristicLabAnalysisPlugin.cs.frame" />
     112    <Compile Include="AlleleFrequencyCollection.cs" />
    112113    <Compile Include="BestAverageWorstQualityAnalyzer.cs" />
    113114    <Compile Include="BestAverageWorstQualityCalculator.cs" />
     
    116117    <Compile Include="Allele.cs" />
    117118    <Compile Include="AlleleFrequency.cs" />
    118     <Compile Include="AlleleFrequencyArray.cs" />
     119    <Compile Include="AlleleFrequencyCollectionCollection.cs" />
    119120    <Compile Include="QualityAnalyzer.cs" />
    120121    <Compile Include="MinAverageMaxValueAnalyzer.cs" />
Note: See TracChangeset for help on using the changeset viewer.