我必须在包含10-100k这些元素的列表中检查数百万个元素(20-30个字母str)的存在.在python中有更快的方法set()吗?
import sys
#load ids
ids = set( x.strip() for x in open(idfile) )
for line in sys.stdin:
id=line.strip()
if id in ids:
#print fastq
print id
#update ids
ids.remove( id )
Run Code Online (Sandbox Code Playgroud) 我在用
目标
我正在尝试创建一个将访问我的数据库的Web应用程序,并能够SELECT,INSERT,UPDATE和DELETE记录.
问题
我无法连接到数据库服务器
错误
致命错误:在第25行的C:\ xampp\htdocs\BLT\Employee_Database .php中调用未定义的函数sqlsrv_connect()
码
<html>
<head>
<Title>Employee Database</Title>
</head>
<body>
<form method="post" action="?action=add" enctype="multipart/form-data">
Last name <input type="text" name="LastName" id="LastName"/></br>
First name <input type="text" name="FirstName" id="FirstNamne"/></br>
E-mail address <input type="text" name="Email" id="Email"/></br>
User Id <input type="text" name="UserId" id="UserId"/></br>
Password <input type="password" name="Password" id="Password"/></br>
<input type="submit" name="submit" value="Submit"/>
</form>
<?php
$serverName = "jy4nij6vuy.database.windows.net,1433";
$connectionOptions = array("Database" => "robertfarb",
"UID" => "robertFarb",
"PWD" => …Run Code Online (Sandbox Code Playgroud) 这是我的脚本:
#!/bin/bash
#script to loop through directories to merge fastq files
sourcedir=/path/to/source
destdir=/path/to/dest
for f in $sourcedir/*
do
fbase=$(basename "$f")
echo "Inside $fbase"
zcat $f/*R1*.fastq.gz | gzip > $destdir/"$fbase"_R1.fastq.gz
zcat $f/*R2*.fastq.gz | gzip > $destdir/"$fbase"_R2.fastq.gz
done
Run Code Online (Sandbox Code Playgroud)
这里目录'source'中有大约30个子目录.每个子目录都有一些R1 .fastq.gz文件和R2 .fastq.gz,我想将它们合并到一个R1.fastq.gz和R2.fastq.gz文件中,然后将合并后的文件保存到目标目录.我的代码工作正常,但由于数据量的原因,我需要加快速度.我只想知道有什么办法可以在我的脚本中实现多线程编程吗?如何运行我的脚本以便多个作业并行运行?bash脚本新手,所以任何帮助将不胜感激.
我需要列出大量文件(40,000个文件),如下所示:
ERR001268_1_100.fastq ERR001268_2_156.fastq ERR001753_2_78.fastq
ERR001268_1_101.fastq ERR001268_2_157.fastq ERR001753_2_79.fastq
ERR001268_1_102.fastq ERR001268_2_158.fastq ERR001753_2_7.fastq
ERR001268_1_103.fastq ERR001268_2_159.fastq ERR001753_2_80.fastq
Run Code Online (Sandbox Code Playgroud)
我的命令是:ls ERR*_1_*.fastq |sed 's/\.fastq//g'|sort -n > masterlist
但是错误是:bash: /bin/ls: Argument list too long
但是我可以解决这个问题吗?有没有其他方法可以通过perl/python制作这样的列表?
谢谢
我是shell脚本的新手,我一整天都在努力弄清楚如何执行"for"命令.基本上,我想要做的是以下内容:
我有一个list.txt文件,其中包含一堆名称:
name1
name2
name3
Run Code Online (Sandbox Code Playgroud)
对于列表中的每个名称,有两个不同的文件,每个文件的名称结尾不同.例如:
name1_R1
name1_R2
Run Code Online (Sandbox Code Playgroud)
我试图运行的程序被调用sickle.基本上,它需要两个文件(彼此对应)并对它们进行分析,因此需要我有这个命名方案.镰刀命令如下:
sickle pe -f input_file1.fastq -r input_file2.fastq -t sanger \
Run Code Online (Sandbox Code Playgroud)
如果有人可以帮助我,至少只是告诉我如何让unix读取文件列表并独立处理每一行,我想我可以从那里开始.我尝试了一些东西,但没有一个能奏效.
我是Python的新手,我编写了一个(可能非常难看)脚本,它应该从fastq文件中随机选择一个序列子集.fastq文件以每行四行的块存储信息.每个块中的第一行以字符"@"开头.我用作输入文件的fastq文件是36 GB,包含大约14,000,000行.
我试图重写一个使用过多内存的现有脚本,并设法减少了很多内存使用量.但脚本需要永远运行,我不明白为什么.
parser = argparse.ArgumentParser()
parser.add_argument("infile", type = str, help = "The name of the fastq input file.", default = sys.stdin)
parser.add_argument("outputfile", type = str, help = "Name of the output file.")
parser.add_argument("-n", help="Number of sequences to sample", default=1)
args = parser.parse_args()
def sample():
linesamples = []
infile = open(args.infile, 'r')
outputfile = open(args.outputfile, 'w')
# count the number of fastq "chunks" in the input file:
seqs = subprocess.check_output(["grep", "-c", "@", str(args.infile)])
# randomly select n fastq "chunks":
seqsamples …Run Code Online (Sandbox Code Playgroud) 在字符串 (\test.something) 之后删除所有内容的命令是什么。我在文本文件中有信息,但是在字符串之后有 1000 行我不想要的文本。如何删除包括字符串在内的所有内容。
这就是我所拥有的 - 不工作。非常感谢。
$file = get-item "C:\Temp\test.txt"
(Get-Content $file) | ForEach {$_.TrimEnd("\test.something\")} | Set-Content $file
Run Code Online (Sandbox Code Playgroud) 我正在做一些shell脚本.
我使用这种结构来创建新变量:
eval ${ARG}_ext=fastq
Run Code Online (Sandbox Code Playgroud)
哪个工作得很好,因为我可以直接使用这些新创建的变量:
$file_ext
Run Code Online (Sandbox Code Playgroud)
现在我想为名为extension的变量赋值:
extension=
Run Code Online (Sandbox Code Playgroud)
指定的值应该是变量$ {ARG} _ext中的值.拜托,我该怎么做?
我试过了
extension=eval ${ARG}_ext;
Run Code Online (Sandbox Code Playgroud)
但这给了我变量的名称,我想要它的价值.谢谢.
嗨,我有一个像这样的文本文件:
>NM_145914.2:212
TCTGATGGTAAAAGTCGAGGAGAAAGAAGA
>NM_000614.3:1086
ATTCAATTTAAAATCAGACTCTTTAGTTGA
>NM_012096.2:2808
CAGTTAAGGTTTCAAATTGTGGCAGGTGGT
>NM_173465.3:1682
GTGCGTCGGGTGAGAGAGGCCCCAGCGGCC
>NM_001198858.1:490
CAACCACCACAACCTGCTGGTCTGCTCGGT
......more lines in same style......
Run Code Online (Sandbox Code Playgroud)
我想要的是:
从上面的文件中读取,将行1,3,5,7 ...转换为字典键,将行2,4,5,8 ...转换为字典值.
我的代码是:
query_dict = {}
nameAt = 1
sequenceAt = 2
while name in range(totalLines):
line1 = linecache.getline(filename, nameAt)
line2 = linecache.getline(filename, sequenceAt)
query_dict[line1] = line2
nameAt = nameAt + 2
sequenceAt = sequenceAt + 2
Run Code Online (Sandbox Code Playgroud)
代码工作,但它非常慢,因为我的文本文件的最小行是200,000行.有没有人有更好的方法来做到这一点?
非常感谢.
==============添加了后续问题==================
这里是fastq格式,每次读取4行(记录):
@>NM_052972.2:11:1054:1780:889
CTTCGACATCTCCGGCAACCCCTGGATCTG
+>NM_052972.2:11:1054:1780:889
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
@>NM_080660.3:12:914:1802:542
CCTGTATGGCTACTGCAACCTCAAGGATAA
+>NM_080660.3:12:914:1802:542
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
@>NM_176814.3:712:2706:4242:98
ACAGAGTAAAAGAGAGGCTGACTTAATAAA
+>NM_176814.3:712:2706:4242:98
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII
...... more lines in same style ......
Run Code Online (Sandbox Code Playgroud)
我想创建一个字典,键是第1行,值是每4行记录中的第2行.
字典看起来像: …
我目前在合并Perl中的文件时遇到了问题.有两个目录/文件夹,它们成对包含相同的名称和扩展名文件.例如,在文件夹1中,我有1.fastq,2.fastq,....,10.fastq文件.在文件夹2中,我有完全相同的文件名1.fastq,2.fastq,....,10.fastq,但它们包含不同的信息.我想合并具有相同名称的文件,在开始时我尝试了cat命令
$ cat 1.fastq 1.fastq > 1.fastq
Run Code Online (Sandbox Code Playgroud)
但是,如果文件太多,例如1000+,我需要做1000次以上.如何使用perl命令自动完成?
先感谢您.