BioPython: IOError: [Errno 2] Нет такого файла или каталога

Я пытаюсь преобразовать файл FASTQ (созданный из парной последовательности генома Illumina Miseq mate) в FASTA и в конечном итоге преобразовать его в Genbank с использованием аннотированной эталонной последовательности. Я следую инструкциям из учебного пособия по биопайтону. Вот мой код и ошибка.

from Bio import SeqIO
records = SeqIO.parse("~/Users/ryanjhope/Documents/PhD/DNA_Sequences/Genome/C. aceto_∆pyrE_∆bcd_Deepseq/YZ1_S11_L001_R1_001.fastq", "fastq")
count = SeqIO.write(records, "~/Users/ryanjhope/Documents/PhD/DNA_Sequences/Genome/C. aceto_∆pyrE_∆bcd_Deepseq/∆bcdpseudo.fasta", "fasta")

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/ryanjhope/Documents/anaconda/lib/python2.7/site-packages/Bio/SeqIO/__init__.py", line 468, in write
    with as_handle(handle, mode) as fp:
  File "/Users/ryanjhope/Documents/anaconda/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/Users/ryanjhope/Documents/anaconda/lib/python2.7/site-packages/Bio/File.py", line 90, in as_handle
    with open(handleish, mode, **kwargs) as fp:
IOError: [Errno 2] No such file or directory: '~/Users/ryanjhope/Documents/PhD/DNA_Sequences/Genome/C. aceto_\xe2\x88\x86pyrE_\xe2\x88\x86bcd_Deepseq/\xe2\x88\x86bcdpseudo.fasta'

person redoxio_ad_absurdum    schedule 28.11.2015    source источник
comment
Это прямая ошибка. Указанный вами путь или файл не существует.   -  person DeepSpace    schedule 28.11.2015
comment
Оно делает. Я скопировал и вставил путь из искателя.   -  person redoxio_ad_absurdum    schedule 28.11.2015


Ответы (1)


Трассировка - ваш друг:

IOError: [Errno 2] No such file or directory: '~/Users/ryanjhope ...

и далее вверх:

File "/Users/ryanjhope/Documents/anaconda/lib/python2.7/site-packages/Bio/File.py", line 90, in as_handle

Это '~/Users/ против '/ Users /'

Изменяет эти строки:

records = SeqIO.parse("~/Users/ryanjhope/Documents/PhD/DNA_Sequences/Genome/C. aceto_∆pyrE_∆bcd_Deepseq/YZ1_S11_L001_R1_001.fastq", "fastq")
count = SeqIO.write(records, "~/Users/ryanjhope/Documents/PhD/DNA_Sequences/Genome/C. aceto_∆pyrE_∆bcd_Deepseq/∆bcdpseudo.fasta", "fasta")

в:

records = SeqIO.parse("/Users/ryanjhope/Documents/PhD/DNA_Sequences/Genome/C. aceto_∆pyrE_∆bcd_Deepseq/YZ1_S11_L001_R1_001.fastq", "fastq")
count = SeqIO.write(records, "/Users/ryanjhope/Documents/PhD/DNA_Sequences/Genome/C. aceto_∆pyrE_∆bcd_Deepseq/∆bcdpseudo.fasta", "fasta")

и попробуй еще раз.

person Mike Müller    schedule 28.11.2015
comment
Хорошо спасибо. Я посмотрю на это. Я, очевидно, полный новичок, поэтому я даже не знаю, как правильно интерпретировать возвращенные описания ошибок с уверенностью, что я это правильно понимаю. Спасибо за руководство. - person redoxio_ad_absurdum; 28.11.2015
comment
Хорошо, я не получаю сообщения об ошибке, но мой терминал ничего не делает. Надеюсь, он обрабатывает сценарий. - person redoxio_ad_absurdum; 28.11.2015
comment
О Боже. Теперь у меня есть гигантский файл FASTA :) - person redoxio_ad_absurdum; 28.11.2015
comment
Вы увидите результат, только если вы используете print() где-нибудь в своем коде. Это отличается от интерактивной подсказки, то есть >>>. - person Mike Müller; 28.11.2015
comment
Вы можете принять ответ, который решит вашу проблему. - person Mike Müller; 28.11.2015