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)); }