bacpop / ska.rust

Split k-mer analysis – version 2
https://docs.rs/ska/latest/ska/
Apache License 2.0
56 stars 4 forks source link

ska merge and delete not working #57

Closed rderelle closed 9 months ago

rderelle commented 9 months ago

Using ska v0.3.2, I'm getting an error message when trying to merge 2 skf files together or to delete a sample from a skf file. Here is the error message with 'ska delete file.skf sample' (I checked with 'ska nk' that the sample I was trying to remove was present in the skf file):

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ShapeError/IncompatibleShape: incompatible shapes', src/merge_ska_array.rs:112:48
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I could post more information if needed.

johnlees commented 9 months ago

merge and delete are in the tests so it shouldn't be totally broken. Could you post the command you ran and the output from ska nk?

rderelle commented 9 months ago

Here it is (I'm actually using ska v0.3.1):

ska nk  xxx.skf          
SKA: Split K-mer Analysis (the alignment-free aligner)
ska_version=0.3.1
k=41
k_bits=128
rc=true
k-mers=4423573
samples=324
sample_names=["ERR369586", "ERR369587", "ERR369588", "ERR369589", "ERR369590", "ERR369591", "ERR369592", "ERR369593", "ERR369594", "ERR369596", "ERR369597", "ERR369598", "ERR369599", "ERR369600", "ERR369601", "ERR369602", "ERR369603", "ERR369604", "ERR369605", "ERR369606", "ERR369607", "ERR369608", "ERR369609", "ERR369610", "ERR369611", "ERR369613", "ERR369614", "ERR369615", "ERR369617", "ERR369618", "ERR369619", "ERR369621", "ERR369622", "ERR369623", "ERR369624", "ERR369625", "ERR369626", "ERR369627", "ERR369628", "ERR369629", "ERR369630", "ERR369631", "ERR369632", "ERR369633", "ERR369634", "ERR369635", "ERR369636", "ERR369637", "ERR369638", "ERR369639", "ERR369640", "ERR369641", "ERR369642", "ERR369643", "ERR369644", "ERR369645", "ERR369646", "ERR369647", "ERR369648", "ERR369649", "ERR369650", "ERR369651", "ERR369652", "ERR369654", "ERR369655", "ERR369657", "ERR369658", "ERR369659", "ERR369660", "ERR369661", "ERR369662", "ERR369663", "ERR369664", "ERR369665", "ERR369666", "ERR369668", "ERR369669", "ERR369671", "ERR369672", "ERR369673", "ERR369674", "ERR369676", "ERR369677", "ERR369679", "ERR369680", "ERR369682", "ERR369683", "ERR369684", "ERR369685", "ERR369686", "ERR369687", "ERR369688", "ERR369689", "ERR369690", "ERR369691", "ERR369692", "ERR369693", "ERR369694", "ERR369695", "ERR369697", "ERR369698", "ERR369699", "ERR369701", "ERR369702", "ERR369703", "ERR369705", "ERR369706", "ERR369707", "ERR369708", "ERR369709", "ERR369710", "ERR369711", "ERR369712", "ERR369713", "ERR369714", "ERR369715", "ERR369716", "ERR369718", "ERR369719", "ERR369720", "ERR369722", "ERR369723", "ERR369724", "ERR369725", "ERR369726", "ERR369727", "ERR369728", "ERR369729", "ERR369730", "ERR369731", "ERR369732", "ERR369733", "ERR369734", "ERR369735", "ERR369736", "ERR369737", "ERR369738", "ERR369741", "ERR369742", "ERR369743", "ERR369744", "ERR369745", "ERR369746", "ERR369747", "ERR369748", "ERR369749", "ERR369750", "ERR369751", "ERR369752", "ERR369753", "ERR369754", "ERR369755", "ERR369757", "ERR369758", "ERR369759", "ERR502240", "ERR502241", "ERR502242", "ERR502243", "ERR502244", "ERR502245", "ERR502247", "ERR502249", "ERR502250", "ERR502251", "ERR502252", "ERR502253", "ERR502254", "ERR502255", "ERR502256", "ERR502257", "ERR502258", "ERR502259", "ERR502260", "ERR502261", "ERR502262", "ERR502263", "ERR502264", "ERR502265", "ERR502266", "ERR502267", "ERR502268", "ERR502269", "ERR502270", "ERR502271", "ERR502273", "ERR502274", "ERR502275", "ERR502276", "ERR502277", "ERR502280", "ERR502281", "ERR502282", "ERR502283", "ERR502284", "ERR502285", "ERR502286", "ERR502287", "ERR502288", "ERR502289", "ERR502290", "ERR502291", "ERR502292", "ERR502293", "ERR502294", "ERR502295", "ERR502296", "ERR502297", "ERR502298", "ERR502300", "ERR502301", "ERR502303", "ERR502304", "ERR502306", "ERR502307", "ERR502309", "ERR502310", "ERR502311", "ERR502312", "ERR502313", "ERR502314", "ERR502315", "ERR502317", "ERR502318", "ERR502319", "ERR502321", "ERR502322", "ERR502323", "ERR502324", "ERR502325", "ERR502326", "ERR502329", "ERR502330", "ERR502331", "ERR502332", "ERR502333", "ERR502334", "ERR502335", "ERR502336", "ERR502337", "ERR502338", "ERR502339", "ERR502340", "ERR502341", "ERR502342", "ERR502343", "ERR502344", "ERR502345", "ERR502347", "ERR502348", "ERR502349", "ERR502350", "ERR502351", "ERR502353", "ERR502354", "ERR502355", "ERR502356", "ERR502357", "ERR502358", "ERR502362", "ERR502364", "ERR502365", "ERR502367", "ERR502368", "ERR502369", "ERR502371", "ERR502372", "ERR502373", "ERR502374", "ERR502375", "ERR502376", "ERR502377", "ERR502378", "ERR502380", "ERR502381", "ERR502382", "ERR502383", "ERR502384", "ERR502386", "ERR502387", "ERR502388", "ERR502389", "ERR502390", "ERR502391", "ERR502392", "ERR502393", "ERR502394", "ERR502395", "ERR502396", "ERR502397", "ERR502398", "ERR502399", "ERR502401", "ERR502402", "ERR502403", "ERR502404", "ERR502408", "ERR502411", "ERR600630", "ERR600631", "ERR600632", "ERR600633", "ERR600634", "ERR600635", "ERR600636", "ERR600637", "ERR600638", "ERR600639", "ERR600641", "ERR600642", "ERR600643", "ERR600644", "ERR600645", "ERR600646", "ERR600647", "ERR600648", "ERR600649", "ERR600650", "ERR600652", "ERR600653", "ERR600655", "ERR600656", "ERR600661", "ERR600663"]
sample_kmers=[4324139, 4323826, 4323901, 4323684, 4322945, 4328101, 4325887, 4324410, 4325038, 4323713, 4325214, 4322800, 4323916, 4325107, 4325893, 4325783, 4324155, 4324511, 4321676, 4322421, 4325043, 4323675, 4325010, 4324854, 4322600, 4322788, 4325132, 4321744, 4322740, 4325267, 4325233, 4322907, 4325378, 4324616, 4324942, 4325179, 4323857, 4324690, 4325955, 4323327, 4324809, 4323273, 4323706, 4323596, 4325441, 4323873, 4325494, 4323549, 4322345, 4325834, 4325036, 4323460, 4323985, 4324929, 4326777, 4326176, 4320838, 4323057, 4322676, 4323789, 4322679, 4322720, 4322062, 4323898, 4323056, 4321477, 4322857, 4320318, 4318330, 4321680, 4323051, 4321337, 4320805, 4319711, 4323835, 4322632, 4321616, 4318785, 4320226, 4334397, 4328309, 4327402, 4326054, 4324251, 4324338, 4323944, 4325778, 4324826, 4323236, 4325441, 4326332, 4325973, 4324260, 4324434, 4325233, 4322539, 4324056, 4323307, 4327521, 4327476, 4328139, 4327251, 4327229, 4326853, 4328010, 4326666, 4326804, 4326481, 4327456, 4327000, 4327760, 4328610, 4326798, 4325787, 4323231, 4325413, 4324005, 4325775, 4325828, 4326511, 4327019, 4325205, 4325102, 4324887, 4325228, 4323462, 4325886, 4327737, 4325260, 4325783, 4325305, 4324966, 4325440, 4324796, 4327816, 4325932, 4323728, 4324362, 4323988, 4323866, 4322685, 4325714, 4321252, 4323079, 4324678, 4325539, 4324285, 4322069, 4324896, 4326825, 4318779, 4322718, 4323304, 4328536, 4322162, 4320796, 4320582, 4321814, 4322456, 4324528, 4323084, 4321291, 4317666, 4318187, 4319253, 4320408, 4320257, 4320708, 4321243, 4319262, 4318929, 4319567, 4320621, 4321031, 4321449, 4322027, 4321304, 4317266, 4318459, 4318879, 4318833, 4319335, 4318696, 4319478, 4319446, 4318871, 4320773, 4320186, 4319511, 4319593, 4317733, 4319309, 4319668, 4319569, 4319456, 4320266, 4320570, 4318947, 4317907, 4318872, 4318461, 4320600, 4318818, 4319265, 4317338, 4318458, 4318529, 4319100, 4319314, 4318251, 4318439, 4319990, 4318640, 4318673, 4318512, 4317948, 4318431, 4319588, 4317042, 4320662, 4320160, 4318915, 4320564, 4318123, 4318169, 4320466, 4319268, 4319390, 4319211, 4319656, 4318974, 4321267, 4321024, 4321045, 4320724, 4320222, 4320600, 4318677, 4318068, 4319321, 4320220, 4320790, 4320723, 4320170, 4320017, 4319015, 4318889, 4318012, 4320604, 4319736, 4320571, 4321040, 4317680, 4319121, 4318743, 4318719, 4318824, 4317249, 4318455, 4319190, 4317874, 4319892, 4317055, 4317929, 4318566, 4319188, 4318737, 4319319, 4318811, 4316846, 4318081, 4317980, 4317340, 4318989, 4318772, 4319169, 4316220, 4316733, 4318080, 4317632, 4318829, 4319539, 4318277, 4319276, 4318142, 4318241, 4318787, 4318259, 4317977, 4318393, 4320065, 4318231, 4317970, 4316929, 4318283, 4318263, 4318758, 4317796, 4084892, 4149494, 4095813, 4120016, 4119514, 4075340, 4047944, 4041975, 4039953, 4102464, 4059907, 4074851, 4109811, 4050138, 4068537, 4010481, 4045871, 4084747, 3960187, 4004084, 4101787, 4109550, 4050983, 4042092, 4037210, 4038501]

and the ska delete command line:

ska delete xxx.skf ERR369729 
SKA: Split K-mer Analysis (the alignment-free aligner)
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: ShapeError/IncompatibleShape: incompatible shapes', src/merge_ska_array.rs:112:48
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
johnlees commented 9 months ago

Ok, strange! I have seen that error before but can't remember what it was from and thought it had been fixed. Could you email me your skf file and I'll take a look

rderelle commented 9 months ago

You could use the skf files already here: https://drive.google.com/drive/folders/1BZp0YG16KdChQ9I5IdUfrztOFgcKU3N-?usp=drive_link

For instance (using the smallest skf file; I tested it and got the same error message): ska delete out_gc_k31_n10_2.2.1.skf ERR8158003

johnlees commented 9 months ago

Ok thanks I will look & fix this week

johnlees commented 9 months ago

Sorry yes this is a bug, fix on #58