#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