【问题标题】:how to get a sequence after a word with whitespace如何在带有空格的单词之后获取序列
【发布时间】:2019-10-23 18:24:50
【问题描述】:

对于学校,我必须在一个带有很多空格的单词之后解析一个字符串,但我就是无法理解。 因为文件是基因库。

例如:

BLA                                                                                                             
      1 sjafhkashfjhsjfhkjsfkjakshfkjsjkf
      2 isfshkdfhjksfkhksfhjkshkfhkjsakjfhk
      3 kahsfkjshakjfhksjhfkskjfkaskfksj

//

我试过的是这个。

if line.startswith("BLA"):

       start = line.find("BLA")
       end = line.find("//")
       line = line[:end]
       s_string = ""
       string = list()
       if s_string:
           string.append(line)


        else:
            line = line.strip()
            my_seq += line

但我得到的是:

**output**
BLA

这是它得到的唯一东西,我想让输出像

**output**
BLA 1 sjafhkashfjhsjfhkjsfkjakshfkjsjkf
    2 isfshkdfhjksfkhksfhjkshkfhkjsakjfhk
    3 kahsfkjshakjfhksjhfkskjfkaskfksj

所以我不知道该怎么做,我试图让它像最后一个输出一样。但没有成功。我的老师告诉我,我必须这样做。如果 BLA 是 True 你可以去迭代它。如果你看到“//”,你必须停下来,但是当我用那个 True - 语句尝试它时,我什么也没得到。

我试图在网上搜索它,它说我必须使用 bio seqIO 来做。但是老师说我们不能用那个。

【问题讨论】:

  • 您的代码不完整,因为未定义 my_seq。此外,您在 if s_string 条件之前定义了 s_string=""。所以这个条件永远不会是True
  • 你可以看看这个链接知道how to post a minimal reproducible example:)
  • 对不起,我复制了我的真实代码并进行了一些更改。但是忘记改变my_seq
  • 谢谢。 ^^ 我觉得还是问问同学比较好。

标签: python string parsing bioinformatics genbank


【解决方案1】:

这是我的解决方案:

lines = """BLA
  1 sjafhkashfjhsjfhkjsfkjakshfkjsjkf
  2 isfshkdfhjksfkhksfhjkshkfhkjsakjfhk
  3 kahsfkjshakjfhksjhfkskjfkaskfksj

//"""

lines = lines.strip().split("//")
lines = lines[0].split("BLA")
lines = [i.strip() for i in lines]
print("BLA", " ", lines[1])

输出:

BLA   1 sjafhkashfjhsjfhkjsfkjakshfkjsjkf
      2 isfshkdfhjksfkhksfhjkshkfhkjsakjfhk
      3 kahsfkjshakjfhksjhfkskjfkaskfksj

【讨论】:

  • 谢谢!!!我做的有点不同,但看到这有助于我更多地理解它。所以非常感谢!!!!
猜你喜欢
  • 2013-12-15
  • 1970-01-01
  • 1970-01-01
  • 2017-10-12
  • 2021-10-08
  • 2016-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多