2014-01-21 8 views
0

Я только начинаю изучать питон в исследовательской лаборатории биоинформатики. Мой первый проект состоял в том, чтобы создать программу, которая может выплевывать различные последовательности ДНК с параметрами длины и количества копий. Затем последовательности должны выводиться в формате FASTA.Создание генератора последовательности ДНК

Для не знакомых последовательностей ДНК могут быть составлены из четырех букв: A, G, C, T. Пример последовательности ДНК: ACGTTCCGTACGTACTCT

Я действительно новичок в этом, и мне бы хотелось, чтобы некоторые советы о том, как это сделать и как изучать питон вообще (полагайтесь на уроки, делайте случайные проекты и т. Д.).

В настоящее время я использую чью-то программу для проекта моей ДНК-последовательности, а затем прохожу через линию, чтобы посмотреть, что делается.

Первая ошибка я столкнулся при копировании над кодом был такой:

>>> import random 
    >>> import sys 
    >>> def simulate_sequence (length) : 
     dna = ['A','G','C','T'] 
     sequence = '' 
     for i in range (length) : 
      sequence += random.choice (dna) 
     return sequence 

    >>> setsize = int (sys.argv[1]) 
    Traceback (most recent call last): 
     File "<pyshell#10>", line 1, in <module> 
     setsize = int (sys.argv[1]) 
    IndexError: list index out of range 
    >>> 

Спасибо.

+4

Этот код необходимо вызвать с помощью аргумента CLI, определяющего длину последовательности. – Hyperboreus

+3

К сожалению, нет простого смысла в копировании кода без элементарного понимания основ. Я советую вам забрать книгу * сначала * перед погружением. –

+0

начните с официального учебника, в нем будет все, что вам нужно знать! http://docs.python.org/2.7/tutorial/index.html –

ответ

0

sys.argv - это список аргументов, переданных вашей программе.

Например эта программа (называется amt.py):

import sys 
print (sys.argv) 

будет вести себя так:

$ ./amt.py 
['./amt.py'] 
$ ./amt.py 1 
['./amt.py', '1'] 
$ ./amt.py 1 abc 
['./amt.py', '1', 'abc'] 
$ ./amt.py 1 abc 33 
['./amt.py', '1', 'abc', '33'] 

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

0

Прежде всего, я бы порекомендовал this book.

Ошибка возникает из-за того, что эта программа была запущена из командной строки, а не для интерпретатора. sys.argv[1] получает 1-й аргумент командной строки (ну, технически 2-й, потому что первым является имя программы). В интерпретаторе вы не можете указывать аргументы. Просто вставьте его в текстовый редактор и запустите его из командной строки, например: DNA.py 100

+0

спасибо. Сейчас я делаю это без дела. – dnic2693

Смежные вопросы