@ file : Suppress (" unused ") Ċ Ċ package Ġalgorithms Ċ Ċ /** Ċ Ġ* Ġfrom Ġa Ġ[ d ] Ġlist Ġof Ġk mer Ġstrings , Ċ Ġ* ĠĠ Ġproduce Ġa Ġmap Ġof Ġk mer Ġto Ġk mer Ġconnections Ċ Ġ* Ċ Ġ* ĠĠ ĠExample : Ċ val Ġinput Ġ= ĠlistOf ( Ċ " G AGG ", Ċ " C AGG ", Ċ " GG GG ", Ċ " GG GA ", Ċ " C AGG ", Ċ " AG GG ", Ċ " GG AG " Ċ ) Ċ Ċ output : Ġ( as Ġa Ġmap Ġof Ġstring Ġto Ġlist Ġof Ġstrings ) Ċ AGG Ġ-> ĠG GG Ċ C AG Ġ-> ĠA GG , AGG Ċ G AG Ġ-> ĠA GG Ċ GG A Ġ-> ĠG AG Ċ GG G Ġ-> ĠG GG , GG A Ċ Ġ*/ Ċ Ċ fun Ġde Br ui jn Graph From K mers ( d : ĠList < String >): ĠMap < String , ĠList < String >> Ġ{ ĊĊĠĠĠ Ġval Ġstr Len Ġ= Ġd [ 0 ]. length ĊĠĠĠ Ġval Ġresult Map : ĠMutable Map < String , ĠMutable List < String >> Ġ= Ġmutable Map Of () ĊĊĠĠĠ Ġfor Ġ( s Ġin Ġd ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprefix Ġ= Ġs . substring ( 0 , Ġstr Len Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġsuffix Ġ= Ġs . substring ( 1 , Ġstr Len ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Map . containsKey ( prefix )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġresult Map [ prefix ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist !!. add ( suffix ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Map . put If Absent ( prefix , Ġmutable ListOf ( suffix )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ( result Map . to Sorted Map ()) Ċ } Ċ Ċ /** Ċ Ġ* Ġfor Ġa Ġ[ input ] Ġmap Ġof Ġk mer Ġto Ġk mer Ġlist , Ġiterate Ġover Ġthe Ċ Ġ* Ġlist Ġand Ġoutput Ġa Ġstring Ġwith Ġthe Ġrepresentation . Ċ Ġ*/ Ċ fun Ġde Br ui jn Direct ed Graph Conversion ( input : ĠMap < String , ĠList < String >> ): ĠString Ġ{ ĊĊĠĠĠ Ġval Ġbuf Ġ= ĠStringBuilder () ĊĠĠĠ Ġfor Ġ( entry Ġin Ġinput ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuf . append ("${ entry . key } Ġ-> Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġthe List Ġ= Ġentry . value ĊĠĠĠĠĠĠĠ Ġbuf . append ( the List . join ToString ( separator Ġ= Ġ", ")) ĊĠĠĠĠĠĠĠ Ġbuf . append ("\ n ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġbuf . toString () Ċ } Ċ Ċ /** Ċ Ġ* Ġfor Ġa Ġ[ s ] Ġstring Ġof Ġkm ers Ġ( e . g . Ġtext Ġfrom Ġa Ġproblem Ġdescription Ġ- Ċ Ġ* Ġreturn Ġa Ġlist Ġof Ġparsed Ġlines . Ċ Ġ* ĠAss umptions : Ġthe Ġstring Ġis Ġa Ġtrimmed Ġlist Ġof Ġjust Ġkm ers Ġ- Ġno Ġwhitespace Ċ Ġ*/ Ċ fun Ġparse K mer String ( s : ĠString ): ĠList < String > Ġ{ ĊĠĠĠ Ġval Ġreader Ġ= Ġs . reader () ĊĠĠĠ Ġval Ġlines Ġ= Ġreader . read Lines () ĊĊĠĠĠ Ġval Ġstring List : ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġfor Ġ( line Ġin Ġlines ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstring List . add ( line ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġstring List Ċ Ċ }