Пример #1
0
        private static List <string> ProcessLine(ShowBy showBy, PredictorCollection predictorCollection, string line,
                                                 MerLength merLength, int?dOfCenter, HlaSetSpecification hlaSetSpecification, bool modelOnly)
        {
            try
            {
                string hlaOrSupertypeOrNull;
                string inputPeptide = ExtractInputs(hlaSetSpecification, line, predictorCollection, out hlaOrSupertypeOrNull);

                List <string> output = new List <string>();
                foreach (List <Prediction> predictionList in predictorCollection.MaxProbabilityPredictions(showBy, inputPeptide, merLength, dOfCenter, hlaSetSpecification, hlaOrSupertypeOrNull, modelOnly).Values)
                {
                    string outputLine = InsertMaterial(line, hlaSetSpecification.InputHeaderCollection().Length, Prediction.CollectionToString(predictionList, false, hlaSetSpecification.IncludeHlaInOutput()));
                    output.Add(outputLine);
                }
                return(output);
            }
            catch (Exception exception)
            {
                string errorString = SpecialFunctions.CreateTabString(
                    line,
                    string.Format("Error: {0}{1}", exception.Message, exception.InnerException == null ? "" : string.Format(" ({0})", exception.InnerException)));
                List <string> output = new List <string>();
                output.Add(errorString);
                return(output);
            }
        }
Пример #2
0
        static public string ExtractInputs(HlaSetSpecification hlaSetSpecification, string line, PredictorCollection predictorCollection, out string hlaOrSupertypeOrNull)
        {
            List <string> fieldCollection = SpecialFunctions.Split(line, '\t');

            int inputLength = hlaSetSpecification.InputHeaderCollection().Length;

            SpecialFunctions.CheckCondition(inputLength <= fieldCollection.Count, string.Format("Expected input to have at least {0} columns", inputLength));
            string inputPeptide = fieldCollection[0];

            hlaOrSupertypeOrNull = (inputLength > 1) ? fieldCollection[1] : null;

            return(inputPeptide);
        }
Пример #3
0
        static public string CreateHeader(HlaSetSpecification hlaSetSpecification, TextReader textReader, bool inputHasHeader)
        {
            if (!inputHasHeader)
            {
                return(hlaSetSpecification.Header());
            }

            //!!!this code is very similar to that which processes the non-header lines. Could/should they be combined?


            int           splitPoint       = hlaSetSpecification.InputHeaderCollection().Length;
            string        middleStuff      = Prediction.ExtraHeader(hlaSetSpecification.IncludeHlaInOutput());
            List <string> columnCollection = SpecialFunctions.Split(textReader.ReadLine(), '\t');

            return(InsertMaterial(columnCollection, splitPoint, middleStuff));
        }
Пример #4
0
        public static void Main(string[] args)
        {
            try
            {
                // Parse arguments
                ArgCollection argCollection = ArgCollection.GetInstance(args);

                if (argCollection.ExtractOptionalFlag("Help"))
                {
                    Console.WriteLine(HelpString);
                    return;
                }

                string              modelName           = argCollection.ExtractOptional("model", "LANLIEDB03062007");
                bool                modelOnly           = argCollection.ExtractOptionalFlag("modelOnly");
                bool                inputHasHeader      = argCollection.ExtractOptionalFlag("inputHasHeader");
                MerLength           merLength           = argCollection.ExtractOptional <MerLength>("merLength", MerLength.scan);
                int?                dOfCenter           = argCollection.ExtractOptional <int?>("withinDOfCenter", null);
                ShowBy              showBy              = argCollection.ExtractOptional <ShowBy>("showBy", ShowBy.all);
                string              hlaSetName          = argCollection.ExtractOptional <string>("hlaSet", "singleton");
                HlaSetSpecification hlaSetSpecification = HlaSetSpecification.GetInstance(hlaSetName);

                argCollection.CheckNoMoreOptions();

                string inputFileName  = argCollection.ExtractNext <string>("inputFile");
                string outputFileName = argCollection.ExtractNext <string>("outputFile");
                argCollection.CheckThatEmpty();


                ReadInputCreatingOutput(showBy, modelName, inputHasHeader, merLength, dOfCenter, hlaSetSpecification, modelOnly, inputFileName, outputFileName);
            }
            catch (Exception exception)
            {
                Console.WriteLine("");
                Console.WriteLine(exception.Message);
                if (exception.InnerException != null)
                {
                    Console.WriteLine(exception.InnerException.Message);
                }

                Console.Error.WriteLine("");
                Console.Error.WriteLine(@"For more help:
Epipred -help");

                System.Environment.Exit(-1);
            }
        }
Пример #5
0
        private static void ReadInputCreatingOutput(ShowBy showBy, string modelName,
                                                    bool inputHasHeader, MerLength merLength, int?dOfCenter,
                                                    HlaSetSpecification hlaSetSpecification, bool modelOnly, string inputFileName, string outputFileName)
        {
            using (TextReader textReader = File.OpenText(inputFileName))
            {
                using (TextWriter textWriter = File.CreateText(outputFileName))
                {
                    string header = CreateHeader(hlaSetSpecification, textReader, inputHasHeader);
                    textWriter.WriteLine(header);

                    PredictorCollection predictorCollection = PredictorCollection.GetInstance(modelName);

                    foreach (string line in SpecialFunctions.ReadEachLine(textReader))
                    {
                        foreach (string outputLine in ProcessLine(showBy, predictorCollection, line, merLength, dOfCenter, hlaSetSpecification, modelOnly))
                        {
                            textWriter.WriteLine(outputLine);
                            textWriter.Flush();
                        }
                    }
                }
            }
        }