завершение вызывается после создания экземпляра «std::logic_error» в программе TreeMix

#c #terminal #phylogeny

Вопрос:

Я пытаюсь использовать программу TreeMix для создания филогенетического дерева, но это ввод и ошибка:

 treemix -i data.p.treemix.gz -o output

terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
Aborted (core dumped)
 

Мои данные выглядят в правильном формате, и вот заголовок:

 DEN NEA
2,0 0,2
0,2 2,0
...
 

Файлы примеров работали хорошо, поэтому я не думаю, что сама программа повреждена. Приведенный пример файла выглядит следующим образом:

 Han Sardinian Colombian Dai French Mozabite Karitiana Lahu BiakaPygmy She Italian San Yoruba 
2,66 2,54 0,10 1,19 4,52 6,48 0,24 2,14 31,13 0,20 3,23 6,6 21,21
 

Единственное различие между моими данными и примером, о котором я могу подумать, заключается в том, что мои данные содержат только 2 и 0, есть только две популяции, и данные в целом содержат высокий уровень недостачи.

Я не могу изменить саму программу, так как она очень сложная, и, поскольку я еще не разбираюсь в C , я думаю, что просто испорчу ее.

Я был бы признателен за любые советы, которые помогут решить эту проблему!

Комментарии:

1. вы должны сообщить об ошибке разработчикам программ, боюсь, с предоставлением воспроизводимого примера данных, вызывающих эту ошибку

2. В файле примера, по-видимому, есть только одна строка данных, где в вашем файле их больше.

3. @OlafDietsche Это была моя ошибка! После этого в нем много строк.

4. @Swift-FridayPie Спасибо тебе! Когда вы отправляете разработчикам подобную проблему, вы просто даете им файлы и код, которые вы использовали?

5. что — то, что позволяет им воспроизвести всю ситуацию, в вашем случае, да, это было бы вашим вкладом. Я предполагаю, что должна была быть какая-то защита от такого крайнего случая. В некоторых случаях это будет обратный путь, потому что могут быть «ошибки Шредингера», которые появляются не каждый раз.