Конвертер Mykrobe predictor JSON в TSV

#python #json #linux #bioinformatics

#python #json #linux #биоинформатика

Вопрос:

Я хотел задать вопрос относительно преобразования файлов.

У меня есть файл JSON (после выполнения прогнозирования AMR), который я хочу скрыть в файл TSV на основе сценариев Mykrobe-predictor (json_to_tsv.py ) и это мой вывод JSON (result_TB.json).

 ./json_to_tsv.py /path/to/JSON_file
  

Когда я вставил команду в терминал, я получил ошибку IndexError в строке 78.

https://github.com/iqbal-lab/Mykrobe-predictor/blob/master/scripts/json_to_tsv.py#L78

  def get_sample_name(f):
  return f.split('/')[-2]
  

И вот ошибка, которую я получаю:

 mykrobe_version file plate_name sample drug phylo_group species lineage phylo_group_per_covg species_per_covg lineage_per_covg phylo_group_depth species_depth lineage_depth susceptibility variants (gene:alt_depth:wt_depth:conf) genes (prot_mut-ref_mut:percent_covg:depth)
  Traceback (most recent call last):
  File "./json_to_tsv.py", line 157, in <module>
  sample_name = get_sample_name(f)
  File "./json_to_tsv.py", line 78, in get_sample_name
  return f.split('/')[-2]
  IndexError: list index out of range
  

Любые предложения будут оценены.

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

1. Можете ли вы добавить вывод JSON к вопросу?

2. Конечно, никаких проблем. Я приложил свой результат JSON (result_TB.json) для вашего рассмотрения. Большое спасибо.

3. Спасибо! Взгляните на обновленный ответ.

Ответ №1:

Глядя на код, я предполагаю, что они ожидают вызвать конвертер с помощью чего-то вроде:

 python json_to_tsv.py plate/sample1/sample1.json
  

Попробуйте скопировать ваш файл JSON в каталог, вызываемый sample1 внутри вызываемого каталога plate , и посмотрите, получаете ли вы ту же ошибку при вызове, что и в примере выше.


Обновить

Проблема действительно такова, как описано выше.

Не работает:

 python json_to_tsv.py result_TB.json 
  

mykrobe_version имя файла plate_name образец лекарственного средства фило_группа видовая родословная фило_группа_пер_совг виды_пер_совг lineage_per_covg виды_пер_совг lineage_per_covg фило_группа_депт виды_депт линеаге_депт варианты восприимчивости
(gene:alt_depth:wt_depth:conf) гены
(prot_mut-ref_mut:percent_covg:глубина)

 Traceback (most recent call last):   File "json_to_tsv.py", line 157, in <module>
    sample_name = get_sample_name(f)   File "json_to_tsv.py", line 78, in get_sample_name
    return f.split('/')[-2] IndexError: list index out of range
  

Работает:

 python json_to_tsv.py plate/sample/result_TB.json 
  

mykrobe_version имя_платы_файла образца лекарственного средства фило_группа видовая родословная фило_группа_пер_совг species_per_covg lineage_per_covg фило_группа_депт видов_депт lineage_depth варианты восприимчивости к lineage_depth (gene:alt_depth:wt_depth:conf) гены (prot_mut-ref_mut:процент_совг:глубина)

-1 Результирующий образец таблички NA

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

1. Спасибо за вашу помощь. Я использовал абсолютный путь в позиционных аргументах и получил тот же результат (1 result_TB yiting104 Mykrobe NA). ./json_to_tsv.py /bip6_disk/yiting104/Mykrobe/result_TB.json > result_TB.tsv