private static void LoadIndividu(string pIndividu) { Console.WriteLine("Informations sur l'individu :" + pIndividu); log4net.GlobalContext.Properties["iName"] = pIndividu; cIndividu individu = new cIndividu(pIndividu); foreach (cSequence item in individu.Sequences) { var groupBy = item.Reads.GroupBy(i => i.QNAME); } Console.WriteLine("Enregistrement terminé ! (" + individu.Sequences.Count + " sequences)"); }
private static void EnregistreFichier(string fileName, string option) { bool isAppend = false; LogMe("Fichier d'entrée : " + fileName); switch (option) { case "--append": isAppend = true; break; default: break; } //Start Chrono Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); LogMe("Traitement du fichier : " + fileName); cIndividu individu = new cIndividu(); individu.LoadFromFile(fileName); LogMe("Enregistrement dans la base de données..."); try { individu.Save(isAppend); } catch (Exception ex) { Log.Error("Erreur d'enregistrement de l'individu"); Log.Error(ex); LogMe("Erreur d'enregistrement de l'individu"); LogMe($"{ex.Message}"); individu.MoveError(fileName); } stopWatch.Stop(); // Get the elapsed time as a TimeSpan value. TimeSpan ts = stopWatch.Elapsed; // Format and display the TimeSpan value. string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); Process proc = Process.GetCurrentProcess(); LogMe("RunTime " + elapsedTime); LogMe("L'individu '" + individu.Libelle + "' a été enregistré."); LogMe("Il contient " + individu.Sequences.Count + " séquences."); LogMe($"EXECTIME;{individu.Libelle};{elapsedTime};{individu.FileLinesCount}"); LogMe($"MEM-PROC;{proc.PrivateMemorySize64.ToString()};{proc.TotalProcessorTime.TotalSeconds.ToString()}"); proc.Dispose(); }
private void genereFile(string individu) { cIndividu oIndividu = new cIndividu(individu); List <string> output = new List <string>(); string idChar = ConfigurationManager.AppSettings["CharIdentificationLigne"]; int unknownAmorces = 0; LogMe($"Individu chargé"); foreach (cSequence item in oIndividu.Sequences) { var reads = item.Reads.GroupBy(i => i.QNAME); foreach (var read in reads) { if (read.Count() != 2) { LogMe($"WARNING : Il y a plus de deux reads"); LogMe($"QNAME : {read.Key}"); LogMe($"Sequence : {item.RNAME}"); } else { try { foreach (cSequenceRead sequenceRead in read) { cAmorceInfo amorceInfo = new cAmorceInfo { RNAME = item.RNAME, FLAG = sequenceRead.FLAG, POS = sequenceRead.POS }; sequenceRead.SEQ = amorceInfo.truncateSequence(sequenceRead); } var retour = cSequenceRead.ContigeSequence(read.ToList()); var fRead = read.FirstOrDefault(); if (fRead != null) { fRead.GestionAmorces(item.RNAME); output.Add(idChar + read.Key + "|" + fRead.Amorce.NAME); output.Add(retour); output.Add(string.Empty); } } catch (ApplicationException ex) { unknownAmorces++; } catch (Exception ex) { LogMe(ex.Message); } } } } LogMe($"{unknownAmorces} amorces inconnue(s)"); writeFile(individu, output.ToArray()); }