public static Dictionary<string, List<OverlappedChipSeqItem>> ReadItems(List<string> sourceFiles) { if (sourceFiles.Count <= 2) { throw new ArgumentException("Input at least two data files first!"); } var firstFile = ReadInGeneItem(sourceFiles[0]); var curResult = OverlappedChipSeqItem.Build(firstFile); for (int i = 1; i < sourceFiles.Count; i++) { var curFile = ReadInGeneItem(sourceFiles[i]); foreach (var item in curFile) { if (!curResult.ContainsKey(item.GeneSymbol)) { var oi = new OverlappedChipSeqItem(); oi.Add(item); var oil = new List<OverlappedChipSeqItem>(); oil.Add(oi); curResult[item.GeneSymbol] = oil; continue; } var curGroup = curResult[item.GeneSymbol]; OverlappedChipSeqItem.AddToList(curGroup, item); } } return curResult; }
public void AddItem(string key, ChipSeqItem item) { if (!_itemMap.ContainsKey(key)) { _itemMap[key] = new OverlappedChipSeqItem(); } _itemMap[key].Add(item); }
public static OverlappedChipSeqComparisonItem Build(OverlappedChipSeqItem item, Dictionary<string, string> fileNameGroup) { var result = new OverlappedChipSeqComparisonItem(); foreach (var csi in item) { var key = fileNameGroup[csi.Filename]; result.AddItem(key, csi); } return result; }